40 張圖 詳解 Docker 容器監控

🌟 前言

在企業中,通常業務是不允許隨意停止的,否則將給企業帶來巨大的經濟損失。

運維工程師要保證業務正常運行,就必須利用工具時刻監控業務的運行狀態,容器中的業務也不例外。

除了容器自身的監控命令外,還有一些針對容器的動態特徵而開發的第三方監控工具。

本章將對 容器監控 及其相關內容進行詳解。

1. Docker 監控命令

在容器中,通常可以通過執行命令或利用第三方工具,獲取當前容器中的數據並將數據呈現給用戶。

安裝完成的 Docker 自帶一些用於監控容器的子命令,這是 Docker 開發者爲用戶提供的容器監控方式。

🍑 docker ps 命令

docker ps 命令是之前中講過的命令,用來查看容器狀態,示例代碼如下:

另外,通過 docker container ls 命令也可以達到相同的效果,示例代碼如下:

注意,若是 docker container ls 命令執行失敗,更新 Docker 版本即可。

🍑 docker top 命令

docker top 命令用於查看容器中的進程,示例代碼如下:

以上示例通過 docker top 命令添加容器 ID 號查看到了容器內進程。

除此之外,還可以在命令中添加容器名稱,達到相同的效果,示例代碼如下:

docker top 命令中添加參數即可顯示特定的進程信息,此處以 -u 參數爲例,示例代碼如下:

以上示例通過給 docker top 命令添加 -u 參數,將 sysdig 容器的進程信息以用戶爲主的格式顯示出來。

🍑 docker stats 命令

docker stats 命令用於查詢容器的各項資源的消耗情況,示例代碼如下:

以上示例執行了 docker stats 命令,在終端通過一個動態列表顯示出各個容器的資源使用情況,如 cpu 使用率、內存、容器網絡等信息。

在沒有限制容器內存的情況下,此處將會顯示宿主機的內存。

此處的動態列表有一項明顯的不足,就是隻能顯示容器 ID 號,不顯示容器名稱。

但只要在命令中添加容器名稱,即可查看指定容器的信息,示例代碼如下:

Docker 自帶的容器監控命令能夠靈活捕捉容器的實時信息,且使用方便。

但它們無法反映容器資源佔用的趨勢,且只能顯示有限的數據。

2. Sysdig

Sysdig 是一款命令行監控工具,因其輕量級的特點深受廣大用戶的喜愛。

Sysdig 就像放大鏡,使用戶可以更清晰地看到宿主機與容器的各項行爲。

它相當於多種 Linux 監控工具的合集,如 strace、htop、lsof 等,將這些工具的功能及查詢結果整合到同一個界面中,供用戶操作。

Sysdig 爲在 Docker Hub 中提供了容器鏡像,用戶可以將 Sysdig 以容器的形式運行,示例代碼如下:

以上示例中,Sysdig 容器以掛載宿主機目錄的方式收集系統信息,並給予其足夠的系統權限。

注意,該命令中必須使用絕對路徑,否則會在執行時出錯。

容器啓動後將直接進入容器終端,若通過 Ctrl+P+Q 組合鍵退出容器或者容器在後臺運行,通過 exec 命令即可進入 Sysdig 容器,示例代碼如下:

Sysdig 容器中,通過以下命令啓動 Sysdig 監控:

執行成功之後,將顯示 Sysdig 功能界面,如圖所示。

功能界面中不僅有各項資源的使用信息,下方還有各類選項,用戶可以根據不同要求從不同角度去監控不同類型的資源。

F2 鍵或者單擊 Views 選項,進入監控選項列表,如圖所示。

在該界面中,左邊列出了 Sysdig 的各個監控項,右邊是關於監控項的說明。

通過鍵盤方向鍵即可移動界面中的光標,從而切換監控項。

下面將光標移動到 Containers 項,按回車鍵或者雙擊該選項,進入容器監控界面,如圖所示。

若是用戶覺得圖中的內容太過繁瑣,或者難以理解,可以按 F7 鍵,進入數據說明界面。

其中有對各項數據的解釋,能幫助用戶更快掌握 Sysdig 的使用方法,如圖所示。

進入該界面之後,按任意鍵即可退出。

另外,在監控界面中還可以指定按照某一項數據進行排序,單擊列表中某一項數據的表頭即可。

此處以內存爲例,按照佔用內存排序的監控列表,如圖所示。

若要查看單個容器內部信息,將光標移動到該容器信息上,按回車鍵即可,如圖所示。

再移動光標到指定信息,按回車鍵還可以查看容器進程中的線程信息,如圖所示。

若要返回上一級,在鍵盤上按退格鍵即可。

爲方便用戶管理,Sysdig 還支持搜索功能,通過 Ctrl+F 組合鍵即可啓動該功能,再輸入關鍵字即可查詢。此處關鍵字以 usr 爲例,如圖所示。

如果在操作過程中遇到問題,可以按 F1 鍵或者單擊某選項,進入幫助文檔。

幫助文檔詳細介紹了 Sysdig 的操作方式,供用戶學習。

若動態列表變化太快,導致用戶無法準確查看到信息,可以按 P 鍵將列表暫停。

Sysdig 爲用戶提供了較爲全面的監控視角,但其本質是命令行工具,缺乏更具直觀性的監控角度。

