1. 课程导论:什么是 Runbook、什么是自愈剧本、课程目标与学习路径
在 Prometheus 监控体系落地过程中,告警只是起点,真正的价值在于告警触发后能否快速、可靠地恢复服务。本课程聚焦于将运维经验转化为可执行的自动化剧本,实现从“人工响应”到“机器自愈”的跨越。
1.1 什么是 Runbook(运维手册)
Runbook 是运维团队用于处理特定事件的标准化操作文档。它详细记录了从告警接收到故障恢复的完整步骤、命令、检查点和回退方案。
| 维度 | 传统 Runbook 特征 | 痛点 |
|---|---|---|
| 存储形式 | Wiki、Confluence、PDF 文档 | 版本混乱、查找耗时 |
| 执行方式 | 人工阅读、逐条手动执行 | 易出错、速度慢、依赖个人经验 |
| 更新频率 | 被动更新,往往滞后于环境变更 | 文档与生产脱节,误导操作 |
| 可测试性 | 几乎无法自动化测试 | 故障时才发现步骤不可用 |
核心认知: Runbook 是运维知识的“静态载体”,而自愈剧本是 Runbook 的“可执行版本”。
1.2 什么是自愈剧本(Self-Healing Playbook)
自愈剧本是将 Runbook 中的操作步骤代码化、自动化后的产物。它由告警触发,自动执行诊断、决策和恢复动作,并在执行过程中记录日志、上报结果。
一个典型的自愈剧本包含以下要素:
- 触发器: 来自 Prometheus Alertmanager 的 Webhook 告警。
- 上下文: 告警标签、当前指标值、目标实例状态。
- 诊断阶段: 执行预定义的检查命令(如
curl、pg_isready、systemctl status)。 - 决策逻辑: 根据诊断结果选择恢复策略(重启、扩容、回滚、切换流量)。
- 恢复动作: 通过 API 或 SSH 执行修复命令。
- 验证与升级: 确认恢复是否成功,失败则升级到人工处理。
关键区别: Runbook 告诉你“做什么”,自愈剧本直接“替你做完”。自愈剧本是 Runbook 的自动化实现,也是 SRE 实践中“减少琐事(Toil)”的核心手段。
1.3 为什么需要模板化
在实际生产中,不同服务、不同告警的自愈逻辑往往存在大量重复模式。模板化可以解决以下问题:
- 重复造轮子: 每个团队都写类似的“重启服务”剧本,浪费人力。
- 质量参差: 缺乏统一规范,有的剧本缺少回滚步骤,有的没有超时控制。
- 维护困难: 当基础设施变更(如监控端口调整),需要逐个修改所有相关剧本。
- 难以审计: 剧本散落在不同仓库、不同语言中,无法统一查看执行记录。
模板化将剧本拆解为“不变的结构”和“可变的参数”,通过配置驱动生成,实现一次编写、多处复用。
1.4 课程目标与学习路径
本课程旨在帮助你掌握一套完整的自愈剧本生产体系,从设计到交付,覆盖以下能力:
| 模块 | 核心产出 | 关键技能 |
|---|---|---|
| 基础篇(第1-5章) | 理解 Runbook 模板化原理 | YAML 模板语法、变量注入、条件渲染 |
| 核心篇(第6-15章) | 构建可复用的剧本模板库 | 诊断模块、恢复动作、回滚策略、超时与重试 |
| 集成篇(第16-22章) | 打通 Prometheus + 自动化引擎 | Alertmanager Webhook、Webhook 接收器、执行器适配 |
| 进阶篇(第23-28章) | 生产级加固与运营 | 权限控制、审计日志、灰度发布、混沌工程验证 |
| 实战篇(第29-30章) | 完整项目交付 | 从零搭建自愈平台、案例复盘 |
学习前提: 建议你具备基础的 Prometheus 告警配置经验,熟悉 Linux 命令行和至少一种脚本语言(Bash/Python)。本课程不涉及 Prometheus 安装部署,专注在告警触发后的自动化处理环节。
1.5 你将带走的核心能力
- 模板化思维: 能够将任意运维操作抽象为可配置的模板。
- 可复用剧本库: 一套覆盖常见故障场景(进程挂死、端口不可达、磁盘满、高负载)的剧本模板。
- 端到端集成: 从 Alertmanager Webhook 到剧本执行、结果回传的完整链路。
- 生产级保障: 熔断、限流、权限、审计、灰度等企业级特性。