监控容器:Prometheus+Grafana 监控 Docker 容器 CPU 使用率,并配置阈值告警
最终效果:实时监控容器 CPU 使用率,当超过阈值时自动触发多级告警通知,支持历史数据回溯分析。(示意图:数据采集 → Prometheus → Grafana → 告警通知)
·
监控 Docker 容器 CPU 使用率:Prometheus+Grafana 配置指南
1. 架构组件
- Prometheus:采集容器指标
- cAdvisor:收集 Docker 容器资源数据
- Node Exporter:采集主机级指标
- Grafana:可视化与告警
- Alertmanager:告警路由(可选)
2. 部署步骤
① 启动 cAdvisor(容器指标采集):
docker run -d \
--name=cadvisor \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker:/var/lib/docker:ro \
-p 8080:8080 \
google/cadvisor:latest
② 配置 Prometheus(prometheus.yml):
scrape_configs:
- job_name: "docker"
static_configs:
- targets: ["cadvisor:8080"] # cAdvisor 地址
- job_name: "node"
static_configs:
- targets: ["node-exporter:9100"] # Node Exporter 地址
③ Grafana 数据源配置:
- 登录 Grafana > Configuration > Data Sources
- 添加 Prometheus 数据源(URL:
http://prometheus:9090)
3. CPU 使用率计算
核心 PromQL 查询:
sum(rate(container_cpu_usage_seconds_total{container!=""}[1m])) by (container)
/
sum(container_spec_cpu_quota{container!=""}/container_spec_cpu_period{container!=""}) by (container)
* 100
该公式计算每个容器的 CPU 使用百分比,其中:
container_cpu_usage_seconds_total:容器 CPU 累计使用时间container_spec_cpu_quota:容器 CPU 配额container_spec_cpu_period:CPU 周期(通常为 100,000μs)
4. Grafana 仪表板配置
- 创建新仪表板 > Add panel
- 数据源选择 Prometheus
- 输入上述 PromQL 查询
- 设置图表类型:Stat 或 Time series
- 添加单位:
%(百分比)
5. 阈值告警配置
在 Grafana 面板中设置告警:
- 编辑面板 > Alert 选项卡
- 创建告警规则:
- Rule name: 容器 CPU 告警
- Condition:
WHEN max() OF query(A, 1m, now) IS ABOVE 80 - Duration:
5m(持续超过阈值时长)
- 通知渠道配置:
- 添加邮件/Slack/Webhook 等通知方式
- 设置告警消息模板:
{{ $labels.container }} CPU 使用率超过 80%! 当前值: {{ $value }}% 主机: {{ $labels.instance }}
6. 告警优化建议
- 动态阈值:使用
quantile_over_time(0.9, 7d)计算历史百分位数 - 分级告警:
- 警告:
> 80%持续 5 分钟 - 严重:
> 95%持续 2 分钟
- 警告:
- 告警抑制:避免重复告警(如容器重启时)
7. 验证流程
- 制造 CPU 负载:
docker run --rm -it progrium/stress --cpu 4 - 观察 Grafana 仪表板数据变化
- 触发阈值后检查告警通知
注意事项:
- 确保所有容器暴露
cgroups指标(Kubernetes 环境需配置 cAdvisor)- 对于 Swarm/K8s 集群,需部署
kube-state-metrics- 关键告警建议配置 ACK 机制 和 自动恢复检测
(示意图:数据采集 → Prometheus → Grafana → 告警通知)
最终效果:实时监控容器 CPU 使用率,当超过阈值时自动触发多级告警通知,支持历史数据回溯分析。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)