对于一个物理机上运行多个容器应用时,容器的运行情况如:CPU使用率、内存使用率、网络状态、磁盘空间等信息,都是需要去了解的,因此监控是必须的。对于容器的监控方案可谓多种多样,本身自带命令docker stats。
docker 监控 cAdvisor+InfluxDB+Grafana 开源方案
一、cAdvisor:用于数据采集
cadvisor谷歌公司自己用来监控他们基础设施的一款工具,这个工具厉害之处不仅能监控docker容器的实时信息,而且还能将你的cadvisor这容器所在的主机的系统的实时信息,但是由于cadvisor只是能监控到实时的信息而不能保存。
二、InfluxDB:用于数据存储
InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。所以我们要使用influxdb将这些实时监控到的信息存放起来。
1、InfluxDB主要特色功能
基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等);
可度量性:你可以实时对大量数据进行计算;
基于事件:它支持任意的事件数据;
2、InfluxDB主要特点
无结构(无模式)
可以是任意数量的列
可拓展的;
支持min, max, sum, count, mean, median 等一系列函数,方便统计
原生的HTTP支持,内置HTTP API
强大的类SQL语法
自带管理界面,方便使用
参考文章:https://www.influxdata.com/products/
三、Grafana: 用于数据展示
Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。
Grafana主要特性
灵活丰富的图形化选项
可以混合多种风格
支持白天和夜间模式
多个数据源。
安装布署过程
备注: 部署部署influxDB服务,首先得有docker环境,这个就不用介绍了吧
四、部署influxDB服务
1、查看容器
五、部署cadvisor服务
1、查看cadvisor容器