天天看點

監控利器 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 容器是以 <code>privileged</code> 方式運作,而且會讀取作業系統 <code>/dev</code>,<code>/proc</code> 等資料,這是為了擷取足夠的系統資訊。

啟動後,通過 <code>docker container exec -it sysdig bash</code> 進入容器,執行 <code>csysdig</code> 指令,将以互動方式啟動 sysdig。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)

這是一個類似 linux top 指令的界面,但要強大太多。sysdig 按不同的 View 來監控不同類型的資源,點選底部 <code>Views</code> 菜單(或者按 F2),顯示 View 選擇清單。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)

界面左邊列出了 sysdig 支援的 View,一共 30 多項,涵蓋了作業系統的各個方面,因為這裡主要是讨論容器監控,是以我們将光标移到 <code>Containers</code>這一項,界面右邊立即顯示出此 View 的功能介紹。

回車或者輕按兩下 <code>Containers</code>,進入容器監控界面。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)

sysdig 會顯示該 Host 所有容器的實時資料,每兩秒重新整理一次。各列資料的含義也是自解釋的,如果不清楚,可以點一下底部 <code>Legend</code>(或者按 F7)。如果想按某一列排序,比如按使用的記憶體量,很簡單,點一下列頭 <code>VIRT</code>。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)

如果想看某個容器運作的程序,比如 <code>weavescope</code>,将光标移到目标容器,然後回車或者輕按兩下。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)

還可以繼續輕按兩下檢視程序中的線程。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)

傳回上一級,按倒退鍵即可。

sysdig 的互動功能很強,如果界面顯示的條目很多,可以點選底部 <code>Search</code>菜單,然後輸入關鍵字進行查找。如下圖,關鍵字為 <code>service</code>。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)

如果覺得界面重新整理太快,看不清楚關注的資訊,可以點選底部 <code>Pause</code> 菜單。

sysdig 的特點如下:

監控資訊全,包括 Linux 作業系統和容器。

界面互動性強。

不過 sysdig 顯示的是實時資料,看不到變化和趨勢。而且是指令行操作方式,需要 ssh 到 Host 上執行,會帶來一些不便。下一節介紹的 Weave Scope 在這方面似乎提供了更好的解決方案。

監控利器 sysdig - 每天5分鐘玩轉 Docker 容器技術(79)