docker 实时监控:cadvisor+influxdb+grafana
1 整体介绍
docker实时监控需要满足的要求大概有以下四点:
- 1.可以实时查看各个container的性能(*****)
cAdvisor为Docker容器用户提供了了解运行时容器资源使用和性能特征的工具,它可以监控docker性能,但只能展示2分钟的监控数据
- 2.监控历史数据能够长期保存 按需查看(****)
InfluxDB是一个开源分布式时序、事件和指标数据库,它可以长期储存cadvisor的监控数据。
- 3.可自己定制要查看哪一部分哪段时间的数据(***)
Grafana是一款开源的监控绘图工具,它可以实时收集、存储、显示时间序列类型的数据(time series data)。
- 4.可实时监控不同docker的性能(**)
在不同的docker上都开启cadvisor,然后将cadvisor的数据存入influxDB上不同的数据库,然后用grafana展示不同数据库的监控数据即可实时监控不同docker的性能。
2 操作步骤
- 1.创建并启动influxdb,8083用于数据库管理界面,8086用于Influxdb数据读写。
docker create -p 8083:8083 -p 8086:8086 -v /opt/influxdb:/var/lib/influxdb --name=influxdb --hostname=influxdb tutum/influxdb
docker start influxdb
在浏览器中输入ip:8083,打开数据库管理界面,创建数据库cadvisor,设置数据库用户名和密码。
- 2.在需要监控的docker上启动cadvisor
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --hostname=cadvisor --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_host=ip:8086 -storage_driver_db=cadvisor -storage_driver_user=root -storage_driver_password=123456
其中:
-storage_driver_host为上一步的host:port
-storage_driver_db为上一步创建的数据库的名称
-storage_driver_user为上一步设置的username
-storage_driver_password为上一步设置的password
在浏览器中打开ip:8080,可使用cadvisor监控2分钟内的性能
在上一步的ip:8083中,将数据库切换为新建的cadvisor,Query中输入SHOW MEASUREMENTS回车,看到下图所示的样子即为数据注入成功,反之请检查哪里输入错误。
- 3.部署gafana
docker create -p 3000:3000 --hostname grafana --name grafana grafana/grafana
docker start grafana
在浏览器输入ip:3000查看gafana,默认用户名和密码是admin/admin创建数据库,如下图,填写完成后点击save&test:
创建new dashboard->new graph,如下图是cpu_usage_total,创建完成后点击保存即可。
此外,可根据需要创建不同的graph。
3.总结
使用cadvisor+influxdb+grafana可以实时监控docker性能,也可以根据需要将关注的不同docker/container的各项数据放在grafana中展示。
注:influxdb和grafana只需要部署一次,然后根据需要将cadvisor部署在需要被监测的docker上即可。