一、介绍
1、问题引入
当企业级容器上升到一定规模的时候,我们必须得实时监控每个容器的状态。我们可以执行
docker stats
这个统计命令是实时的,小公司的话,容器少还可以,够用。如果想看前几天的流量监控数据,显然是没有的,这个时候就需要更强大的容器监控软件。
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/
2、访问influxdb:http://192.168.186.129:8083/
3、访问grafaner http://192.168.186.129:3000/
三、配置
1、在grafaner里配置数据源
输入信息点击save&test,出现绿色提示就完成了
2、配置panel
然后找 add panel进来后,下面右图中的查找选择的图表展示形式。
配置完成后就可以看到展示的数据了