容器監控指南:三劍客輕鬆實現 Docker 容器監控

作者 | 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 並單擊載入

現在粘貼 14282 並單擊載入。

此 ID 從 grafana 錶板庫中匯出完整的 cadvisor 儀表板。您可以在下面連結中瀏覽更多儀表板。

https://grafana.com/grafana/dashboards/

點選載入。

點選載入

設置名稱,設置正確的 preometheus 並點選匯入。

匯入後,您可以看到儀表板。這個儀表板是現成的儀表板,包含很多關於容器的資訊。

儀表板已載入各種指標,例如 CPU 利用率、記憶體利用率、快取記憶體、網路流量利用率等。您可以根據需要探索和自定義許多其他各種指標。還可以使用自己的自定義查詢創建自定義儀表板。

您還可以從另一臺伺服器監控容器,只需進行少量修改。此外,您可以設置警報系統,並在您的伺服器或容器中檢測到異常時向您的電子郵件、微信、釘釘發送警報訊息。

原文:

https://cloudtechservice.com/container-monitoring/

相關文章

40 張圖 詳解 Docker 容器監控

40 張圖 詳解 Docker 容器監控

作者 | 飛向星的客機 來源 | CSDN部落格 前言 在企業中,通常業務是不允許隨意停止的,否則將給企業帶來巨大的經濟損失。 運維工程師要...

Linux 中如何檢查開放的埠

Linux 中如何檢查開放的埠

作者 | 劉光錄 來源 | TIAP 無論你的伺服器是用的Linux還是桌面系統,了解系統開放的埠,和正在使用的埠,在各種情況下都會有所幫助...

JavaScript、Python 比 C++ 慢 8 倍、29 倍?

JavaScript、Python 比 C++ 慢 8 倍、29 倍?

整理 | 蘇宓 近日,來自多倫多大學和 YScope 公司(為軟體系統提供創新的日誌管理和故障排除工具。由一群計算機工程教授和博士創立)的 ...