日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

你必须知道的容器监控 (1) Docker自带子命令与Weave Scope

發(fā)布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你必须知道的容器监控 (1) Docker自带子命令与Weave Scope 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本篇已加入《》,可以點擊查看更多容器化技術(shù)相關(guān)系列文章。本篇會介紹幾個目前比較常用且流行的容器監(jiān)控工具,首先我們來看看Docker自帶的幾個監(jiān)控子命令:ps、top以及stats,然后是一個功能更強的開源監(jiān)控工具Weave Scope。

# 實驗環(huán)境:阿里云ECS主機(jī),CentOS 7.4

01

Docker自帶監(jiān)控子命令

ps

????想必只要我們看過一點docker的文章,就應(yīng)該都知道docker ps這個命令,它使我們可以方便的查看現(xiàn)在正在運行的所有容器實例。

# docker ps

  執(zhí)行后效果如下圖:

  其實,它等價于下面兩句命令:

top

????????如果我們想要了解某個容器中到底運行了哪些進(jìn)程,可以通過top命令來查詢。

# docker top container_name

  這里假設(shè)我們想查詢exceptionless_api這個容器中運行了哪些進(jìn)程,通過以下命令查詢:

# docker top exceptionless_api_1

  

  可以看到,在exceptionless_api_1這個容器中只運行了一個進(jìn)程,該進(jìn)程是一個.NET Core應(yīng)用程序,其命令為:dotnet Exceptionless.Web.dll。

  如果想要看到更多信息比如狀態(tài)、啟動時間等等,可以加上-au:(當(dāng)然可以參閱Linux ps命令的參數(shù)加上更多參數(shù)顯示特定信息)

# docker top exceptionless_api_1 -au

  ?

  從上圖可以看到,該進(jìn)程對于CPU和內(nèi)存的占用量。

stats

????????如果我們想要查詢每個容器對于各種資源的使用情況,那么可以直接使用docker stats,這是一個強大的命令,默認(rèn)會顯示一個實時變化的列表,以顯示每個容器實例的CPU使用率、內(nèi)存使用量以及可用量等等。  

Note:可以看到上圖中內(nèi)存的Limit都是3.7G,這是因為在容器啟動時沒有特別指定內(nèi)存Limit,所以這里都會默認(rèn)顯示Host主機(jī)的總內(nèi)存量(這里我的阿里云ECS主機(jī)是4G的內(nèi)存配置),但并不意味著每個容器都能使用到這么多的內(nèi)存。因此,我們完全可以為不同的容器實例設(shè)置不同的資源限制值,我也有寫一篇文章《Docker資源限制學(xué)習(xí)與驗證》。

?  可以看到默認(rèn)列表是基于容器ID來排列的,其實并不便于我們查看某個具體容器的資源使用情況,我們可以加上具體容器名字來定位和查看詳情:

# docker stats exceptionless_api_1

  

02

開源監(jiān)控工具Weave Scope

安裝與運行

????????Weave Scope 是 Docker 和 Kubernetes 可視化監(jiān)控工具。Scope 提供了至上而下的集群基礎(chǔ)設(shè)施和應(yīng)用的完整視圖,用戶可以輕松對分布式的容器化應(yīng)用進(jìn)行實時監(jiān)控和問題診斷。

  Weave Scope的GitHub地址為:https://github.com/weaveworks/scope

  我們可以通過以下腳本安裝運行Weave Scope:

# curl -L git.io/scope -o /usr/local/bin/scope # chmod a+x /usr/local/bin/scope # scope lanuch

  

?  看到上圖中的提示信息,代表你已經(jīng)成功啟動了Weave Scope。

監(jiān)控容器

??????? Weave Scope默認(rèn)的端口號綁定的是4040,因此我們可以直接訪問http://[Host IP]:4040就可以看到如下圖所示的界面:  

?  從上圖中可以看到,目前我的Host中有哪些容器實例,他們之間的關(guān)聯(lián)是什么樣的。比如這里我有一個Exceptionless的容器實例群,包括UI、API、Job、ElasticSearch、Kibna以及Redis。其中UI和其他容器沒有關(guān)聯(lián)關(guān)系,而API、Job、Kibna以及Redis都互有聯(lián)系。

  此外,Weave Scope還有自己的容器,因為我們的Weave Scope也是容器運行的,點擊篩選“System containers”就會顯示W(wǎng)eave自己的容器了:

  

?  默認(rèn)情況下,Weave提供了CPU占用率和內(nèi)存使用量這兩個關(guān)鍵指標(biāo)的監(jiān)控,我們可以選擇不同的指標(biāo)進(jìn)行查看:

  比如這里我選中Memory,Weave會采用水位高低的顯示方式來展示內(nèi)存使用量;同理,CPU占用率也是一樣。

?  

