Prometheus客户端docker监控cAdvisor

Posted gsls200808

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus客户端docker监控cAdvisor相关的知识,希望对你有一定的参考价值。

从上一篇文章讲到客户端节点监控需要用node_exporter,docker监控也需要用一个exporter,这个exporter就是cAdvisor,类似zabbix的各种agent
cadvisor官网:GitHub - google/cadvisor: Analyzes resource usage and performance characteristics of running containers.

下面讲正题

1.下载安装

官网方案,直接用docker run运行

sudo 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=9080:8080 \\
  --detach=true \\
  --name=cadvisor \\
  --privileged \\
  --device=/dev/kmsg \\
  gcr.io/cadvisor/cadvisor:latest

实际上gcr.io是谷歌的,谷歌这个域名是访问不下来的。所以需要一个折中方案

下载离线包:cadvisor.tar-kubernetes文档类资源-CSDN下载

然后导入镜像

docker load -i cadvisor.tar

查看导入的target名和版本

docker image ls

可以看到导入的名为google/cadvisor:latest

然后执行docker run,把后面的gcr.io一串换成google/cadvisor:latest

sudo 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=9080:8080 \\
  --detach=true \\
  --name=cadvisor \\
  --privileged \\
  --device=/dev/kmsg \\
google/cadvisor:latest

然后执行docker ps能看到cadvisor这个进程

 那个command全名是 "/usr/bin/cadvisor -logtostderr" 有些镜像是import导入的,需要指定这个command

之后我们打开

http://10.24.11.202:9080/containers/

ip换成自己的,可以看到容器状态

也可以用api看容器具体情况
http://10.24.11.202:9080/api/v1.0/containers/docker/988b9b94904649c6ce0bdb97e0a5f8b23c998f86435ef0074e653580c4d2f11f

不过我们监控关注的是metrics

http://10.24.11.202:9080/metrics

  2.服务端prometheus.yml添加节点信息

编辑

vi /usr/local/prometheus/prometheus.yml

添加

- job_name: "202docker"
    static_configs:
      - targets: ["10.24.11.202:9080"]

名称自己起,targets需要配置客户端的ip端口号

重启服务端

systemctl restart prometheus

 

3.Grafana添加仪表

然后导入仪表盘插件,先从官网找模板

这里推荐复制id 179 (Docker and Host Monitoring w/ Prometheus)

导入过程跟上一篇一样,仪表如图

 

以上是关于Prometheus客户端docker监控cAdvisor的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus - Docker/JVM 监控

云原生之Docker实战使用Docker部署Prometheus 服务监控系统

部署Prometheus+Grafana监控Docker

Prometheus客户端mysql监控mysqld_exporter

监控 - Prometheus让Docker指标可视化

Docker学习(12):Docker监控方案之Prometheus