Prometheus与Grafana中CPU使用率分级告警配置求助
实现Prometheus+Grafana CPU使用率分级告警方案
一、Prometheus告警规则编写(核心解决区间查询问题)
Prometheus告警规则的expr要求返回瞬时向量(当前时刻的指标值),如果错误使用范围向量查询(比如加[5m]这类区间)会导致查询失败。你已经完成CPU使用率百分比计算,直接基于这个瞬时指标写判断逻辑即可。
假设你的CPU使用率指标名为cpu_usage_percent,编写如下告警规则(通常放在prometheus/rules/cpu-alerts.yaml):
groups: - name: cpu_usage_alerts rules: # 中等告警:CPU使用率在70%-80%之间 - alert: CPUUsageMedium expr: cpu_usage_percent >= 70 AND cpu_usage_percent < 80 for: 2m # 持续2分钟触发,避免瞬时抖动误报 labels: severity: medium annotations: summary: "CPU使用率中等告警 ({{ $labels.instance }})" description: "CPU使用率当前为 {{ $value }}%,处于70%-80%区间" # 严重告警:CPU使用率超过80% - alert: CPUUsageCritical expr: cpu_usage_percent >= 80 for: 1m # 严重告警可缩短持续检测时间 labels: severity: critical annotations: summary: "CPU使用率严重告警 ({{ $labels.instance }})" description: "CPU使用率当前为 {{ $value }}%,已超过80%"
二、Grafana侧配置
- 告警渠道区分:在Grafana的
Alerting -> Contact Points中,创建两个独立通知渠道(如企业微信机器人、邮件),分别对应medium和critical级别。 - 路由规则设置:在
Alerting -> Notification Policies中添加路由规则:- 匹配
labels.severity = critical的告警,路由到严重告警专属渠道 - 匹配
labels.severity = medium的告警,路由到中等告警专属渠道
- 匹配
- 可视化阈值(可选):在CPU使用率监控面板中添加阈值线,70%设为黄色、80%设为红色,直观展示使用率区间。
三、常见区间查询失败原因排查
如果之前尝试区间查询失败,大概率是以下问题:
- 错误将范围向量(如
cpu_usage[5m])直接用于告警规则expr,告警规则要求输入瞬时向量,需配合rate()/avg_over_time()等函数转换为瞬时值后再判断 - 原始指标类型不匹配(如counter类型未做rate转换),但你已经完成百分比计算,直接用最终的瞬时指标即可
- Prometheus未正确加载告警规则文件,可通过
http://<prometheus-ip>:9090/rules查看规则是否生效
内容的提问来源于stack exchange,提问作者Akash Kotkar
相关产品推荐
相关产品推荐

