Docker
Cloud Insight 支持监控 Docker 容器情况,不仅监控容器使用 cpu、network、io、disk 等做通用指标,还因为 Doker 通过 cgroup 来做资源限制,Agent 通过在宿主机本身查看对应容器的 cgroup stats 来监控容器的信息,状态等。
通过配置文件安装和直接一键安装等区别是:直接一键安装会生成一个 Cloud Insight 容器,所有的配置文件会在一个容器内,其它监控到的数据是相同的。
性能指标
Cloud Insight 采集 Docker 以下性能指标:
指标 | 单位 | 具体含义 |
---|---|---|
docker.container.size_rootfs | bytes | 容器中所有文件的总大小 |
docker.container.size_rw | bytes | 容器中被正在运行的进程创建或更改的所有文件的总大小 |
docker.containers.running | 这个主机上正在运行的容器数量 | |
docker.containers.stopped | 这个主机上已停止的容器数量 | |
docker.cpu.system | fractions | CPU 中代表此容器的进程执行系统调用(executing system calls)的时间占比 |
docker.cpu.user | fractions | CPU 直接控制此容器的进程的时间分数(fraction) |
docker.image.size | bytes | 磁盘上镜像的所有图层(layers)的大小 |
docker.image.virtual_size | bytes | 磁盘上镜像的所有图层(layers)的大小 |
docker.images.available | 顶级(top-level)镜像的数量 | |
docker.images.intermediate | 中间镜像的数量,它们是构成其他镜像的中间图层 | |
docker.io.read_bytes | bytes/second | 容器上的进程每秒从磁盘读取的字节数 |
docker.io.write_bytes | bytes/second | 容器上的进程每秒向磁盘写入的字节数 |
docker.mem.cache | bytes | 正用于缓存磁盘数据的存储器的量 (e.g. 可以精确地与块设备上的块相关联的存储器内容) |
docker.mem.in_use | fractions | 已使用内存占可用内存的比例 |
docker.mem.limit | bytes | 容器的内存限制(如果设置) |
docker.mem.rss | samples/second | 除缓存以外的内存使用量,用于堆栈,堆等 |
docker.mem.swap | bytes | 容器当前已使用的交换(swap)量 |
docker.mem.sw_in_use | fractions | 已使用的 swap + memory 与可使用的 swap + memory 的比例 |
docker.mem.sw_limit | bytes | 容器的 swap + memory 限制 |
docker.net.bytes_rcvd | bytes/second | 每秒从网络接收的字节数 |
docker.net.bytes_sent | bytes/second | 每秒向网络发送的字节数 |
具体参数含义参考 Docker Runtime metrics
配置 Docker 监控
在 Docker 组中引入 Agent
首先确保 Docker 已正常运行在服务器上,并引入 Agent 至 Docker 组中。
usermod -a -G docker CiAgent
编辑配置文件
编辑配置文件 conf.d/docker_daemon.yaml,使 Cloud Insight Agent 可以与 Docker 通信。
init_config:
instances:
- url: "unix://var/run/docker.sock"
重启 Agent
重启 Cloud Insight Agent,使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。
Checks
======
[...]
docker_daemon
-------------
- instance #0 [OK]
- Collected 8 metrics & 0 events
有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作。
默认标签
Cloud Insight 采集 Docker 以下默认主机标签:
标签种类 | 标签含义 |
---|---|
container_name | 容器的名称(例如 "boring_euclid") |
image_name | 镜像(image)的名称(例如 "nginx") |
image_tag | 镜像(image)的标签(例如 "latest") |
docker_image | 镜像(image)名的全称(例如 "nginx:latest") |
常见问题
- Unable to connect to socket. CiAgent user must be part of the 'docker' group。
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。