2. Alertmanager 基础回顾
在深入事故阈值复测之前,必须重新理解 Alertmanager 的核心运行机制。本节从架构、告警生命周期、分组/抑制/静默三个维度建立共识,确保后续阈值调整与复测策略建立在正确的系统认知之上。
2.1 Alertmanager 架构
Alertmanager 是 Prometheus 生态中负责告警路由、去重、分组与通知的独立组件。其架构可抽象为三个核心模块:接收层、路由与处理层、通知层。
架构要点: Alertmanager 不负责告警规则评估,只负责处理 Prometheus 推送过来的已触发告警。评估逻辑在 Prometheus Server 侧完成。
2.2 告警生命周期
一个告警从产生到关闭经历多个状态转换。理解生命周期是判断阈值是否合理、是否需要复测的前提。
| 状态 | 含义 | 阈值复测关注点 |
|---|---|---|
| Pending | 告警规则已触发,但未满足 for 持续时间 | for 时长是否过短导致误报?是否过长导致延迟? |
| Firing | 告警条件持续满足,已发送到 Alertmanager | 阈值是否过于敏感?是否在正常波动范围内? |
| Resolved | 告警条件不再满足,自动恢复 | 恢复阈值是否与触发阈值有合理回差? |
| Silenced | 被静默规则抑制,不发送通知 | 静默是否掩盖了真实问题?复测期间是否误用静默? |
| Suppressed | 被抑制规则抑制,不发送通知 | 抑制规则是否过度?是否导致关键告警丢失? |
复测提示: 阈值复测时,应重点观察告警从 Pending 到 Firing 的转换时间,以及 Resolved 后是否立即再次触发(抖动)。这两个指标直接反映阈值设置的合理性。
2.3 分组机制
分组(Grouping)将相似告警合并为一条通知,避免告警风暴。分组基于 group_by 标签配置。
# alertmanager.yml 分组配置示例
route:
group_by: ['severity', 'cluster']
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
receiver: 'ops-team'
| 参数 | 默认值 | 作用 | 阈值复测影响 |
|---|---|---|---|
group_wait |
30s | 等待同一组告警到达的缓冲时间 | 过短可能导致分组不完整,过长延迟通知 |
group_interval |
5m | 同一组告警的发送间隔 | 阈值复测期间建议缩短,便于观察 |
repeat_interval |
4h | 已发送告警的重复通知间隔 | 阈值复测期间可临时设为 10m 以加速验证 |
2.4 抑制机制
抑制(Inhibition)用于在高级别告警触发时,自动抑制低级别同类告警。典型场景:节点宕机时抑制该节点上的所有服务告警。
# 抑制规则示例
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['cluster', 'instance']
阈值复测风险: 抑制规则可能导致阈值调整后的告警被错误抑制,复测人员无法收到预期通知。建议在复测期间暂时禁用或放宽抑制规则,待验证通过后再恢复。
2.5 静默机制
静默(Silence)是运维人员手动设置的告警屏蔽规则,基于标签匹配。静默有到期时间,到期后自动失效。
| 静默类型 | 设置方式 | 复测场景使用建议 |
|---|---|---|
| 一次性静默 | Alertmanager UI / API | 用于已知维护窗口,复测期间应避免使用 |
| 定期静默 | Silence 配置文件 | 复测前检查是否有定期静默覆盖了被测告警 |
| 过期静默 | 自动过期 | 过期静默不会影响告警,但建议清理避免混淆 |
2.6 阈值复测与三大机制的关系
分组、抑制、静默直接影响阈值复测的观察结果。以下表格总结了复测时需检查的关键点:
| 机制 | 复测前检查项 | 复测中观察项 | 复测后恢复项 |
|---|---|---|---|
| 分组 | 确认 group_wait 是否过短 | 同一组告警是否合并正确 | 恢复 group_interval 和 repeat_interval 原值 |
| 抑制 | 检查是否有抑制规则覆盖被测告警 | 高级别告警触发时低级别是否被抑制 | 恢复抑制规则配置 |
| 静默 | 检查是否有活跃静默匹配被测告警 | 静默到期后告警是否正常触发 | 清理临时静默 |
最佳实践: 在阈值复测开始前,先通过 Alertmanager API 查询当前活跃的静默和抑制规则,确保被测告警路径畅通。复测完成后,恢复所有临时修改的配置参数。