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 全生命周期流程图
下图展示了从告警触发到故障关闭的完整流程,包含关键决策点(如“是否自动止损?”)和回退路径。每个矩形节点代表一个可自动化的步骤,菱形节点代表需要人工或规则判断的决策。
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 故障关闭条件
一个故障单只有在满足以下所有条件时才能被自动关闭:
- SLO 指标回归:错误预算燃烧率恢复为 0,且持续稳定超过预设窗口(通常为 5-15 分钟)。
- 告警已解除:所有关联告警已自动或手动解除,无残留告警。
- 故障报告已生成:系统自动汇总时间线、操作记录、指标变化,生成结构化报告。
- Runbook 已更新(可选):如果本次故障发现了新的恢复模式,自动触发 Runbook 更新流程。
实践建议: 在故障关闭前,增加一个“人工确认”步骤(尤其是 P0 故障),避免自动化误判导致故障单提前关闭而问题未彻底解决。对于 P1/P2 故障,可以完全自动化关闭。