1. 课程导论:什么是 Runbook、自愈剧本与自动化告警响应

1.1 核心概念定义

在运维自动化体系中,Runbook、自愈剧本与自动化告警响应是三个层层递进的核心能力。它们共同构成了现代 SRE 团队应对故障的标准化、自动化操作基础。

概念 定义 核心特征 典型输出
Runbook 标准操作程序文档,记录特定运维场景的详细步骤、命令、检查项与回滚方案 人工执行、文档化、可审计、版本控制 Markdown 文档、Wiki 页面、Confluence 空间
自愈剧本 将 Runbook 中的判断逻辑与操作步骤转化为可编程、可自动执行的剧本 自动化执行、条件分支、幂等性、可重入 Ansible Playbook、Python 脚本、St2 工作流
自动化告警响应 告警触发后,系统自动匹配自愈剧本并执行,实现故障发现到恢复的全链路闭环 事件驱动、低延迟、联动编排、闭环反馈 告警→剧本→执行→验证→通知
关键认知: Runbook 是“知道怎么做”,自愈剧本是“自动去做”,自动化告警响应是“在正确的时间自动做正确的事”。三者缺一不可。

1.2 从 Runbook 到自愈剧本的演进路径

传统运维团队通常从手工 Runbook 起步,逐步向自动化演进。下图展示了这一演进路径中的关键阶段与能力跃迁。

Runbook → 自愈剧本 → 自动化告警响应 演进路径 阶段 1 手工 Runbook 文档化 + 人工执行 阶段 2 半自动化剧本 脚本化 + 人工触发 阶段 3 全自动自愈 事件驱动 + 闭环 各阶段能力维度对比 执行方式 响应速度 可重复性 审计追溯 故障恢复率 人工操作 5-30 min 低(依赖人) 手动记录 < 60% 半自动 1-5 min 中(脚本) 日志 + 审计 60-85% 全自动 < 30 sec 高(幂等) 全链路追溯 > 95%
实践建议: 不要试图一步到位。建议从高频、低风险的告警场景开始,先编写 Runbook,再逐步脚本化,最后接入自动化引擎。每完成一个场景的闭环,再扩展下一个。

1.3 自动化告警响应的核心流程

一个完整的自动化告警响应流程包含以下 6 个关键环节,形成从告警产生到故障恢复的闭环。

  1. 告警接收与标准化 — 从 Prometheus、Zabbix、CloudWatch 等监控系统接收告警,统一格式并去重。
  2. 告警分类与定级 — 根据告警类型、影响范围、紧急程度自动匹配响应策略。
  3. 剧本匹配与参数注入 — 从剧本库中查找匹配的自愈剧本,并将告警上下文注入为执行参数。
  4. 剧本执行与状态跟踪 — 执行剧本中的自动化操作,实时记录每一步的执行状态与输出。
  5. 执行结果验证 — 自动检查故障是否恢复,必要时触发二次执行或升级为人工介入。
  6. 通知与审计归档 — 将执行结果、耗时、变更记录发送至 IM/邮件,并写入审计数据库。
常见陷阱: 很多团队在步骤 5(结果验证)上投入不足,导致剧本“执行成功”但故障未恢复。务必在剧本末尾加入明确的验证断言,例如检查进程状态、接口响应码、业务指标阈值。

1.4 课程目标与适用人群

维度 详细说明
课程目标
  • 掌握 Runbook 标准化编写规范与版本管理方法
  • 学会将 Runbook 转化为可编程的自愈剧本
  • 搭建告警→剧本→执行→验证的自动化响应流水线
  • 设计幂等、可重入、可审计的自愈剧本架构
  • 通过实际案例掌握 5 种以上典型故障场景的自愈方案
适用人群
  • SRE / 运维工程师 — 希望提升故障响应效率与自动化水平
  • DevOps 工程师 — 需要打通监控→告警→自愈的工具链
  • 平台架构师 — 设计运维自动化平台的核心能力模块
  • 技术管理者 — 评估团队运维成熟度与自动化投入方向
前置知识
  • 熟悉 Linux 基础操作与 Shell/Python 脚本
  • 了解常见监控系统(Prometheus / Zabbix)的基本概念
  • 了解 CI/CD 与基础设施即代码(IaC)的基本思想

1.5 课程内容全景图

本课程共 30 章,分为 5 大模块,从基础概念到高级实战逐步深入。

课程内容全景图(5 大模块 · 30 章) 模块一 基础与概念 第1-5章 Runbook 规范 告警体系 剧本引擎 架构设计 模块二 剧本开发 第6-12章 Python 剧本 Ansible Playbook 幂等性设计 参数注入 模块三 联动与编排 第13-19章 告警→剧本联动 条件分支 并行/串行编排 回滚策略 模块四 实战场景 第20-26章 Nginx 自愈 MySQL 故障转移 磁盘扩容 容器重启 模块五 进阶与 运维 第27-30章 混沌工程 容量自愈 AIOps 融合
学习路径建议: 如果你已有 Runbook 编写经验,可以直接从模块二开始;如果团队尚未建立标准化 Runbook 体系,建议从模块一逐章学习,打好基础。