“ 本文开始前,先回顾下上一篇docker 入门,主要讲解如何用最佳实践来对容器内的日志进行抓取。本篇将来聊聊如何对容器进行监控。”
前言
一般地,容器监控就跟日志监控一样。要看的时候,你得有数据可以看。而对docker的监控大致有三种方案:
docker自带监控命令
Weave Scope
cAdvisor
下面让我们一起来探讨下这几种方案。
01
—
docker 自带监控命令
docker 自带了 ps,top,stats。
ps 会列出当前正在运行的容器,加参数 -a,包含已经停掉的容器
docker psCONTAINER ID IMAGE6a407c5e6d68 skywalking-ui:7.0.07553b8df8617 skywalking-oap-server:7.0.0-es766a7b3c3b42a elasticsearch:7.5.0
top 会显示容器中正在运行的进程
docker top uiPID USER TIME COMMAND2637 root 0:49 java
stats 会显示容器使用的系统资源
--实时展示全部容器信息docker statsCONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDSe4a17fcae937 k8s 0.29% 11.39MiB / 3.848GiB 0.29% 0B / 0B 0B / 0B 11--非实时展示全部容器信息docker stats --no-stream--展示特定容器信息docker stats ui
| CPU MEM | 当前使用的CPU,内存百分比 |
| MEM USAGE LIMIT | 当前使用的内存和最大可以使用的内存 |
| NET I/O | 网络IO |
| BLOCK I/O | 磁盘IO |
| PIDS | 创建的进程数或线程数 |
结合上面的几个命令来看,虽然功能强大,但显然没有实时的图形化界面来的方便和给力。
02
—
Weave Scope
Weave Scope 可对容器和主机做监控。
安装
curl -L git.io/scope -o usr/local/bin/scopechmod a+x usr/local/bin/scope
运行
scope launchd82980f97e167fe466c068490a9e4ef5edb64f4e65c07d15346a72faf4bc70aaScope probe startedWeave Scope is listening at the following URL(s):* http://127.0.0.1:4040/

容器
比如我点击查看下 heml-test1



监控主机

从图片我们可以发现,Weave Scope 对CPU,内存用高低水位图来展示。这也是比较贴心的地方了。点击中间的master


从图中我们可以看到,提供了主机的资源使用的实时情况。以及在主机上运行的进程和容器列表。 指标检索
可以通过指定的逻辑查询条件显示符合条件的容器。
03
—
cAdvisor
cAdvisor 可以对容器,主机做监控。
安装
docker run--volume=/:/rootfs:ro--volume=/var/run:/var/run:rw--volume=/sys:/sys:ro--volume=/var/lib/docker/:/var/lib/docker:ro--volume=/dev/disk/:/dev/disk:ro--publish=8080:8080--detach=true--name=cadvisorgoogle/cadvisor:latest

出来上述信息后,说明服务已安装并运行起来了,默认8080端口。

容器监控,以 helm-test1 为例






从截图来看,我们能清楚的看到CPU,内存,网络,文件系统的使用情况。
主机监控







写在最后
Weave Scope 功能强大,对于中小企业来说绝对够用了。但 cAdvisor 为啥还要在学习呢?它的功能甚至还不如Weave Scope,但其实这两者都缺乏告警功能。也就是说要想完整的实现监控报警一条龙,还必须在借助另外一个第三方系统才有可能实现。而 cAdvisor 比 Weave Scope 好的地方是它能够将自己的监控数据导出到第三方系统使用。比如说导给 Prometheus,在结合 Grafana 做进一步的数据展示。而事实上基于 Prometheus+Grafana+cAdvisor 的监控系统在业内已经非常成熟了。这也就是为什么我们还要在去学习 cAdvisor 的原因。下一篇将继续来聊下如何使用这一套业内的最佳实践来做监控。

如有收获,点个在看,诚挚感谢




