2. Runbook 基础概念

Runbook 是运维领域将“人脑经验”转化为“机器可执行剧本”的核心载体。在告警自愈场景中,Runbook 定义了从告警触发到恢复动作完成的全链路操作规范。理解其定义、组成要素与常见类型,是设计自愈触发链路的前提。

2.1 Runbook 的定义

Runbook(运行手册)是一份结构化的操作文档或可执行剧本,它详细描述了在特定运维事件(如告警、故障、变更)发生时,运维人员或自动化系统应遵循的步骤、判断逻辑与恢复动作。在 SRE 实践中,Runbook 不仅是知识沉淀的载体,更是告警自愈链路的“大脑”——它决定了“收到告警后,系统该做什么”。

核心定位: Runbook = 标准化操作流程 + 可编程决策逻辑 + 可执行动作脚本。它消除了运维人员对“个人经验”的依赖,使故障处理可重复、可审计、可自动化。

2.2 Runbook 的组成要素

一个完整的 Runbook 通常包含以下 7 个核心要素,它们共同构成了告警自愈触发链路的“剧本骨架”:

要素 说明 告警自愈场景示例
触发条件 定义 Runbook 被调用的前置条件,通常与告警规则绑定 CPU 使用率 > 90% 持续 5 分钟
输入参数 从告警事件中提取的上下文变量,供后续步骤使用 ${host_ip}, ${alert_severity}, ${metric_value}
决策逻辑 条件判断、分支选择、循环控制等流程控制语句 IF severity == 'critical' THEN 执行重启 ELSE 执行扩容
操作步骤 有序的动作列表,可以是手动指令或自动化脚本 Step1: SSH 登录 → Step2: 执行诊断脚本 → Step3: 重启服务
验证检查 执行操作后,确认故障是否恢复的检查点 检查 CPU 是否降至 70% 以下,且服务端口正常
回滚策略 当操作失败或引发副作用时的恢复方案 重启失败则触发告警升级,通知 SRE 人工介入
输出记录 执行日志、状态变更、指标快照等审计信息 记录执行时间、操作人(或系统)、执行结果、变更的配置项
设计要点: 在告警自愈场景中,输入参数和验证检查是容易被忽略但至关重要的要素。缺少参数传递会导致脚本无法适配不同主机;缺少验证检查会导致“假恢复”——操作执行了但故障未解决。

2.3 Runbook 的常见类型

根据自动化程度和执行方式,Runbook 可分为以下三种常见类型。在告警自愈触发链路设计中,通常需要混合使用多种类型来覆盖不同场景。

  • 手动 Runbook(Manual Runbook):以文档形式存在,供运维人员按步骤手动执行。适用于高危操作(如数据库主从切换)或无法完全自动化的场景。在自愈链路中通常作为“兜底方案”或“人工审批节点”。
  • 半自动化 Runbook(Semi-automated Runbook):部分步骤由系统自动执行,关键决策点需要人工确认。例如:系统自动诊断并生成修复建议,由运维人员点击“确认”后执行。适用于需要人工判断风险的场景。
  • 全自动化 Runbook(Fully-automated Runbook):从触发到恢复完全由系统自动完成,无需人工干预。这是告警自愈链路的理想形态,适用于确定性高、风险可控的故障场景(如进程重启、缓存清理、自动扩容)。
避坑提示: 不要盲目追求全自动化。对于变更类操作(如修改配置、重启数据库),建议先以“半自动化”形式运行一段时间,积累足够的执行日志和成功率数据后,再逐步过渡到全自动化。直接上线全自动化 Runbook 可能导致“雪崩式误操作”。
Runbook 组成要素与执行流程 Runbook 组成要素与执行流程 ① 触发条件 ② 输入参数 ③ 决策逻辑 条件 A 手动操作 条件 B 自动操作 ④ 验证检查 ⑤ 回滚策略 ⑥ 输出记录 三种 Runbook 类型对比 三种 Runbook 类型对比 📄 手动 Runbook • 文档形式,人工执行 • 适合高危/复杂操作 • 依赖人员经验 • 执行速度:慢 • 风险控制:高 • 适用:数据库切换 ⚙️ 半自动化 Runbook • 系统诊断 + 人工确认 • 关键节点需审批 • 积累执行日志 • 执行速度:中 • 风险控制:中 • 适用:配置变更 🤖 全自动化 Runbook • 触发→恢复全自动 • 无需人工干预 • 确定性高 • 执行速度:快 • 风险控制:低 • 适用:进程重启 建议演进路径:手动 → 半自动化 → 全自动化

2.4 小结

Runbook 是告警自愈触发链路的“剧本核心”。理解其定义(标准化操作流程 + 可执行剧本)、7 大组成要素(触发条件、输入参数、决策逻辑、操作步骤、验证检查、回滚策略、输出记录)以及三种常见类型(手动、半自动化、全自动化),是后续设计自愈链路的基础。在实际落地中,建议从半自动化 Runbook 起步,逐步积累信心与数据,再向全自动化演进。