我們可以使用多種方法監控容器的運行情況,比如EFK等,但是我們仍舊需要一個資源利用率監控系統。這個時候,google開發的cadvisor就可以幫上我們的忙了。
cadvisor是google創建的用於監控icmtfy容器資源使用情況和性能的軟件,cadvisor在宿主機上以容器方式運行。通過掛在本地卷,它可以監控在同一台主機上運行的所有容器。它還提供了一個本地web界面和API,並且能夠將數據存儲到InfluxDB,將運行中的容器數據存儲到遠程InfluxDB集群。
1. 首先下載cadvisor容器:
docker pull google/cadvisor
2. 執行如下啟動命令:
docker run -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -p 8080:8080 -d --name cadvisor google/cadvisor
3.登陸界面查看:
注:
這時可能會碰到一個小問題,cadvisor容器稍后就會停止,查看日志
#docker logs cadvisor
...
I0119 06:48:46.106313 1 manager.go:231] Version: {KernelVersion:3.10.0-514.2.2.el7.x86_64 ContainerOsVersion:Alpine Linux v3.4 DockerVersion:17.05.0-ce DockerAPIVersion:1.29 CadvisorVersion:v0.28.3 CadvisorRevision:1e567c2}
I0119 06:48:46.188502 1 factory.go:356] Registering Docker factory
I0119 06:48:48.189502 1 factory.go:54] Registering systemd factory
I0119 06:48:48.190978 1 factory.go:86] Registering Raw factory
I0119 06:48:48.192401 1 manager.go:1178] Started watching for new ooms in manager
W0119 06:48:48.192473 1 manager.go:313] Could not configure a source for OOM detection, disabling OOM events: open /dev/kmsg: no such file or directory
I0119 06:48:48.200747 1 manager.go:329] Starting recovery of all containers
I0119 06:48:48.410494 1 manager.go:334] Recovery completed
F0119 06:48:48.461768 1 cadvisor.go:156] Failed to start container manager: inotify_add_watch /sys/fs/cgroup/cpuacct,cpu: no such file or directory
接着google問題產生原因,結果有人發現了如下情況:
我去,名字弄反了,懶得自己弄,接着找解決辦法,如下是找到的解決辦法:
按照上面測試,果真好了。