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。

特别说明:

(1)cpu%示例:

cAdivsor采集的主机CPU数据是“Cumulative CPU usage”,是一个累计使用量,所以要用到InfluxDB的derivative()这个函数计算当前数据相对于前一个数据的变化量。“/ 1000000000”是为了转化为millicores并取百分比,1代表的是服务器的物理CPU是1核,因此这个值还要根据主机的情况确定。

(2)mem示例:

(3)mem%示例:

"134636487311.36"表示的就是主机的实际内存大小的准确值,约为125.39G,可以用这个数值代替,要获得准确值可以通过登录主机查看或者到访问cAdvisor的页面Debug"container.js"获取。

 

3.总结

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值