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運行信息。