6月2日 23:47
Docker 容器怎么监控?Prometheus + Grafana 和告警配置实战
Docker 监控分两层:容器级(CPU/内存/网络)和应用级(QPS/延迟/错误率)。容器级用 cAdvisor + Prometheus,应用级用代码埋点 + Prometheus。统一在 Grafana 看板和告警。
最快上手:docker stats
只适合临时查看,没有历史数据、没有告警、没有可视化。
Prometheus + cAdvisor:容器级监控
cAdvisor 采集容器的 CPU、内存、网络、磁盘 IO 指标,Prometheus 存储和查询,Grafana 可视化。
cAdvisor 暴露 /metrics 端点,Prometheus 定时拉取。Grafana 导入 Docker dashboard 模板(ID 893)即可看到容器资源看板。
关键监控指标
| 指标 | 含义 | 告警阈值 |
|---|---|---|
| container_cpu_usage_seconds_total | CPU 使用率 | > 80% 持续 5 分钟 |
| container_memory_usage_bytes | 内存使用 | > 90% 限制值 |
| container_network_receive_bytes_total | 网络接收 | 异常突增 |
| container_oom_events | OOM 次数 | > 0 立即告警 |
OOM 事件是最严重的——容器被杀意味着应用中断,必须立即处理。
告警配置
Prometheus Alertmanager 配置告警规则和通知渠道:
通知渠道支持邮件、Slack、钉钉、企业微信。
日志监控
监控 + 日志配合:告警触发后用 docker logs 查看对应容器的日志,定位问题。如果用了 Loki,直接在 Grafana 里查日志,不用跳到终端。