1. Cadvisor简介
Cadvisor是谷歌用来分析运行中的 Docker 容器的资源占用以及性能特性的工具。Cadvisor作为一个运行中的守护进程,用来收集、聚合、处理和导出运行容器相关的信息,每个容器保持独立的参数、历史资源使用情况和完整的资源使用数据。当前支持lmctfy 容器和Docker 容器。
Cadvisor使用Go语言开发,利用Linux的cgroups获取容器的资源使用信息,并将信息通过web界面以可视化的方式呈现给用户。
2. Cadvisor安装
本文假设读者已经安装并配置好了Docker的运行环境,Docker daemon已经运行。如果要在Suse上安装Docker,请参考文章Docker学习系列1-Suse安装Docker来设置Docker运行环境。如果是其他Linux系统,请参考Docker官方文档进行安装配置。
第一步,在Docker Hub上搜索Cadvisor镜像
#docker search cadvisor
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
google/cadvisor Analyzes resource usage and performance ch... 108
第二步,从Docker Hub pull需要的镜像到本地宿主机
#docker pull google/cadvisor
3. 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 --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor
该命令从google/cadvisor镜像运行容器cadvisor,各个参数含义:
run:Docker使用run子命令从指定的镜像运行一个容器
--volume:指定容器挂载的文件系统
--pulish:将容器内端口映射到宿主机端口,格式为 宿主机端口:容器内端口,这里使用的是8080端口,如果该端口被占用,修改为未被占用的端口即可
--detach:指定容器在后台运行
--name:命名要运行的容器为cadvisor
google/cadvisor:运行的镜像
4. Cadvisor使用
步骤3的docker run命令执行成功后,控制台会打印输出容器的ID。用户可以通过远程的浏览器访问cadvisor的web监控页面。打开浏览器,输入:http://Host_IP:8080,查看Cadvisor主页。
宿主机的CPU和内存信息
宿主机的CPU使用情况
宿主机内存使用情况
宿主机网络流量统计
文件系统监控
点击主页上方的Docker Containers,可以查看该宿主机上正在运行的所有容器
点击对应的容器,可以查看该容器的资源使用情况。
5. 总结
Cadvisor部署方便,使用简单,是Docker容器监控的原生态工具。但Cadvisor只能进行单主机的Docker容器监控,而且,其数据是存储在内存中的实时数据,无法保留历史数据。接下来几篇文章会介绍Cadvisor与其他工具相结合,构建一个完整可用的Docker监控系统。敬请期待!