使用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/kmsg 
  google/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.yml
global:
  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 configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_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监控容器并展示数据 ,并没有写到 触发器的配置告警,这个等后面再更新。

本文版权归 飞翔沫沫情 作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接 如有问题, 可发送邮件咨询,转贴请注明出处:https://www.fxkjnj.com/2498/

发表评论

登录后才能评论