?  如果想查看某個容器的詳細(xì)信息,可以單擊該容器的圖標(biāo),這里我們點擊exceptionless_elasticsearch這個容器,可以看到如下圖所示的詳細(xì)信息:

?  

?  從上圖可以看到詳情主要包括兩個部分:

  (1)Status:CPU、內(nèi)存實時占用率以及歷史曲線(注意CPU和內(nèi)存那條線不一定都是直的,是曲線喲);

  (2)Info:容器鏡像名稱、啟動命令、網(wǎng)絡(luò)、狀態(tài)等信息;

?  滾動下拉還可以看到如下圖所示的信息:

  

?  從上圖可以看到容器中正在運行的進(jìn)程及其資源占用情況。點開Image,還會看到更詳細(xì)的鏡像信息。

?  此外,我們還看到了容器詳情上面有一排按鈕,可以支持我們對容器進(jìn)行操作,從而不再需要去記住那些docker attach等命令。

  

?  第一個圖標(biāo)是attach,點擊可以attach容器的啟動進(jìn)程,等價于:docker attach。

   第二個圖標(biāo)是打開shell,點擊可以進(jìn)入容器中,等價于:docker exec。

?  后面三個代表restart重啟容器,pause暫停容器 及 stop停止容器。

  比如我點擊第二個圖標(biāo),即可進(jìn)入該容器中可以進(jìn)行shell命令輸入了:  

監(jiān)控Host

????????除了監(jiān)控容器之外,Weave Scope還支持監(jiān)控容器所在的Host。當(dāng)我們單擊頂部菜單中的“Hosts”選項,即可顯示當(dāng)前Host的信息:

  

  可以看到,我目前就只有一臺阿里云ECS主機(jī)Host。

  同理,單擊該Host圖標(biāo)也會顯示其詳細(xì)信息:

  

?  從圖中可以看到,Host的實時資源使用情況和歷史曲線我們都能夠清晰的看到,滾動下拉條還可以看到Host上運行的進(jìn)程和容器列表,如下圖所示:

?  

?  單擊某個容器鏈接,就可以看到該容器的詳細(xì)監(jiān)控信息了,很方便。

?  此外,對于Host也提供了單擊進(jìn)入Shell的按鈕,可以方便地打開Shell窗口做遠(yuǎn)程管理:  

多Host監(jiān)控

????????實際環(huán)境中,我們會有多個Host,每個Host都會部署多個容器,那么如何讓多個Host作為一個集群被監(jiān)控呢?

  假設(shè)我們有兩個Host,只需要在這兩個Host中執(zhí)行以下命令進(jìn)行啟動即可:

# scope launch 192.168.16.150 192.168.16.151

  這樣無論訪問哪個服務(wù)器的4040端口(假設(shè)沒有更改默認(rèn)端口)都能監(jiān)控到兩個Host。

邏輯條件查詢

????????實際環(huán)境中我們會有很多個容器,那么如何快速查詢到某個關(guān)鍵指標(biāo)的容器呢?

  Weave Scope還提供了邏輯條件的查詢,這里我們以CPU和內(nèi)存為例:

  (1)查詢內(nèi)存使用量>900MB的容器實例:

  

?  篩選出來,目前只有一個容器內(nèi)存使用超過了900mb。

  (2)查詢CPU占用率>1%的容器實例:

  

?  篩選出來,也只有一個(當(dāng)然也跟我實驗環(huán)境容器實例并不多有關(guān))。

03

小結(jié)

對于容器監(jiān)控,docker自帶的監(jiān)控子命令是最簡單的最容易使用的,但是對于多Host監(jiān)控、告警及監(jiān)控非容器資源都不支持,且用戶友好度不夠。Weave Scope則解決了多Host監(jiān)控、監(jiān)控非容器資源,但是不支持告警,不過對于一般小型的微服務(wù)容器實例監(jiān)控是足夠了。此外,Weave Scope對于大屏顯示的界面友好度及Dashboard做的還是不夠好,因此后面第二篇我們會學(xué)習(xí)Prometheus,它是一個更加強大和優(yōu)秀的開源容器監(jiān)控方案。

參考資料

Cloud Man,《每天5分鐘玩轉(zhuǎn)Docker容器技術(shù)》

冰凍vs西瓜,《利用WeaveScope監(jiān)控容器》

sjyu_eadd,《Docker那些事兒-Docker容器監(jiān)控工具》

恰童鞋騷年,風(fēng)華也許不再正茂,但卻仍想揮斥方遒

本公眾號會長期關(guān)注和分享.NET Core,Microservice,云原生(Docker & Kubernetes等),DevOps等技術(shù)內(nèi)容文章,還會與你分享個人生活成長的點滴及各類好書的讀書筆記,希望能對你有所幫助,一起成長!


點個【在看】,和更多人一起分享!

總結(jié)

以上是生活随笔為你收集整理的你必须知道的容器监控 (1) Docker自带子命令与Weave Scope的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。