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对接 进阶篇 生产加固 实战篇:完整交付
学习前提: 建议你具备基础的 Prometheus 告警配置经验,熟悉 Linux 命令行和至少一种脚本语言(Bash/Python)。本课程不涉及 Prometheus 安装部署,专注在告警触发后的自动化处理环节。

1.5 你将带走的核心能力

  • 模板化思维: 能够将任意运维操作抽象为可配置的模板。
  • 可复用剧本库: 一套覆盖常见故障场景(进程挂死、端口不可达、磁盘满、高负载)的剧本模板。
  • 端到端集成: 从 Alertmanager Webhook 到剧本执行、结果回传的完整链路。
  • 生产级保障: 熔断、限流、权限、审计、灰度等企业级特性。