網頁

Azure Container Monitoring之容器偵錯實例

Azure Container Monitoring之容器實例

Containers Diagram

一般當 Docker Host 與 Container 的越來越多時就能發現,在管理與處理 Docker Host 與 Container 因為太分散的關係(Docker Swarm / Kubernetes 本身就分散式架構)反而費時費力,在內網可以採用 Portainer 來管理,Portainer 好用是好用,但 Portainre 本身還是比較是單一個 Docker 與 Container 服務來查詢與管理,要想整合多個 Docker 資訊時,它就比較使不上力了。在嘗試使用 Container Monitoring solution 之後,發現這真是個好服務,用個簡單實例來看看如何使 Container Monitoring 來快速進行問題定位與處理。

ContainerLog 1

當 Container Monitoring 服務開始收集之後,能在 Container Log 圖表上看到所有 STDOUT / STDERR,這原本要一個一個 Container 的去查詢才能知道的事,現在集中化管理所有 Docker Host / Container 的 Log,省時省力。點擊進入Container Log 圖表進入了 Kusto query language 查詢介面,對 Kusto query 不熟沒關係,預設抓 stderr 剛好是我們想要的:

Kusto query

我們可以左右拉查看資訊,也可以點擊 > 把項目打開查看:

Browse Log Info

很明顯,某台 Docker Host 的 Windows Container 的 Portainer Agent 設定有些問題,快快查詢一下 docker logs

docker logs portainer_agent

又是另一個很明顯,這個 portainer_agent Container 不明的原因服務重啟,重啟之後它的 IP Address 更換了,造成 Portainer 與 Agent 之間溝通出現問題。從 Container Log 又快速定位到另一台有相同問題 Container:

docker logs portainer_agent 2

各位可以發現,當系統越來越分散,偵錯的成本也是有部分會拉高的,集中化日誌能提供快速定位問題點的好處,尤其是像 Container 這種日誌,它不是應用程式層級,也不是系統層級,很難第一時間注意到它的存在與反應,有了 Container Log 的幫忙,就像上面的例子一樣,專注於 STDERR 來追蹤"快又有效"。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。