自动化运维
让机器做重复的事,让人做有创造力的事。
运维的终极目标,不是成为一个「熟练的命令行使用者」,而是把那些重复的、有规律的运维工作自动化,让自己的精力聚焦在更有价值的事情上——架构设计、故障分析、性能调优。
这篇文章系列覆盖三大核心领域:Ansible 自动化配置管理、Prometheus + Grafana 监控体系、以及日志系统(ELK/EFK/Loki)。从基础设施配置到应用监控,再到日志收集与分布式追踪,构建起完整的可观测性体系。
模块速览
自动化运维的核心是「测量 - 监控 - 告警 - 响应」的闭环。每个环节都有对应的工具和最佳实践。
| 方向 | 篇数 | 核心目标 |
|---|---|---|
| Ansible | 4 篇 | 配置管理、Playbook、Roles、与 K8s 集成 |
| Prometheus + Grafana | 8 篇 | 指标体系、PromQL、服务发现、可视化仪表盘 |
| 日志系统 | 5 篇 | ELK/EFK/Loki 架构对比、日志收集方案 |
| SRE 与可观测性 | 2 篇 | 可观测性理论、链路追踪工具对比 |
学习路径建议
第一阶段:监控基础(1 周)
→ Prometheus 数据模型与四大指标类型
→ 搭建 Prometheus + Grafana 监控栈
→ 编写 PromQL 查询语句
→ 服务发现配置(K8s、Consul)
第二阶段:日志体系(1 周)
→ ELK Stack 架构与组件职责
→ EFK 方案:Fluentd/Fluent Bit 的选型
→ Loki 的设计理念与适用场景
→ 分布式日志追踪:ELK + Zipkin/Jaeger
第三阶段:配置管理(1 周)
→ Ansible Inventory 与 Playbook 基础
→ Ansible Roles 模块化实践
→ Ansible 与 Docker、Kubernetes 集成
→ 编写可复用的 Ansible Role
第四阶段:可观测性闭环(1 周)
→ 指标、日志、链路三位一体的可观测性
→ 告警规则设计与 AlertManager 配置
→ SLO/SLA 定义与监控
→ 故障复盘与改进流程可观测性的三个维度
现代运维讲究「可观测性」(Observability),它有三个核心支柱:
指标(Metrics):系统运行状态的数值度量。CPU 使用率、内存占用、请求延迟分位数——这些是 Prometheus 擅长的事情。指标的特点是:高度聚合、查询高效,适合告警和趋势分析。
日志(Logs):离散的事件记录。结构化日志(JSON)比文本日志更有价值,因为可以按字段检索和聚合。日志的特点是:信息量大、维度丰富,适合故障定位。
链路追踪(Traces):请求在分布式系统中的调用路径。一次 HTTP 请求从网关到服务 A,到服务 B,再到数据库,每一步的耗时和关系,都记录在 Trace 里。链路追踪的特点是:端到端关联,适合分析分布式系统的性能瓶颈。
三种数据各有侧重,组合起来才能构建完整的可观测性视图。
面试的核心逻辑
自动化运维的面试,核心考察三个方面:
- 监控体系设计:你能说出 Prometheus 的数据模型吗?四大指标类型各自的应用场景是什么?如何设计告警规则避免告警疲劳?
- 问题排查能力:系统变慢了,怎么定位是数据库、缓存还是应用本身的问题?日志和指标在排查过程中各自扮演什么角色?
- 自动化意识:哪些运维工作应该优先自动化?为什么?Ansible 和 Kubernetes 的自动化思路有什么区别?
"好的运维,不是人盯着机器跑,而是让机器自动报告问题。不懂得利用工具的运维,是在用体力换效率。"
