Docker监控

作者: Superwind20 | 来源:发表于2018-05-01 18:34 被阅读57次

    Cadvisor是Google用来监测单节点的资源信息的监控工具。它的资源消耗也比较低。但是,它有它的局限性,它只能监控一个Docker主机。因此,如果你是多节点的话,那就比较麻烦了,你得在所有的主机上都安装一个Cadvisor,肯定特别不方便。值得注意的是,如果你使用的是Kubernetes,你可以使用heapster来监控多节点集群。Google的Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上Cadvisor。在免费的世界里,Cadvisor作为一个很不错的工具,越来越多的引起很多人过渡性的关注。以下我们将详细介绍如何创建我们的Docker监控方案。

    cAdvisor: Google开源的用于监控基础设施应用的工具,它是一个强大的监控工具,不需要任何配置就可以通过运行在Docker主机上的容器来监控Docker容器,而且可以监控Docker主机。更多详细操作和配置选项可以查看Github上的cAdvisor项目文档。

    influxDB: 它是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。

    Grafana: Grafana可视化展示平台允许我们可视化地展示监控信息。它允许我们对influxDB进行查询,并通过强大的图表功能进行可视化展示。

    【influxdb】

    1. 概念

    database 数据库

    measurement 数据库中的表

    points 表里面的一行数据

    Point 由时间戳(time)、数据(field)、标签(tags)组成。

    series 所有在数据库中的数据,都需要通过图表来展示,而这个series表示这个表里面的数据,可以在图表上画成几条线:通过tags排列组合算出来。具体可以通过SHOW SERIES FROM "表名" 进行查询。

    8083: Web admin管理服务的端口, http://localhost:8083

    8086: HTTP API的端口

    8088: 集群端口(目前还不是很清楚, 配置在全局的bind-address,默认不配置就是开启的)

    2. 常用命令

    show databases;

    create database "cadvisor";

    SHOW USERS

    # 创建用户

    CREATE USER "cadvisor" WITH PASSWORD '123456' WITH ALL PRIVILEGES

    grant all on mydb to user

    show grants for user

    DROP USER "cadvisor"

    auth

    use cadvisor;

    SHOW measurements

    # influxdb下的表在插入数据库的时候自动会创建

    INSERT t_user,host=serverA,region=us_west value=0.64

    SELECT * FROM t_user ORDER BY time DESC LIMIT 3

    DROP MEASUREMENT "t_user"  //删除表

    一般情况下基于时间序列的point数据不会进行直接删除操作,一般我们平时只关心当前数据,历史数据不需要一直保存,不然会占用太多空间。这里可以配置数据保存策略(Retention Policies),当数据超过了指定的时间之后,就会被删除。

    SHOW RETENTION POLICIES ON "cadvisor"    //查看当前数据库的Retention Policies

    CREATE RETENTION POLICY "rp_name" ON "cadvisor" DURATION 30d REPLICATION 1 DEFAULT  //创建新的Retention Policies

    #注释如下:

    rp_name:策略名

    db_name:具体的数据库名

    30d:保存30天,30天之前的数据将被删除

    它具有各种时间参数,比如:h(小时),w(星期)

    REPLICATION 1:副本个数,这里填1就可以了

    DEFAULT 设为默认的策略

    也可以通过如下命令修改和删策略:

    ALTER RETENTION POLICY "rp_name" ON "cadvisor" DURATION 3w DEFAULT

    DROP RETENTION POLICY "rp_name" ON "cadvisor"

    3. 安全

    influxdb类似与mongodb,默认是不开启用户认证的,可以修改其 conf文件,配置http块内容如下:

    [http]

      enable = true

      bind-address = ":8086"

      auth-enabled = true  # 开启认证

    4. web管理

    默认情况下未开启web管理功能。可以通过修改influxdb.conf文件中admin项的配置开启web管理界面,具体如下:

    [admin]

      # Determines whether the admin service is enabled.

      enabled = true

      # The default bind address used by the admin service.

      bind-address = ":8083"

    注意 :

    1. 0.13以上版本的image默认不支持web admin,测试中设置了也没用,所以暂时用0.12版

    2. tutum版的设置不了auth

    3. web admin只能创建用户,查询,不能增删改数据,需登陆容器-->influx-->auth,再进行数据操作

    【cadvisor】

    1. 每个节点机都要启动,需配置对应的数据源,配置好后,在对应的influxdb database中SHOW MEASUREMENTS可看到load_average等表

    【grafana】

    1. 可在.ini中配置相关参数,暂时未使用grafana.ini等配置

    2. 配置数据源dataSource

    基本信息

    Name:influxdb

    Type:influxDB

    Default: checked

    Http settings

    Url:http://mytest-influxdb:8086

    Access:proxy

    HTTP Auth

    Basic Auth: checked

    InfluxDB Details

    Database:cadvisor

    User:cadvisor

    Password:123456

    配置好后点击 Save&Test

    相关文章

      网友评论

        本文标题:Docker监控

        本文链接:https://www.haomeiwen.com/subject/mklfrftx.html