Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行。这里我们可以服务端和客户端都使用cadvisor
客户端
1.下载镜像
[root@localhost opt]# docker pull google/cadvisor
2.运行
[root@localhost opt]# 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 \ --volume=/cgroup:/cgroup:ro \ --privileged=true \ --publish=9101:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor
注意:这里是把容器8080端口映射到主机9101,cadvisor有web界面地址:http://IP:9101
服务端
1.安装cadvisor,同客户端
2.配置 Prometheus 添加docker容器监控目标
[root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml ### 新增对对docker容器的监控 - job_name: 'docker' static_configs: - targets: ['192.168.229.138:9101','192.168.229.139:9101'] ## 目标主机
3.重启prometheus
[root@localhost opt]# systemctl restart prometheus
4.浏览器访问Prometheus Status > targets
5.下载模板
地址:https://grafana.com/dashboards/4170
6.修改Variables
因为我们在prometheus.yml 新增的 job_name是docker,所以修改如下
7.接入Grafana展示容器监控数据
我们可以看到容器的内存信息,如下图所示:
注意:模板有些值并不适用,比如CPU的值并没有取到,我们需要修改对应的值,具体我们也可以通过Prometheus查询界面确定value值。也就是说,我们必须要在Prometheus界面查询到值才可以展示。这里不作具体介绍。