1. 课程导论与架构总览

1.1 自动化运维的发展趋势

传统运维模式正经历从“被动救火”向“主动预防与自愈”的深刻转变。随着微服务架构与容器化部署的普及,运维对象数量呈指数级增长,人工处理告警已无法满足业务连续性的要求。当前自动化运维的核心趋势可归纳为以下四个方向:

趋势方向 核心特征 典型技术栈
可观测性驱动 指标、日志、链路追踪三位一体,数据驱动决策 Prometheus + Loki + Tempo
声明式配置 期望状态与当前状态自动调和,消除配置漂移 Ansible / Terraform / Kubernetes
事件驱动自动化 告警事件触发预定义修复流程,减少人工介入 Alertmanager Webhook + Ansible Tower
闭环自愈 检测 → 诊断 → 决策 → 执行 → 验证,形成自动化闭环 Prometheus + Ansible + 健康检查
关键认知: 告警驱动自愈并非取代运维人员,而是将重复性、标准化的故障处理流程交给机器,让工程师专注于架构优化与复杂故障根因分析。

1.2 Prometheus 与 Ansible 生态介绍

1.2.1 Prometheus 生态

Prometheus 是云原生计算基金会(CNCF)的毕业项目,已成为指标监控的事实标准。其生态核心组件包括:

  • Prometheus Server:负责指标采集、存储与查询(PromQL)。
  • Alertmanager:处理告警路由、去重、静默与通知发送。
  • Exporters:将第三方系统指标转换为 Prometheus 格式(如 node_exporter、blackbox_exporter)。
  • Pushgateway:支持短生命周期任务的指标推送。
  • Grafana:可视化仪表盘,与 Prometheus 深度集成。

1.2.2 Ansible 生态

Ansible 是 Red Hat 出品的无代理自动化引擎,通过 SSH 或 WinRM 执行任务。其生态核心组件包括:

  • Ansible Core:执行引擎,支持 Playbook 与 Ad-Hoc 命令。
  • Ansible Tower / AWX:企业级 Web UI,提供 RBAC、作业调度与 REST API。
  • Ansible Galaxy:社区角色与集合的共享仓库。
  • Ansible Modules:内置 1000+ 模块,覆盖系统、网络、云、容器等领域。
生态互补: Prometheus 负责“发现异常”,Ansible 负责“修复异常”。两者通过 Webhook 或 API 集成,形成完整的告警驱动自愈链路。

1.3 告警驱动自愈的核心架构

下图展示了本课程的核心架构:Prometheus 采集指标并触发告警,Alertmanager 通过 Webhook 将告警转发至自动化平台,Ansible 执行预定义的修复 Playbook,最终由健康检查验证恢复状态。

告警驱动自愈核心架构图 告警驱动自愈核心架构 Prometheus Server 指标采集 · PromQL 查询 Exporters node_exporter / blackbox Alertmanager 告警路由 · 去重 · 静默 Webhook 转发 Ansible Playbook 重启服务 · 清理磁盘 · 扩容 健康检查验证 HTTP 探活 · 指标回检 反馈闭环:验证结果回写指标,确认告警恢复 核心流程:指标采集 → 告警触发 → Webhook 转发 → Ansible 执行 → 健康验证 → 闭环恢复

1.4 核心工作流程

告警驱动自愈的完整工作流程分为六个阶段,每个阶段都有明确的输入与输出:

  1. 指标采集阶段:Prometheus 通过 Exporters 或直接拉取方式,按固定间隔(如 15s)采集目标系统的 CPU、内存、磁盘、网络等指标。
  2. 告警评估阶段:Prometheus 根据预定义的告警规则(如 node_cpu_seconds_total > 0.9)评估指标是否触发阈值。
  3. 告警通知阶段:Alertmanager 接收告警后,根据路由配置进行分组、去重,并通过 Webhook 发送至 Ansible 自动化平台。
  4. 修复决策阶段:Ansible Tower/AWX 接收 Webhook 后,根据告警标签(如 severity=critical、service=nginx)匹配对应的修复 Playbook。
  5. 修复执行阶段:Ansible 在目标主机上执行 Playbook,例如重启服务、清理磁盘空间、调整配置参数等。
  6. 验证闭环阶段:执行完成后,Prometheus 再次采集指标,确认告警是否恢复。若未恢复,则触发升级策略或通知人工介入。
避坑提示: 修复 Playbook 必须包含幂等性设计,避免重复执行导致系统状态异常。建议在 Playbook 开头添加条件判断,仅当故障状态持续时才执行修复操作。

1.5 课程实验环境概览

本课程将基于以下实验环境进行实战演练:

组件 版本 部署方式 用途
Prometheus 2.53.x Docker / 二进制 指标采集与告警评估
Alertmanager 0.27.x Docker / 二进制 告警路由与 Webhook 转发
Ansible Core 2.17.x pip 安装 Playbook 执行引擎
Ansible AWX 24.6.x Kubernetes / Docker Compose Webhook 接收与作业调度
node_exporter 1.8.x 二进制 主机指标暴露
Grafana 11.2.x Docker 指标可视化与告警展示
学习建议: 建议在虚拟机或云主机上搭建实验环境,至少准备 2 台 Linux 节点(1 台控制节点 + 1 台受管节点),以便完整演练告警驱动自愈的全流程。