Docker容器监控是保障应用健康运行的关键环节,需从多维度进行系统性观测。以下是核心监控维度及详细说明:
CPU
docker stats
、cAdvisor
、Prometheus的node_exporter
container_cpu_usage_seconds_total
(Prometheus)内存
container_memory_usage_bytes
、container_memory_swap
RSS
(实际物理内存)与Cache
占用。磁盘I/O
docker stats --no-stream
(显示Block I/O
)、iostat
container_fs_reads_bytes_total
、container_fs_writes_bytes_total
网络
container_network_receive_bytes_total
、container_network_transmit_packets_dropped_total
运行状态
Up
(运行中)、Exited
(退出)、Restarting
(频繁重启需告警)docker ps -a --filter "status=exited"
重启次数
docker inspect --format='{{.RestartCount}}' <container>
启动时间
服务响应时间
Grafana
、New Relic
、Datadog APM
应用日志
ERROR
)ELK
、Fluentd
、Loki
JVM/运行时指标(如Java/Python应用)
容器密度
镜像漏洞
Trivy
、Clair
扫描镜像的CVE漏洞。Docker Daemon健康
dockerd
进程)、API响应时间。容器编排层(如Kubernetes)
场景 | 工具链示例 |
---|---|
基础监控 | cAdvisor + Prometheus + Grafana |
日志分析 | Fluentd + Elasticsearch + Kibana |
全链路APM | SkyWalking + OpenTelemetry |
商业解决方案 | Datadog、New Relic、Sysdig |
cpu.cfs_quota_us
(/sys/fs/cgroup/cpu/docker/
)。docker stats
和jmap
(Java应用)分析。docker container prune
。通过以上多维监控,可快速定位性能瓶颈(如CPU竞争)、资源泄漏或应用异常,结合告警规则(如Prometheus Alertmanager)实现主动运维。