監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)
sysdig 是一個輕量級的系統監控工具,同時它還原生支持容器。通過 sysdig 我們可以近距離觀察 linux 操作系統和容器的行為。
Linux 上有很多常用的監控工具,比如 strace,tcpdump,htop, iftop,lsof ......
而 sysdig 則是將這些工具的功能集成到一個工具中,並且提供一個友好統一的操作界面。
下面我們將演示 sysdig 強大的監控能力。
安裝和運行 sysdig 的最簡單方法是運行 Docker 容器,命令行為:
docker container run -it --rm --name=sysdig --privileged=true \
--volume=/var/run/docker.sock:/host/var/run/docker.sock \
--volume=/dev:/host/dev \
--volume=/proc:/host/proc:ro \
--volume=/boot:/host/boot:ro \
--volume=/lib/modules:/host/lib/modules:ro \
--volume=/usr:/host/usr:ro \
sysdig/sysdig
可以看到,sysdig 容器是以 privileged
方式運行,而且會讀取操作系統 /dev
,/proc
等數據,這是為了獲取足夠的系統信息。
啟動後,通過 docker container exec -it sysdig bash
進入容器,執行 csysdig
命令,將以交互方式啟動 sysdig。
這是一個類似 linux top 命令的界面,但要強大太多。sysdig 按不同的 View 來監控不同類型的資源,點擊底部 Views
菜單(或者按 F2),顯示 View 選擇列表。
界面左邊列出了 sysdig 支持的 View,一共 30 多項,涵蓋了操作系統的各個方面,因為這裏主要是討論容器監控,所以我們將光標移到
Containers
這一項,界面右邊立即顯示出此 View 的功能介紹。
回車或者雙擊 Containers
,進入容器監控界面。
sysdig 會顯示該 Host 所有容器的實時數據,每兩秒刷新一次。各列數據的含義也是自解釋的,如果不清楚,可以點一下底部 Legend
(或者按 F7)。如果想按某一列排序,比如按使用的內存量,很簡單,點一下列頭 VIRT
。
如果想看某個容器運行的進程,比如 weavescope
,將光標移到目標容器,然後回車或者雙擊。
還可以繼續雙擊查看進程中的線程。
返回上一級,按退格鍵即可。
sysdig 的交互功能很強,如果界面顯示的條目很多,可以點擊底部 Search
菜單,然後輸入關鍵字進行查找。如下圖,關鍵字為 service
。
如果覺得界面刷新太快,看不清楚關註的信息,可以點擊底部 Pause
菜單。
sysdig 的特點如下:
-
監控信息全,包括 Linux 操作系統和容器。
-
界面交互性強。
不過 sysdig 顯示的是實時數據,看不到變化和趨勢。而且是命令行操作方式,需要 ssh 到 Host 上執行,會帶來一些不便。下一節介紹的 Weave Scope 在這方面似乎提供了更好的解決方案。
監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)