一、介绍

1、问题引入

当企业级容器上升到一定规模的时候,我们必须得实时监控每个容器的状态。我们可以执行

docker stats

docker容器监控Granfana docker容器里面的进程监控_docker容器监控Granfana

这个统计命令是实时的,小公司的话,容器少还可以,够用。如果想看前几天的流量监控数据,显然是没有的,这个时候就需要更强大的容器监控软件。

2、CIG出场

CIG是三个组件的缩写,即:CAdvisor监控收集、InfluxDB存储数据、Granfana展示图表。下面一一介绍下这几款软件。


1)CAdvisor
CAdvisor是一个容器资源监控,包括容器的内存,CPU,网络IO,磁盘IO等监控,同时提供了一个WEB页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,,而且只是针对单物理机。
不过, CAdvisor提供了很多数据集成接口.支持InfluxDB, Redis, Kafka, Elasticsearch等集成可以加
上对应配置将监控数据发往这些数据库存储起来。
CAdvisor功能主要有两点:
    a. 展示Host和容器两个层次的监控数据。
    b. 展示历史变化数据。


2)InfluxDB
InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库无需外部依赖。CAdvisor默认只在本机保存最近2分钟的数据,为了持款化存储数据和统一收集展示监控数据,需要将数据存储到InfluxDB中。InfluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储CAdvisor的数据。而且, CAdvisor本身 已经提供了InfluxDB的集成方法,启动容器时指定配置即可。
InfluxDB主要功能:
    a. 基于时间序列,支持与时间有关的相关函数(如最大、最小求和等);
    b. 可度量性:你可以实时对大量数据进行计算;
    c. 基于事件:它支持任意的事件数据;


3)Granfana
Grafana是一个开源的数据监控分析可视化平台,支持多种数据源配置(支持的数据源包括InfluxDB,MySQL, Elasticsearch,OpenTSDB, Graphite等)和丰富的插件及模板功能支持图表权限控制和报警。
Grafan主要特性:
    a. 灵活丰富的图形化选项
    b. 可以混合多种风格
    c. 支持白天和夜间模式
    d. 多个数据源

二、安装

利用compose一套带走。

version: "3.1"
volumes:
   grafana_data: {}services:
   influxdb:
     image: tutum/influxdb:0.9
     restart: always
     environment:
       - PRE_CREATE_DB=cadvisor
     ports:
       - "8083:8083"
       - "8086:8086"
     volumes:
       - /data/influxdb:/data  cadvisor:
     image: google/cadvisor
     links:
       - influxdb:influxsrv
     command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
     restart: always
     ports:
      - "8080:8080"
     volumes:
       - /:/rootfs:ro
       - /var/run:/var/run:rw
       - /sys:/sys:ro
       - /var/lib/docker:/var/ib/docker:ro  grafana:
     user: "104"
     image: grafana/grafana
     user: "104"
     restart: always
     links:
       - influxdb:influxsrv
     ports:
       - "3000:3000"
     volumes:
       - grafana_data:/var/lib/grafana
     environment:
       - HTTP_USER=admin
       - HTTP_PASS=admin
       - INFLUXDB_HOST=influxsrv
       - INFLUXDB_PORT=8086
       - INFLUXDB_NAME=cadvisor
       - INFLUXDB_USER=root
       - INFLUXDB_PASS=root

1、访问cadvisor:http://192.168.186.129:8080/

docker容器监控Granfana docker容器里面的进程监控_docker_02

 2、访问influxdb:http://192.168.186.129:8083/

docker容器监控Granfana docker容器里面的进程监控_容器_03

 3、访问grafaner http://192.168.186.129:3000/

docker容器监控Granfana docker容器里面的进程监控_容器_04

 三、配置

1、在grafaner里配置数据源

docker容器监控Granfana docker容器里面的进程监控_数据_05

docker容器监控Granfana docker容器里面的进程监控_容器_06

 输入信息点击save&test,出现绿色提示就完成了

2、配置panel

然后找 add panel进来后,下面右图中的查找选择的图表展示形式。

docker容器监控Granfana docker容器里面的进程监控_数据_07

docker容器监控Granfana docker容器里面的进程监控_运维_08

docker容器监控Granfana docker容器里面的进程监控_容器_09

 

docker容器监控Granfana docker容器里面的进程监控_docker容器监控Granfana_10

 配置完成后就可以看到展示的数据了

docker容器监控Granfana docker容器里面的进程监控_容器_11