别再半夜敲命令了:用LLM+自动化脚本,把Runbook变成“会思考的运维同事”我先问你一个问题,你别急着回答,先在脑子里过一遍:你们团队的Runbook,是不是长这样? 而LLM的出现,第一次让我觉得:Runbook,终于可以不只是文档了。 一、Runbook的最大问题,从来不是“没写”很多管理者以为:“我们缺的是Runbook”但干过运维的人都知道,真正的问题是:故障发生时你来不及翻翻到了也不一定匹配每个环境都不一样每次事故都有“变种”所以现实是 :Runbook≠执行Runbook≠决策Runbook≠修复它只是“参考资料”。 LLM能帮Runbook做什么?简单拆一下:读懂告警结合上下文判断场景选择对应的处理流程触发自动化脚本回收结果,再判断是否升级这一步一拆,你会发现:Runbook,开始“活”了。
真正好用的Runbook,一定是结构化的。 ---#三、Runbook其实也应该版本化很多团队忽略一个事情:**Runbook也是代码。 例如:service-repo/├─service├─deployment└─runbook展开代码语言:TXTAI代码解释部署脚本更新时,Runbook同步更新。 ---#四、Runbook最好的形态:可执行很多人写Runbook只是写文档。但更高级的方式是:**Runbook自动化。**举个例子。假设我们要检查KubernetesPodCrash。 所以我一直强调:Runbook一定要统一入口。
email", "dingtalk", "wecom" ], "notify_repeat_step": 60, "callbacks": [], "runbook_url email", "dingtalk", "wecom" ], "notify_repeat_step": 60, "callbacks": [], "runbook_url email", "dingtalk", "wecom" ], "notify_repeat_step": 60, "callbacks": [], "runbook_url email", "dingtalk", "wecom" ], "notify_repeat_step": 60, "callbacks": [], "runbook_url email", "dingtalk", "wecom" ], "notify_repeat_step": 60, "callbacks": [], "runbook_url
;3) Runway(可控通路):GitOps/CD/特性开关/流量管理,确保“可试、可退”; 4) Records(可审计记录):变更、告警、审批、回滚全链路留痕; 5) Refine(知识精炼):Runbook -- selected metrics --> PG[(PostgreSQL + TimescaleDB)] PG -- graph --> AGE[Apache AGE(Graph)] KB[Runbook SLO/验证☐ SLI 指标定义(可用性/延迟/错误率)☐ 验证门:变更前后 5–10 分钟对比与阈值☐ 回滚路径(rollout undo / revert PR / FF 关闭)· 知识/沉淀☐ Runbook verification_window_min: 10 rollback: methods: ["rollout-undo", "revert-pr", "feature-flag"]knowledge: etl_sources: ["runbook KEY, service TEXT, env TEXT, owner TEXT, ts TIMESTAMPTZ DEFAULT now(), object_type TEXT, -- runbook
进入sre行业半年了,经常会需要处理一些警告事件,然后把经验记录下来形成runbook,翻译过来就是运行手册,最近发现如果我不在家,家里有些事情家人无法处理,所以想着写一个家庭版的runbook,供家人参考
进阶:让技能“有血有肉” 再丢一句 prompt 给 Copilot: Create me three things: - A One-page incident runbook based on the this skill 几分钟后,你的技能包膨胀为: .github/skills/istio-observability/ ├── SKILL.md # 技能说明书 ├── runbook.md VS Code Insiders + 启用 Agent Skills 承认世界在变 2️⃣ 创建 .github/skills/ + SKILL.md 给混沌赋予结构 3️⃣ 用 Copilot 填充 runbook
Planner(Plan):Runbook/变更计划 DSL,风险评估、回滚与门控生成。 Plan/Runbook:计划/步骤/回滚/门控。 Observation:指标/日志/追踪/审计事件的统一抽象。 Incident:异常/告警归并体。 apiVersion: ops/v1 kind: Runbook metadata: name: rollback-payments-to-1.2.3 labels: case: C-202508 相似检索:pgvector 召回 Runbook/复盘;LLM 进行 RAG 总结并给出多候选方案。 与替代方案对比 单纯告警 + Runbook:缺少图谱/向量证据与门控自动化;靠人执行,回滚与审计弱。 纯 GitOps:变更可控,但缺少“何时/为何/如何”的自治决策与 KPI 验证闭环。
我们借用了 Maelstrom 中的 Runbook 概念。Runbook 中包含一个或多个任务,每个任务负责执行特定操作。 与直接编辑 Go 二进制文件相比,新方法不仅更加轻巧、同时也提高了 Runbook 的重用能力,帮助灾难准备团队轻松完成一次又一次定期测试。下图所示,为 Runbook 流程和其中的任务。 Runbook 状态机。一个 Runbook 由多个任务组成。 任务状态机。任务负责执行特定操作,例如对数据库集群执行故障转移、更改流量权重或者发送 Slack 消息。 此外,运维人员的操作灵活性也有所提升,例如可以轻松重新运行 Runbook、跳过已完成或者无需执行的任务等。 随着 Runbook 复杂度的不断提升,这种简单性与可靠性将帮助我们始终保持程序具有良好的可管理性。
Runbook是企业员工在生产环境中对可预测事件做出反应时可以执行的一系列常规操作和过程。 Runbook不仅限于安全事件,因为它们还可以引导员工完成诸如如何扩展数据库或重新启动卡住的进程等任务。 在事件管理方面,对于不熟悉企业架构的员工来说,Runbook是第一道防线。 ·聚合 当涉及到事件响应团队识别发生了什么、如何发生以及为什么发生的能力时,数据是关键。
• 执行:Runbook 自动化(Kubernetes 回滚/扩容/限流),并输出结构化记录。 演示环境用 Docker Compose 搭一套“小而全”的工具链。生产替换为你公司现有组件即可。 { severity: critical, sli: "http-5xx" } annotations: summary: "SLO 快速燃尽 (5m > 1%)" runbook { severity: warning, sli: "http-5xx" } annotations: summary: "SLO 缓慢燃尽 (4h > 0.1%)" runbook SLOErrorBudgetBurnFast","severity":"critical","sli":"http-5xx" }, "annotations": { "summary":"SLO 快速燃尽 (5m > 1%)","runbook • 第 4 周:把两三个Runbook 自动化起来(限流、回滚、重启、拉黑异常实例)。 • 后续:补齐 Trace、变更时间线、ClickHouse 明细分析,逐步把“经验”沉到系统里。
增强|pgvector 知识库:Runbook/Incident/PR/变更 → 切片+Embedding+标签。 进阶|一致性标记:拓扑节点标注“可信度/时效性”,过期自动衰减。 E. 必备|演练脚本:故障演练/回滚演练;灾备切换的 Runbook。 增强|影子/回放流量:对关键路径支持影子压测、变更前基线对齐。 进阶|混沌工程:故障注入自动化与 SLO 验证联动。 H. 仓库按 apps/<svc>/charts|overlays 组织 CODEOWNERS & 保护分支启用 OPA/Conftest 最少一条策略(副本下限、资源上限、禁止latest) 知识库 Runbook
第二阶段:引入低风险自主操作,建立 Runbook 自动化 将现有的 Runbook(操作手册)结构化,让 Agent 能够在匹配到对应场景时自动执行预定义的处理步骤。 给有意推进这件事的技术团队几个建议: 从告警分析层入手,不改变现有流程,先让 Agent 证明它的分析价值 建立误报率基线,在引入自主操作之前,把 Agent 的分析准确率量化,设定可接受阈值 把 Runbook
/repository Link to external VCS repository. a8r.io/support Link to external support center. a8r.io/runbook Link to external project runbook. a8r.io/incidents Link to external incident dashboard. a8r.io/uptime
感兴趣的可以去看看 3.服务 runbook 定期演练 这一点我体会非常深,就像消防员定期检查装备,然后测试灭火一样。 服务要针对特定的问题,定制好 runbook, 毕竟维护服务的工程师是流动的,今天是 owner, 明天就移交给 tom 了 我们的服务依赖 etcd, 大家也知道机器挂掉概率虽然低,但是预期之中的。 所以我们编写了 runbook, 滚动升级 etcd, 移除添加故障节点等等,非常好用,新手按照流程走就可以 4.人员素质 长期建设里最重要的就是人员素质建设,有的人上线完成后,不看日志,不检查 grafana
当执行维护任务时,当用户在使用runbook时漏掉警告或者删除错误的资源(例如,他们认为没有使用,但占用了很大流量的资源),从而导致严重中断。 通常记录在 Runbook 中的护栏和启发式方法可以以编程方式实现。例如,我们绝不允许用户一次将群集缩减 50% 以上,因为这种操作曾经导致过正常维护时的意外中断。 6 Clutch在Lyft公司 在 Clutch 之前,Lyft 工程师依靠一系列大杂烩式命令行工具、Web 接口和 Runbook 来执行简单的任务。 Lyft 最常见的警报需要解决多达六个不同的信息源:警报、其他服务仪表板、Runbook、其他文档源、供应商控制台或脚本以及配置设置。
最近部署:订单服务v1.2.3(2小时前部署)" ], "runbook": "https://runbook.company.com/order-service-high-error-rate", labels.service }} 错误率超过5%" description: "服务 {{ $labels.service }} 当前错误率为 {{ $value }},已持续5分钟" runbook : "https://runbook.company.com/api-high-error-rate"Dashboard即代码(JSON配置)确保监控视图一致性:{ "dashboard": {
近期看到的最好的一篇 SRE 领域的文章,分享给大家,其中包含的 Runbook、Postmortem 模板都很有参考价值,对于稳定性和绩效的关联也做了建议。作者 Fatih K. critical team: payments annotations: summary: "结账服务错误预算消耗率达 14.4 倍" runbook_url : warning team: payments annotations: summary: "结账服务错误预算消耗率达 6 倍" runbook_url 运行手册与告警的关联还记得我们在 OpenTelemetry 流水线中添加的 runbook.url 注解吗? runbook_url: '{{ $labels.runbook_url }}' dashboard: 'https://grafana.internal/d/service-overview?
- 提供 SLO/SLI 数据驱动决策- 推动可观测性(metrics/logs/traces)- 通过 Runbook 降低运维干预- Provide SLO/SLI-driven feedback- - 架构设计文档 + 部署流程- Runbook + FAQ- 复盘文档(Postmortem)- Architecture design + deployment guide- Runbooks + 事后复盘:改进监控盲区、更新 Runbook。 Quick response: acknowledge alerts → assess impact.
全链路一致) 合理采样策略(Trace tail-based + 错误/慢调用上采样) 基数治理(series/fan-out 上限) Runbook/知识库可复用 双时态拓扑图能复盘当时依赖关系 只把资源事实 + 聚合边权 + 摘要/Runbook 向量存入 PG,能省就省。 2) 性能与可观测体验 OO 处理时间窗 + 标签的典型检索:TOPK、错误率、分位数,近线秒级。 pgvector(知识/相似案例) 只对摘要/Runbook/模板建向量索引,结合结构化过滤就地检索; 故障时按“向量相似度 × 图证据 × 指标异常度 × 时间接近度”重排序,给出可执行答案。
RunDeck - Job Scheduler and Runbook Automation.