cAdvisor是Google用來監(jiān)測單節(jié)點的資源信息的監(jiān)控工具置谦。雖然Docker提供了一些CLI(dockerps/top/stats等)的命令行的功能堂鲤,但cAdvisor圖形化的提供了一目了然的單節(jié)點多容器的資源監(jiān)控功能。而且cAdvisor是免費的媒峡,cAdvisor作為一個很不錯的工具瘟栖,已經(jīng)引起越來越多人的關(guān)注。
安裝cAdvisor:
docker run -d -p 8080:8080 \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw\
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro\
--name=cadvisor \
google/cadvisor:latest
登錄cAdvisor的UI界面:
在瀏覽器通過yourIp:8080就可以登錄cAdvisor的UI界面谅阿。
cAdvisor實現(xiàn)了兩個層次的監(jiān)控:
1半哟、主機酬滤,包括主機的Processes、CPU寓涨、Memory敏晤、Network、Filesystem
2缅茉、容器嘴脾,包括容器的Processes、CPU蔬墩、Memory译打、Network、Filesystem
點擊Docker Containers進入Docker Containers頁面
該頁面列出了主機上運行的containers(docker ps)拇颅、docker信息(docker info)奏司、pull到本地的images(docker images)
回到上一級頁面,點擊/docker進入/docker頁面
進一步點擊子容器鏈接樟插,例如:/docker/a81a84acb650e52cb806f390daca8a80d8b77ca141dda40ebfb5801eb3a109b6進入具體的容器監(jiān)控頁面韵洋,我這里進入weavescope容器監(jiān)控頁面,我們看到了容器內(nèi)Processes黄锤、CPU搪缨、Memory、Network鸵熟、Filesystem實時的變化情況副编。
可見cAdvisor非常的簡單,而且很好的從主機和容器兩個層面實現(xiàn)了資源的監(jiān)控流强,但也存在如下的局限性:
1痹届、只能監(jiān)控單主機,如果想監(jiān)控多主機及其上的容器打月,需要在每臺主機上部署cAdvisor队腐。即便是這樣Google的Kubernetes中也缺省地將其作為單節(jié)點的資源監(jiān)控工具,各個節(jié)點缺省會被安裝上cAdvisor奏篙。
2柴淘、監(jiān)控的資源是實時的,并不能反映一段時間內(nèi)的變化趨勢报破。這是因為cAdvisor并不儲存數(shù)據(jù)悠就,如果配合第三方工具,例如InfluxDB充易、Grafana就可以達到理想的效果梗脾。