4. 告警路由与通知策略:基于服务树的路由、通知渠道、升级策略与静默期

告警路由与通知策略是 On-Call 响应体系的“神经传导系统”。其核心目标是将正确的事故信息,在正确的时间,通过正确的渠道,送达正确的人。本章聚焦于基于服务树的精准路由、多渠道通知编排、升级策略与静默期控制,确保告警不丢失、不轰炸、不错过。

4.1 基于服务树的路由机制

服务树(Service Tree)是组织架构与微服务拓扑的映射关系。告警路由基于服务树节点,实现从“告警产生”到“责任团队”的精准匹配。

核心原则: 告警携带服务树路径(如 /prod/ecommerce/payment/gateway),路由引擎根据路径匹配 On-Call 轮值表,而非人工配置 IP 或主机名。

4.1.1 服务树节点与路由规则

层级 示例节点 路由目标 匹配优先级
L1 业务域 /prod/ecommerce 业务域 SRE 负责人 低(兜底)
L2 服务组 /prod/ecommerce/payment 支付组 On-Call 轮值 中
L3 微服务 /prod/ecommerce/payment/gateway 网关服务 On-Call 轮值 高(精确匹配)
L4 实例/集群 /prod/ecommerce/payment/gateway/cluster-a 集群 A 值班人 最高
最佳实践: 路由规则采用“最长前缀匹配”策略。当告警携带 /prod/ecommerce/payment/gateway 时,优先匹配 L3 节点;若 L3 无值班人,则逐级向上回溯至 L2 或 L1。

4.1.2 服务树路由流程图

基于服务树的告警路由流程 告警事件到达 解析告警携带的服务树路径 最长前缀匹配 匹配成功 → 路由至值班人 匹配失败 → 回溯父节点 父节点有值班人? 是 → 路由至父节点值班人 无匹配 → 升级至 SRE 经理

4.2 通知渠道与编排策略

不同严重级别的告警需要匹配不同的通知渠道。渠道的选择需权衡实时性、打扰成本和信息丰富度。

4.2.1 渠道特性对比

渠道 实时性 打扰程度 信息容量 适用场景
电话(语音) 极高(秒级) 极高 低(仅摘要) P0/P1 严重事故
短信 高(秒级) 高 中(关键指标) P1/P2 高优先级
IM(钉钉/企微/Slack) 中(秒~分钟) 中 高(上下文+图表) P2/P3 日常告警
邮件 低(分钟级) 低 极高(完整报告) P3/P4 通知、日报

4.2.2 渠道编排策略

推荐采用分层递进式通知编排,避免单一渠道失效导致告警遗漏。

  1. 第一层(即时通知): IM 群机器人推送告警详情,包含服务树路径、当前值、阈值、告警时间。
  2. 第二层(确认催促): 若 3 分钟内无人确认,触发短信通知值班人。
  3. 第三层(升级通知): 若 5 分钟内仍无人确认,触发电话语音呼叫,并自动拉起事故响应群。
  4. 第四层(归档通知): 事故解决后,邮件发送完整的事故报告。
避坑提示: 避免所有渠道同时触发。多渠道并行轰炸会导致值班人信息过载,反而错过关键告警。建议采用“串行+超时升级”模式。

4.3 升级策略

升级策略(Escalation Policy)定义了当值班人未及时响应时,告警如何自动流转至更高级别或备选人员。

4.3.1 升级策略配置要素

参数 说明 推荐值
确认超时 从告警发出到值班人确认的最大等待时间 P0: 2min / P1: 5min / P2: 15min
升级层级 逐级升级的层数(L1→L2→L3→经理) 3~4 层
升级间隔 每级之间的等待时间 P0: 2min / P1: 5min / P2: 10min
升级目标 下一级值班人或备选组 按服务树父节点或 SRE 经理组

4.3.2 升级策略流程图

告警升级策略执行流程 告警到达 L1 值班人 等待确认(超时 T1) 已确认? 是 → 事故处理流程 否 → 升级至 L2 值班人 L2 等待确认(超时 T2) 确认? 是 → 事故处理 否 → 升级至 SRE 经理

4.4 静默期与抑制策略

静默期(Silence / Mute)用于在特定时间段或条件下,临时阻止告警通知,避免非工作时间或已知维护窗口内的无效打扰。

4.4.1 静默期类型

类型 定义 示例
定时静默 按固定时间窗口静默(如夜间、周末) 每日 22:00~08:00 静默 P3 告警
维护窗口静默 配合变更窗口,在变更期间静默已知告警 每周二 02:00~04:00 数据库变更窗口
告警依赖静默 当上游服务已告警时,抑制下游衍生告警 网关 5xx 告警时,静默下游服务超时告警
手动静默 值班人手动对特定告警或服务树节点静默 已知问题未修复前,手动静默该告警 24h

4.4.2 静默期配置原则

  • 白名单优先: P0/P1 告警默认不受静默期影响,除非显式配置。
  • 静默溯源: 每次静默操作必须记录操作人、原因、到期时间,并关联事故单。
  • 自动恢复: 静默期到期后自动恢复通知,避免“永久静默”导致告警黑洞。
  • 审计日志: 所有静默操作写入审计日志,供事后复盘。
工程实践: 在变更窗口期间,建议使用“维护窗口静默”配合“变更标签”。当变更系统自动标记服务树节点为“变更中”时,告警引擎自动对该节点下的已知告警进行静默,同时保留未知告警的实时通知能力。

4.5 告警路由与通知策略验证清单

在事故响应变更窗口测试中,需验证以下关键点:

验证项 验证方法 预期结果
服务树路由准确性 模拟不同服务树路径的告警,检查路由目标 告警精确到达对应值班人
渠道编排顺序 模拟告警不确认场景,检查渠道触发顺序 IM→短信→电话 按超时时间递进
升级策略超时 模拟 L1 不确认,检查 L2 是否在 T1+T2 后收到 升级时间符合配置
静默期生效 在静默窗口内触发告警,检查是否发送通知 P2/P3 告警被抑制,P0 告警正常通知
静默期自动恢复 等待静默期到期后触发告警 告警通知恢复正常
关键提醒: 告警路由与通知策略的测试不能只在预发环境执行。必须定期在生产环境进行“混沌工程式”的告警注入演练,验证真实链路的可靠性。静默期配置错误是导致“告警黑洞”的首要原因,务必纳入变更窗口的自动化回归测试。