使用cAdvisor监控容器

本文介绍了一款易于使用的Docker容器监控工具-cAdvisor。它不仅提供了丰富的Web界面展示,如CPU使用率、内存使用率等关键指标,还支持REST API供远程调用。通过简单的Docker命令即可部署并使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一篇关于docker容器监控工具的比较:http://dockone.io/article/397
里面一共介绍了5种工具,但是除了收费的几款,cadvisor是带监控界面的、最易入门的docker容器监控工具了。

cadvisor在github上的地址为:https://github.com/google/cadvisor

运行方法
使用docker容器运行cadvisor的方法如下:

docker run                                    \
--volume=/:/rootfs:ro                         \
--volume=/var/run:/var/run:rw                 \
--volume=/sys:/sys:ro                         \
--volume=/var/lib/docker/:/var/lib/docker:ro  \
--publish=8080:8080                           \
--detach=true                                 \
--name=cadvisor                               \
google/cadvisor:latest

运行之后,便可通过http://:8080来访问web界面。可以看到CPU的使用率、内存使用率、网络吞吐量以及磁盘空间利用率,点击界面顶部/docker可以进入查看某个docker容器的详细信息。

其他配置项(CentOS, RHEL):

--privileged=true

设置为true之后,容器内的root才拥有真正的root权限,可以看到host上的设备,并且可以执行mount;否者容器内的root只是外部的一个普通用户权限。由于cadvisor需要通过socket访问docker守护进程,在CentOs和RHEL系统中需要这个这个选项。

--volume=/cgroup:/cgroup:ro 

对于CentOS和RHEL系统的某些版本(比如CentOS6),cgroup的层级挂在/cgroup目录,所以运行cadvisor时需要额外添加–volume=/cgroup:/cgroup:ro选项。

REST API
除了提供web界面之外,cadvisor还提供远程调用的REST API,详情可以参考如下文档:https://github.com/google/cadvisor/blob/master/docs/api.md
另外,github上还有提供了一个用Go语言实现的调用REST API的客户端:
https://github.com/google/cadvisor/tree/master/client

### 设置和使用cAdvisor监控Docker容器性能 #### 安装依赖项 为了确保cAdvisor能够正常工作,在安装之前需要确认已经安装了一些必要的组件。对于CentOS来说,通常只需要确保系统是最新的即可。 ```bash sudo yum update -y ``` #### 获取并运行cAdvisor 可以直接通过`docker pull`命令获取官方的cAdvistor镜像,并利用`docker run`来启动它。下面是一条完整的命令,该命令会下载最新版本的cAdvisor并将之作为守护进程运行[^1]: ```bash docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest ``` 这条命令做了几件事情: - 映射端口使得可以从浏览器访问Web界面,默认情况下是8080端口; - 使用分离模式(`--detach`)让容器后台持续运行; #### 访问cAdvisor Web界面 一旦上述操作完成之后,就可以打开网页浏览器输入服务器IP地址加端口号(通常是`:8080`)的方式进入cAdvisor提供的图形化管理界面上查看各个容器的状态了[^4]。 #### 配置持久化存储(可选) 如果希望保存更长时间的历史记录,则可以通过配置文件指定外部数据库如InfluxDB等来进行长期的数据积累与查询分析[^5]。 #### CPU限额设置 当创建新容器时还可以考虑为其分配特定比例CPU资源份额以实现更好的控制效果。例如,可以采用如下方式为某个应用指派更多的处理能力[^3]: ```bash docker run --cpu-shares 2048 my_image_name ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值