4. 故障恢复流程总览:从告警触发到故障关闭的完整生命周期

SLO 告警后的故障恢复不是一次随机的“救火”,而是一条可定义、可度量的自动化流水线。从告警触发到故障关闭,整个生命周期通常划分为 6 个阶段,每个阶段都有明确的输入、输出、决策点和自动化介入机会。理解这个总览,是后续编写 Runbook 和执行自动化的前提。

4.1 生命周期六阶段模型

下表列出了从告警触发到故障关闭的完整阶段、核心活动以及自动化覆盖程度。SRE 团队应优先对高频率、低认知成本的阶段(如告警确认、资源止损)实施全自动化。

阶段 名称 核心活动 自动化程度
1 告警触发与确认 监控系统发出 SLO 告警;值班人员确认告警并认领故障 高(自动认领、自动建单)
2 故障定级与分派 根据 SLO 燃烧速率、影响范围确定 P0/P1/P2;通知对应 On-Call 团队 中(自动定级、自动升级)
3 诊断与定位 收集指标、日志、链路追踪;执行预设诊断 Runbook 缩小根因范围 中(自动采集、半自动分析)
4 止损与恢复 执行回滚、扩缩容、流量切换、配置修复等操作,恢复 SLO 高(一键执行、自动审批)
5 验证与观测 确认 SLO 指标回归正常;持续观测 5-15 分钟无复发 高(自动验证、自动解除告警)
6 复盘与关闭 生成故障报告;更新 Runbook;关闭故障单 中(自动生成报告、自动关闭)

4.2 全生命周期流程图

下图展示了从告警触发到故障关闭的完整流程,包含关键决策点(如“是否自动止损?”)和回退路径。每个矩形节点代表一个可自动化的步骤,菱形节点代表需要人工或规则判断的决策。

故障恢复全生命周期流程图 ① 告警触发与确认 ② 故障定级与分派 自动诊断? (规则匹配) 是 ③ 自动诊断定位 否 ③ 人工诊断定位 自动止损? (风险等级) 是 ④ 自动止损恢复 否 ④ 人工止损恢复 ⑤ 验证与持续观测 SLO 恢复? (持续5min) 否 返回诊断 是 ⑥ 复盘与关闭

4.3 关键时间线指标(MTTx)

每个阶段的时间消耗直接决定了故障总时长(MTTR)。SRE 团队应围绕以下指标设定自动化目标:

  • MTTA(Mean Time to Acknowledge):从告警触发到值班人员确认认领。目标:< 2 分钟。自动化手段:自动认领、自动建群。
  • MTTI(Mean Time to Identify):从确认到定位根因。目标:< 5 分钟。自动化手段:预设诊断 Runbook、指标关联分析。
  • MTTR(Mean Time to Resolve):从定位到恢复 SLO。目标:< 10 分钟。自动化手段:一键回滚、自动扩缩容、流量切换。
  • MTTV(Mean Time to Verify):从恢复操作到确认 SLO 正常。目标:< 3 分钟。自动化手段:自动断言、告警静默解除。
关键原则: 自动化应优先作用于 MTTA 和 MTTR 这两个阶段,因为它们对总故障时长的影响最大。每减少 1 分钟 MTTA,相当于为后续诊断和恢复争取了 1 分钟。

4.4 自动化介入点与决策矩阵

并非所有故障都适合全自动处理。下表给出了不同场景下的自动化策略建议,帮助 Runbook 设计者决定“何时自动执行,何时人工介入”。

场景特征 示例 建议自动化策略
已知根因 + 已知恢复操作 CPU 飙高触发自动扩容 全自动:无需审批,直接执行
已知根因 + 高风险操作 数据库主从切换 半自动:自动生成方案,人工确认后执行
未知根因 + 紧急止损 流量突增导致 5xx 错误 自动止损:先回滚或切流,再并行诊断
未知根因 + 低风险 延迟轻微抖动 人工诊断:自动采集数据,人工分析根因

4.5 故障关闭条件

一个故障单只有在满足以下所有条件时才能被自动关闭:

  1. SLO 指标回归:错误预算燃烧率恢复为 0,且持续稳定超过预设窗口(通常为 5-15 分钟)。
  2. 告警已解除:所有关联告警已自动或手动解除,无残留告警。
  3. 故障报告已生成:系统自动汇总时间线、操作记录、指标变化,生成结构化报告。
  4. Runbook 已更新(可选):如果本次故障发现了新的恢复模式,自动触发 Runbook 更新流程。
实践建议: 在故障关闭前,增加一个“人工确认”步骤(尤其是 P0 故障),避免自动化误判导致故障单提前关闭而问题未彻底解决。对于 P1/P2 故障,可以完全自动化关闭。