作者 | Milan Mahat
在本指南中,我們將學習如何使用 docker-compose 在容器中設置 cAdvisor,將其與 prometheus 連接,並通過 grafana 監控伺服器的容器。
CAdvisor 是一種流行的工具,用於收集容器的資訊。它是 prometheus 和 grafana 用來抓取資訊並將資訊以圖形、圖表、時間序列和其他各種形式視覺化的代理。CAdvisor 從容器中收集各種指標,這些資訊由 prometheus 抓取,然後 grafana 將資料轉換為直觀的展現形式。
CAdvisor 是一個獨立的應用程序。它具有對 Docker 容器的原生支持,並且還支持其他容器環境,例如開箱即用的 Kubernetes。
在容器中設置 cAdvisor 和 prometheus
配置 docker-compose.yml 檔案並啟動容器
sudo nano docker-compose.yml
現在將以下程式碼添加到其中:
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- "9200:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk/:/dev/disk:ro
devices:
- /dev/kmsg
networks:
- prometheus-network
restart: unless-stopped
在 docker compose 檔案中,卷已以只讀模式對映到容器中。這是收集有關正在運行的容器資訊所必需的。配置檔案應該是這樣的:
需要在 Prometheus 的配置檔案中添加一些配置:

sudo nano config/prometheus.yml
在其中添加以下程式碼:
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']
在這裡,添加了目標 cadvisor:8080。這個地址只有在 prometheus 和 cAdvisor 容器都在同一個網路中時才有效。對於遠端容器監控,只需要設置遠端 cadvisor 的地址和埠,因為上面已經分別對映了主機和容器的埠 9200 和 8080。
配置應該如下所示:

現在使用 docker-compose 檔案構建的 cAdvisor,然後啟動容器:
sudo docker-compose up --build –d
並檢查狀態:
docker-compose ps
看起來 cAdvior 運行良好。現在訪問 http://yourserverip:9090/ 訪問 prometheus 並檢查 cAdvisor 是否連接到 prometheus:
轉到狀態-> 目標。


在這裡可以看到 cadvisor 已經啟動了。
這意味著 prometheus 也可以從 cadvisor 中抓取資料。
登入到 grafana 伺服器。
轉到 http://yourserverip:3000/
現在為容器監控設置儀表板。
點選匯入:

現在粘貼 14282 並單擊載入。
此 ID 從 grafana 錶板庫中匯出完整的 cadvisor 儀表板。您可以在下面連結中瀏覽更多儀表板。
https://grafana.com/grafana/dashboards/
點選載入。

設置名稱,設置正確的 preometheus 並點選匯入。
匯入後,您可以看到儀表板。這個儀表板是現成的儀表板,包含很多關於容器的資訊。

儀表板已載入各種指標,例如 CPU 利用率、記憶體利用率、快取記憶體、網路流量利用率等。您可以根據需要探索和自定義許多其他各種指標。還可以使用自己的自定義查詢創建自定義儀表板。
您還可以從另一臺伺服器監控容器,只需進行少量修改。此外,您可以設置警報系統,並在您的伺服器或容器中檢測到異常時向您的電子郵件、微信、釘釘發送警報訊息。
原文:
https://cloudtechservice.com/container-monitoring/