Docker监控CIG
概念
通过docker stats
命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了。。。。
但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能
CAdvisor
CAdvisor是一个容器资源监控工具,包括容器的内存,CPU,网络IO,磁盘IO等监控,同时提供了一个WEB页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对单物理机。不过,CAdvisor提供了很多数据集成接口,支持InfluxDB,Redis,Kafka,Elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。
功能主要有两点:
- 展示Host和容器两个层次的监控数据
- 展示历史变化数据
InfluxDB
InfluxDB是一种时序数据库,用来存放监控数据。InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。
CAdvisor默认只在本机保存最近2分钟的数据,为了持久化存储数据和统一收集展示监控数据,需要将数据存储到InfluxDB中。InfluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储CAdvisor的数据。而且,CAdvisor本身已经提供了InfluxDB的集成方法,在启动容器时指定配置即可。
Granfana
Grafana是一个开源的数据监控分析可视化平台,支持多种数据源配置(如InfluxDB,MySQL,Elasticserach,OpenTSDB,Graphite等)和丰富的插件及模板功能,支持图表权限控制和报警。
Grafana主要特点
- 灵活丰富的图形化选项
- 可以混合多种风格
- 支持白天和夜间模式
- 多数据源
其主要特色功能
1)基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)
2)可度量性:你可以实时对大量数据进行计算
3)基于事件:它支持任意的事件数据
- CAdvisor监控收集
- InfluxDB存储数据
- Granfana展示图表
- CAdvisor负责收集容器随时间变化的数据
- InfluxDB负责存储时序数据
- Grafana负责分析和展示时序数据
安装使用
使用compose,在/mydocker
创建一个新目录mkdir cig
编写docker-compose.yml
文件,docker-compose config -q
检查是否有语法错误
1 | version: '3.1' |
没有错误后docker-compose up
启动运行
默认账户密码admin
可以将这些没用的全部给remove
配置数据源,选择influxdb
数据源
选择数据库,填写密码。(docker-compose.yaml中配置好的)
配置面板panel
选择图表展现方式
到这里完成~