Prometheus监控docker容器运行状态,我们用到cadvisor服务,cadvisor我们这里也采用docker方式直接运行。
1、下载镜像
[root@prometheus-server ~]# docker pull google/cadvisor
2、运行
cadvisor我们需要运行在docker宿主机上(与node_exporter类似),然后通过HTTP方式供Prometheus获取数据
[root@prometheus-server ~]# 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
3、配置 Prometheus 添加docker容器监控目标
[root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml .....
### 新增对对docker容器的监控 - job_name: 'docker' static_configs: - targets: ['172.16.11.248:9101','10.10.0.13:9101'] ## 目标主机
然后重启prometheus,看Prometheus界面targets是否有新增加的主机
4、接入Grafana展示容器监控数据
这里我们去Grafana官网,找别人做好的Dashboard模板,地址:https://grafana.com/dashboards/4170,下载模板json文件然后导入本地Grafana。关于导入Dashbozrd模板参考https://www.cnblogs.com/tchua/p/11115146.html
模板导入后需要修改几个地方:
1)修改label_values(up{job="container"}, instance),container改为对应的值,可以通过Prometheus界面查询具体的job对应名称。
2)修改监控图形中公式值,因为该模板不是基于最新版Node_exporter开发,有些值并不适用,我们需要修改对应的值,具体我们也可以通过Prometheus查询界面确定value值。
5、查看Dashboard面板
可以看到不仅可以监控node节点容器的信息,还可以简单展示dokcer容器宿主机的系统状况,并可以在左上角Node处选择不同的node节点查看不同的node节点上的docker运行信息。