cAdvisor 使用体验:Docker容器监控神器

天天

发布于292天前
龙猫也是猫
## cAdvisor 是什么?

cAdvisor(Container Advisor)是 Google 开源的一个容器监控工具,说白了就是个"体检医生",专门负责检查你的容器们是不是健康,吃了多少内存,CPU 跑得怎么样。

#### 功能特点:
- **零配置启动**:基本上拉个镜像就能用,不需要复杂的配置文件
- **实时监控**:不是那种过几分钟才更新一次的垃圾,是真正的实时
- **Web 界面**:有个还算好看的网页界面,点点鼠标就能看数据
- **资源占用小**:监控工具本身不会吃太多资源
- **支持多种导出**:可以把数据喂给 Prometheus、InfluxDB 等其他工具



https://appstore.lazycat.cloud/#/shop/detail/wcloud.gblw.app.cadvisor


## 快速上手

应用安装后,打开主页面,它就像一个概览仪表盘,把当前服务器的资源使用情况和所有正在运行的容器都列出来了。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/68c4a76a-a1e8-4d57-80b1-5403c7940658.png "image.png")

/ (root) 这个是整个服务器的全局概览。
Docker Containers 和 Podman Containers
这是 cAdvisor 最核心的功能!它会自动检测你服务器上正在运行的容器引擎。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/7ce67b6f-6a68-4a77-a68d-2a49ef8d16b1.png "image.png")
Docker Containers:如果你点击这个链接,它会列出所有由 Docker 引擎启动的容器。你可以看到每个容器的 ID、名字,以及它们正在使用的资源

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/dc419c07-92d6-4cb7-9e71-d60859844071.png "image.png")

Podman Containers:如果你用的是 Podman 而不是 Docker,cAdvisor 也能识别出来。点击这个链接,你就能看到 Podman 启动的所有容器。

点击任何一个容器,你就能进入到那个容器的专属监控页面,看到它详细的 CPU、内存、网络、磁盘等资源使用图表。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/626b97d8-4da9-4909-ac26-5b41fa0ac6f6.png "image.png")

Subcontainers
这个部分稍微复杂一点,但你可以把它理解为更细粒度的资源分组。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/5996b6b6-2f82-447f-af9c-f6918fc066e6.png "image.png")
在 Linux 系统里,资源管理是通过 cgroup (Control Group) 来实现的。cAdvisor 把这些 cgroup 里的资源分组也展示出来了。

/init.scope、/zcapp.slice、/sys_docker.slice 等等,这些都是系统根据不同的服务和进程自动创建的 cgroup。

sys_docker.slice 这个比较常见,它通常代表了 Docker 服务本身和它管理的所有容器。

对普通用户来说,你可能不需要经常关注这个部分。

它主要用于更底层的资源分析和故障排查。如果你发现某个容器有问题,但从容器级别看不出端倪,可以来这里看看它所在的 cgroup 有没有异常。

solation
这个部分展示的是服务器的硬件资源隔离情况。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/87d21b55-62ab-4cf0-b96f-f948175d1fb0.png "image.png")
CPU:Allowed Cores 后面列出的 0 1 2 3 4 5 6 7 表示这个服务器总共有 8 个 CPU 核心(编号从 0 到 7),并且所有的核心都可供使用。

Memory:这里会显示服务器的总内存大小。

![image.png](https://dl.playground.lazycat.cloud/guidelines/496/46daa733-bd97-4b4d-b5ba-42c0a7305489.png "image.png")
纵坐标(Cores):单位是“核心数”。如果 CPU 使用量是 1.0,就意味着它正在消耗一个完整核心的计算资源。如果是 2.0,就是两个核心。

横坐标:是时间轴,显示了 CPU 使用量随时间的变化。

看图中的曲线,它在 1.0 到 2.0 之间上下波动,说明这个容器一直在繁忙工作,平均使用了约 1.5 个核心的计算资源。这个数据非常直观,能让你一眼看出你的应用是不是很“吃”CPU。


![image.png](https://dl.playground.lazycat.cloud/guidelines/496/79aaa0b8-7a2f-48db-ad33-66ed7a249757.png "image.png")

蓝色曲线 (Total):

这条线代表了总的内存使用量。它包含了容器(或系统)使用的所有内存,包括应用程序直接使用的、缓存的、以及其他被系统占用的部分。

在图上,蓝色曲线一开始在 13,000 兆字节左右,然后突然降到了 12,400 兆字节左右,之后就保持平稳了。

红色曲线 (Hot):

这条线代表了**“热”内存使用量**,也就是应用程序真正正在使用的、活跃的内存。
在 11:42:20 AM 左右,两条曲线都出现了一个明显的下降。这通常意味着应用程序在这个时间点释放了大量的内存。


## 总结

cAdvisor 确实是个好东西,特别是对于那些想要简单快速监控 Docker 容器的同学。

评论

0

暂无评论

说点什么呢~
收藏
0
0
0