欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker 实时监控:cadvisor+influxdb+grafana

程序员文章站 2022-06-07 08:48:31
...

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,设置数据库用户名和密码。

docker 实时监控:cadvisor+influxdb+grafana

docker 实时监控:cadvisor+influxdb+grafana

  • 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回车,看到下图所示的样子即为数据注入成功,反之请检查哪里输入错误。

docker 实时监控:cadvisor+influxdb+grafana

  • 3.部署gafana
docker create -p 3000:3000 --hostname grafana --name grafana grafana/grafana
docker start grafana
在浏览器输入ip:3000查看gafana,默认用户名和密码是admin/admin

创建数据库,如下图,填写完成后点击save&test

docker 实时监控:cadvisor+influxdb+grafana

创建new dashboard->new graph,如下图是cpu_usage_total,创建完成后点击保存即可。

docker 实时监控:cadvisor+influxdb+grafana

此外,可根据需要创建不同的graph。

3.总结

使用cadvisor+influxdb+grafana可以实时监控docker性能,也可以根据需要将关注的不同docker/container的各项数据放在grafana中展示。

注:influxdb和grafana只需要部署一次,然后根据需要将cadvisor部署在需要被监测的docker上即可。