需要监控 Docker 的哪些指标?
1)Service:Docker 服务的自生运行状态,资源占用,负载情况
2)Container:容器的 CPU MEM DISK NETWORK
Service
WIP
Container
使用 Docker 自身提供的 Prometheus Metrices 参数
Collect Docker metrics with Prometheus | Docker Documentation
/etc/docker/daemon.json
{ "metrics-addr" : "127.0.0.1:9323", "experimental" : true }
该方法能够收集服务、容器的总体运行情况,但是无法获取特定容器信息。
使用 cAdvisor 容器收集容器信息
google/cadvisor: Analyzes resource usage and performance characteristics of running containers.
cadvisor/prometheus.md at master · google/cadvisor
docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ --privileged \ --device=/dev/kmsg \ gcr.io/google-containers/cadvisor:latest
能够收集更多指标,包括每个容器的指标,也包含每个容器的磁盘空间使用(container_fs_*)
但是不包含”挂载到容器的磁盘的“空间的使用情况(我们的特殊场景、特殊需求)
cdewitt/docker-stats-exporter – Docker Hub
https://hub.docker.com/r/cdewitt/docker-stats-exporter
该镜像使用 Docker stats API 将来提供 Prometheus metrics 指标,作为 Prometheus Metrics Exporter 存在。
我们可以基于该项目进行一些改造,以满足我们自己的需要,它基于 Flask 框架。
docker stats
Docker Engine API v1.40 Reference
Can cURL send requests to sockets? – Super User
Runtime metrics | Docker Documentation
docker stats | Docker Documentation