3. Weave Scope

Weave Scope 爲用戶提供了更直觀的監控視角,它將整個監控以圖形界面的形式呈現出來。

🍑 安裝 Weave Scope

首先,下載 Weave Scope 的二進制安裝包到指定的路徑下,示例代碼如下:

Weave Scope 安裝包的本質是一個腳本,所以需要賦予其執行權限,示例代碼如下:

然後,通過命令執行該腳本,示例代碼如下:

此時,Weave Scope 監控已經開啓,通過瀏覽器訪問系統提示中的 http://192.168.77.128:4040/ 即可進入監控界面。

在進入界面之前先查看容器狀態,示例代碼如下:

從以上示例中可以看到,宿主機中增加了一個被命名爲 weavescope 的新容器,這說明 Weave Scope 以容器的方式在宿主機中運行。

下面根據提示進入 Weave Scope 界面,如圖所示。

圖中,宿主機中的所有容器都以圖形的形式呈現出來,更加便於用戶管理。

🍑 監控容器

Weave Scope 界面中,宿主機上的容器被分爲多個種類,默認不顯示 Weave Scope 本身的容器。

若要查看所有容器,就需要在界面左下角的選項中進行操作,如圖所示。

在左下方單擊 All 選項,即可查看宿主機中所有運行中的容器,如圖所示。

若要查看容器的資源佔用情況,需要在界面上方選項中進行操作,如圖所示。

在上方單擊 CPU 選項,即可顯示界面中容器的 CPU 使用情況,如圖所示。

單擊 CPU 選項之後,CPU 使用情況將會以液位高度的形式在容器圖標上顯示。

此時,將鼠標指針移動到容器圖標之上,即可顯示具體數據,如圖所示。

若要查看某一容器的詳細信息,單擊該容器圖標即可,如圖所示。

其中,容器的詳細信息包括以下各項:

CPU 與內存的實時狀態曲線圖。

鏡像、鏡像標籤、命令等信息。

該容器中實時運行的進程信息。

維護人員或容器的啓動命令等信息。

該容器的鏡像信息。

容器詳細信息界面中,有一行可對該容器直接進行操作的選項,如圖所示。

圖中的選項從左到右分別表示:

通過 docker attach 命令進入容器終端;

通過 docker exec 命令進入容器終端;

通過 docker restart 命令重新啓動容器;

通過 docker pause 命令暫停容器;

通過 docker stop 命令終止容器。

有了這些選項,用戶就不需要在終端中輸入命令,直接單擊選項即可對容器進行操作。

若需要執行這些選項之外的操作,可通過選項進入容器終端完成。

🍑 監控宿主機

Weave Scope 爲用戶提供廣闊的監控視角,除了監控容器,還可以對宿主機進行監控。

單擊界面上方的 Hosts 選項,即可查看宿主機,如圖所示。

與容器操作相同,單擊宿主機圖標即可查看其詳細信息,如圖所示。

與容器相比,宿主機的 Staus 項中增加了負載信息。

詳細信息還包含了宿主機中的容器信息,單擊容器名稱即可查看容器的詳細信息。

宿主機的信息中只有一個供用戶對其進行操作的選項,單擊即可進入宿主機終端,如圖所示。

🍑 多宿主機監控

在企業生產環境中,通常需要使用多臺宿主機部署容器業務,所以容器監控也需要同時監控多臺宿主機。

Weave Scope 恰好擁有多宿主機監控的功能,下面通過示例來演示該功能的使用方式。

首先,準備兩臺安裝了 Weave Scope 的服務器,並分別在啓動命令中添加兩個服務器的 IP 地址進行啓動,示例代碼如下:

根據兩臺宿主機中啓動命令的執行結果,無論是訪問 http://192.168.77.128:4040/ 還是 http://192.168.77.130:4040/,都可以監控到兩臺宿主機,如圖所示。

單擊界面上方的 Containers 選項,查看所有宿主機中的容器,如圖所示。

爲了便於用戶分辨,Weave Scope 在每個容器圖標下的容器名稱後都會標註該容器所屬宿主機的主機名。

在生產環境中部署大量容器,需要對某一容器進行操作時,可以使用 Weave Scope 界面左上角的搜索功能,對該容器進行搜索。

此處以關鍵字 "reg" 爲例,搜索結果如圖所示。

另外,Weave Scope 還支持邏輯條件搜索。

例如,搜索 CPU 佔用率大於 1% 的容器,在搜索欄中輸入 "cpu>1 即可,如圖所示。

界面的右下角有四個選項,從左到右前三個是調試界面顯示的選項,最後一個是 Weave Scope 的幫助選項,如圖所示。

單擊幫助選項,即可查看 Weave Scope 的幫助文檔,如圖所示。

4. 總結

本章講解了 Docker 自帶的監控命令,以及一些第三方監控軟件的安裝與使用。

其中,Sysdig 是一款優秀的命令行監控工具;

Weave Scope 不僅操作簡單,還爲用戶提供了更爲直觀的圖形界面。

希望大家通過本篇文章的學習能夠熟練掌握 Docker 容器的監控方式,以保證容器中業務的正常運行。

原文:

https://blog.csdn.net/m0_63325890/article/details/125752738 

作者:飛向星的客機

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/CeTdXMKaFEt_w7rodqJ2zg