天天看點

Prometheus監控運維實戰十三:Docker容器監控

目前容器的使用在企業中已經非常普及,将服務遷移到容器上正成為了越來越多公司的選擇。而對于運維人員而言,熟悉容器的使用與監控,也已成為一項必不可少的專業技能。關于容器的開源産品,目前知名的有docker、containerd、coreos rkt、lxc 等,在這其中docker占劇了絕對統治地位,也是目前使用最廣泛的容器産品。

本文将介紹通過prometheus實作docker容器監控的方案,關于docker的技術本文不做講解,不熟悉的朋友要可先自行檢視相關資料。

cadvisor為google開源的一款用于監控和展示容器運作狀态的可視化工具。cadvior可直接運作在主機上,它不僅可以搜集到機器上所有運作的容器資訊,還提供查詢界面和http接口,友善如prometheus等監控平台進行資料的擷取。

cadvisor的安裝很簡單,可通過容器的方式進行部署。

下載下傳鏡像

啟動容器

注解:該指令在容器中挂載了幾個目錄,ro代表隻讀,cadvisor将從其中收集資料。rw代表可讀寫,此處指定/var/run目錄,用于docker套接字的挂載;--detach将以守護程序的方式運作;--name對生成的容器進行命名;在ret hat,centos, fedora 等發行版上需要傳遞如下參數--privileged=true。

​檢視容器狀态,已正常啟動

​通路頁面

浏覽器打開http://ip:8080 ,可檢視cadvisor的web界面

Prometheus監控運維實戰十三:Docker容器監控
Prometheus監控運維實戰十三:Docker容器監控

​通路http://ip:8080/metrics,可看到相關的metrics名額資訊 

Prometheus監控運維實戰十三:Docker容器監控

cpu類型

​記憶體類型

​網絡類型

​存儲類型 

cadvisor是一個簡單易用的工具,它除了有詳細的監控名額,也提供了可供檢視的web圖表界面。但cadvisor本身的資料儲存時間隻有2分鐘,而且在多主機的情況下,要單獨去登入每台機器檢視docker資料對于管理者也是一件麻煩的事情。

對此,更好的方法是與prometheus內建,實作docker容器資料的收集與儲存。

由于cadvisor提供了支援prometheus的metrics格式接口,是以prometheus隻需要按照擷取exporter名額的方式,建立相關的job即可。

示例:

Prometheus監控運維實戰十三:Docker容器監控

任務正常啟動後,我們可以在prometheus檢視到相關的名額

Prometheus監控運維實戰十三:Docker容器監控

grafana提供了不少docker相關的dashboard,可根據自己情況選擇合适模闆導入。

選擇"create"-"import"

Prometheus監控運維實戰十三:Docker容器監控

填寫需要導入的dashboard id号,點選load

Prometheus監控運維實戰十三:Docker容器監控

選擇對應的prometheus 資料源,點選import

Prometheus監控運維實戰十三:Docker容器監控

導入完成後,可看到新的dashboard已生效。

Prometheus監控運維實戰十三:Docker容器監控

繼續閱讀