深色模式
cAdvisor 容器监控
Docker/Kubernetes 里的容器资源怎么看?cAdvisor 是官方首选,把每个容器的指标暴露成 /metrics。
适用环境
- 已安装 Docker 的宿主机
- 已部署可抓取新 target 的 Prometheus
bash
docker version --format '{{.Server.Version}}'1
操作步骤
1. 以容器方式运行 cAdvisor
bash
docker run -d \
--name=cadvisor \
--privileged \
-p 8080:8080 \
-v /:/rootfs:ro \
-v /var/run:/var/run:ro \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
gcr.io/cadvisor/cadvisor:latest1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
若拉不到 gcr.io,可改用国内可访问的等价镜像仓库地址。
2. 验证原始指标
bash
curl -s http://localhost:8080/metrics | grep '^container_cpu_usage_seconds_total' | head1
3. 接入 Prometheus
yaml
- job_name: cadvisor
static_configs:
- targets: ['localhost:8080']1
2
3
2
3
bash
curl -X POST http://localhost:9090/-/reload1
验证
promql
# 按容器名看 CPU(核·秒)
sum by (container_name) (rate(container_cpu_usage_seconds_total[5m]))
# 按容器看内存
sum by (container_name) (container_memory_usage_bytes)1
2
3
4
2
3
4
常见坑
挂载路径缺失会少指标
/var/lib/docker 路径随存储驱动变化,缺失会导致磁盘/镜像指标为空。
容器停止后指标仍短暂存在
cAdvisor 会保留已退出容器一小段时间,查询时按 container_name!="" 过滤。