docker容器监控——cAdvisor

docker容器监控——cAdvisor

当我们想知道docker容器的运行状态时,我们通常会使用docker stats命令,进行查看,但每次查看都要进入服务器(当然其实还可以通过docker API,这里就不展开了),而且没有可视化
然后发现一个工具cAdvisor,虽然功能相对其他监控没有那么强大,但平时查看容器运行状态也够用了,而且镜像比较小,才70M而已,于是乎~尝试下

1 拉取最新版cAdvisor镜像

docker pull google/cadvisor:latest

2 启动cAdvisor

我把端口绑到了8088

docker run -v /:/rootfs:ro \ 
-v /var/run:/var/run:rw \ 
-v /sys:/sys:ro \ 
-v /var/lib/docker/:/var/lib/docker:ro \ 
-p 8088:8080 \ 
--detach=true \ 
--privileged=true \ 
--name=cadvisor \ 
-m 100m \ 
--restart=always google/cadvisor:latest

3 解决cAdvisor无法启动的问题

浏览器访问:
ip地址:8088看看
发现访问不了
查看下docker的日志

docker logs -f cadvisor

附docker logs相关选项说明

Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如40m(即40分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如40m(即40分钟)

结果发现日志报错

Failed to start container manager: inotify_add_watch
/sys/fs/cgroup/cpuacct,cpu: no such file or directory

找了下,找到解决方法

sudo mount -o remount,rw '/sys/fs/cgroup'
sudo ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu

rm容器,重新启动,再去浏览器看看,可以成功访问了

在这里插入图片描述

可以在里面看到容器的运行情况

在这里插入图片描述

4 后记

cAdvisor挺方便的,但是对网络的要求还是比较高的(对于自己的云服务器的小水管来说...),所以会感到响应比较慢,而且进云服务器的监控页面看,会发现带宽都给用满了=。=因为cAdvisor会一直传输数据给客户端,所以对于小带宽来说还是没事别一直开着监控页面,不然其他服务没法用了=。=

在这里插入图片描述