使用Cadvisor监控容器并展示数据

【使用Cadvisor监控容器并展示数据】Cadvisor使用Go语言开发,利用linux的cgroups获取容器的资源使用信息,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Prometheus进行数据抓取 。
本文介绍下 Cadvisor的安装,以及如何监控容器,最后去展示数据的 。
 
一、 使用容器部署 cadvisor 采集器[root@prometheus ~]# Docker run--volume=/:/rootfs:ro--volume=/var/run:/var/run:ro--volume=/sys:/sys:ro--volume=/var/lib/docker/:/var/lib/docker:ro--volume=/dev/disk/:/dev/disk:ro--publish=8080:8080--detach=true--name=cadvisor--privileged--device=/dev/kmsggoogle/cadvisor:latest 
#如果启动docker 报错 ,cadvisor Failed to start container manager: inotify_add_watch /sys/fs/cgroup/cpuacct,cpu: nosuchfile
解决方法:
1、设置cgroup 为可读写文件, 不然的话会报:只读文件系统
2、建立软连接
[root@prometheus ~]# mount -o remount,rw '/sys/fs/cgroup'
[root@prometheus ~]# ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu
再次启动容器 就OK 了
 
二、打开浏览器访问cadvisor 控制台浏览器访问 http://192.168.31.250:8080
可以看到 一些容器的metrics 数据

使用Cadvisor监控容器并展示数据

文章插图
 
三、 在 prometheus 服务器上配置 scrap
使用Cadvisor监控容器并展示数据

文章插图
 
修改配置文件(添加最下面的job_name: 'docker')
[root@prometheus to]# cat prometheus.ymlglobal:scrape_interval:15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# Alertmanager configurationalerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093rule_files:# - "first_rules.yml"# - "second_rules.yml"scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['192.168.31.250:9090']- job_name: 'node'static_configs:- targets: ['192.168.31.30:9100','192.168.31.40:9100','192.168.31.41:9100','192.168.31.42:9100']params:collect[]:- cpu- meminfo- diskstats- job_name: 'docker'static_configs:- targets: ['192.168.31.250:8080']#改完后记得重新加载下 prometheus 的配置文件
[root@prometheus ~]# ps -ef | grep prometheus | grep -v grep | awk '{print $2}' | xargs kill -HUP
 
四、 在 prometheus 控制台上 查看targets?可以看到cadvisor 采集器 已经添加到targets 列表中了
使用Cadvisor监控容器并展示数据

文章插图
 
五、在grafana 上展示 容器数据这里使用 grafana dashboard 官网中的模板 https://grafana.com/grafana/dashboards/193
使用Cadvisor监控容器并展示数据

文章插图
 
登录grafana , http://192.168.31.250:3000
使用Cadvisor监控容器并展示数据

文章插图
 
import 导入模板,ID 为 193
使用Cadvisor监控容器并展示数据

文章插图
 

使用Cadvisor监控容器并展示数据

文章插图
 
可以自定义监控名称,选择数据源为prometheus
使用Cadvisor监控容器并展示数据

文章插图
 
最终效果
使用Cadvisor监控容器并展示数据

文章插图
 
本篇只涉及到 使用Cadvisor监控容器并展示数据 ,并没有写到 触发器的配置告警,这个等后面再更新 。




    推荐阅读