cAdvisor是Google用来监测单节点的资源信息的监控工具。虽然Docker提供了一些CLI(dockerps/top/stats等)的命令行的功能,但cAdvisor图形化的提供了一目了然的单节点多容器的资源监控功能。而且cAdvisor是免费的,cAdvisor作为一个很不错的工具,已经引起越来越多人的关注。
安装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实现了两个层次的监控:
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进入具体的容器监控页面,我这里进入weavescope容器监控页面,我们看到了容器内Processes、CPU、Memory、Network、Filesystem实时的变化情况。
可见cAdvisor非常的简单,而且很好的从主机和容器两个层面实现了资源的监控,但也存在如下的局限性:
1、只能监控单主机,如果想监控多主机及其上的容器,需要在每台主机上部署cAdvisor。即便是这样Google的Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上cAdvisor。
2、监控的资源是实时的,并不能反映一段时间内的变化趋势。这是因为cAdvisor并不储存数据,如果配合第三方工具,例如InfluxDB、Grafana就可以达到理想的效果。
网友评论