Prometheus 05-01: 告警规则与Alertmanager配置详解
Prometheus作为云原生监控系统的核心组件,其告警功能通过告警规则(Alerting Rules)和Alertmanager协同实现。本文将深入解析告警规则的编写方法、Alertmanager的配置逻辑,并提供可落地的代码示例。
告警规则(Alerting Rules)配置
告警规则用于定义触发告警的条件,通常以YAML格式存储在Prometheus服务器的规则文件中。以下是一个典型的告警规则示例:
groups:
- name: example
rules:
- alert: HighRequestLatency
expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
for: 10m
labels:
severity: warning
annotations:
summary: "High request latency on {{ $labels.instance }}"
description: "{{ $labels.job }} has a 5m average latency of {{ $value }} seconds."
alert:告警名称,需全局唯一。expr:PromQL表达式,结果为布尔值,true时触发告警。for:持续满足条件的时间阈值,避免瞬时波动误报。labels:附加标签,用于告警路由和分类。annotations:告警详情模板,支持变量插值(如{{ $labels.instance }})。
告警规则最佳实践
1. 避免过度告警
通过for字段设置合理的持续时间阈值,例如CPU使用率持续5分钟超过90%才触发告警:
expr: avg(rate(container_cpu_usage_seconds_total[1m])) by (instance) > 0.9
for: 5m
2. 使用多级严重性标签
通过severity标签区分告警级别:
labels:
severity: "critical" # 可选:warning/critical
**3. 动态
8541

被折叠的 条评论
为什么被折叠?



