02 12 周练习路线
目标:把“答疑支持经验”转成能展示、能面试、能写进简历的项目资产。
建议节奏:12 周,每周 5 天,每天 45-90 分钟。
总览
主作品:
ops-diagnose:私有云基础组件自助诊断 + 监控 + AI Runbook 知识库
覆盖范围:
- Linux 基础排障:DNS、网络、磁盘、进程、端口、日志。
- 基础组件排障:yum、ntp/chrony、syslog/rsyslog。
- Python 自动化:CLI 诊断工具、报告导出、Prometheus metrics。
- 监控闭环:Prometheus、blackbox exporter、postgres exporter、告警规则。
- K8s 故障案例:CrashLoopBackOff、OOMKilled、ImagePullBackOff、Pending、Probe 失败。
- AI 知识库:把 runbook、故障复盘、诊断报告接入 Dify 或 RAGFlow,回答必须能引用来源。
第 1 周:Linux 排障基本功
目标:把“我会 Linux”变成可展示的排障笔记。
任务:
- 练 10 个 Linux/sysadmin 问题。
- 写 3 篇 runbook:
runbook-disk-full.mdrunbook-high-load.mdrunbook-port-listen-and-connectivity.md
- 做一个
linux_check.sh,输出磁盘、负载、内存、端口、关键服务状态。
验收:
- 每篇 runbook 都有:现象、影响、排查命令、判断标准、修复动作、风险提醒。
- 脚本能在 Linux 机器上运行,并输出 Markdown 格式报告。
第 2 周:yum / DNS / NTP / syslog
目标:把当前工作最熟悉的答疑内容做成资产。
任务:
- 写 4 篇 runbook:
runbook-yum-repo-unavailable.mdrunbook-dns-resolution-failure.mdrunbook-chrony-time-offset.mdrunbook-rsyslog-not-forwarding.md
- 写 Python 检查脚本:
- 检查 repo URL 是否可访问。
- 检查 DNS 是否能解析。
- 检查 chronyd/ntpd 服务状态。
- 检查 rsyslog 服务状态和端口。
验收:
- 每个检查都有明确 exit code。
- 每个检查都有“可能原因”和“下一步命令”。
第 3-4 周:做 ops-diagnose CLI
目标:从零散脚本升级为项目。
项目结构:
ops-diagnose/
README.md
pyproject.toml
ops_diagnose/
cli.py
checks/
dns.py
yum.py
ntp.py
syslog.py
disk.py
network.py
report.py
docs/
runbooks/
examples/
report-demo.md核心命令:
ops-diagnose check yum
ops-diagnose check dns
ops-diagnose check ntp
ops-diagnose check syslog
ops-diagnose check all --format markdown
ops-diagnose check all --format json验收:
- README 有安装、命令、示例输出。
- 至少 6 个 checks。
- 至少 5 个 runbook。
- 至少 1 个 demo 报告。
第 5 周:Prometheus 指标化
目标:从“脚本能跑”升级为“能被监控系统使用”。
任务:
- 给
ops-diagnose增加serve-metrics命令。 - 暴露指标:
ops_dns_check_successops_yum_repo_upops_ntp_service_upops_ntp_offset_secondsops_syslog_service_upops_disk_usage_percent
- 用 Prometheus 抓取这些指标。
验收:
- 浏览器访问
/metrics能看到指标。 - Prometheus targets 页面显示 up。
- README 增加 Prometheus 接入步骤。
第 6 周:黑盒监控和告警规则
目标:把内部服务可用性监控做出来。
任务:
- 用 blackbox exporter 监控 HTTP repo、内部 HTTP 服务、DNS 解析、TCP 端口。
- 写告警规则:
- yum repo 不可用超过 5 分钟
- DNS 解析失败
- syslog 端口不可达
- NTP offset 超阈值
- 磁盘使用率超过 85%
验收:
- 能故意制造一个失败,并触发告警。
- 写一篇
alert-rule-design.md,说明为什么这样设阈值。
第 7-8 周:Kubernetes 故障案例库
目标:准备可讲的 K8s 排障案例。
环境:
- 本地 kind 或 minikube
kubectl- 可选:Prometheus + Grafana
必练案例:
- CrashLoopBackOff
- OOMKilled
- ImagePullBackOff
- Pending Pod
- Liveness Probe Failure
- Readiness Probe Failure
- Job Failure
- Failed Helm Release
每个案例输出一篇复盘:
cases/
k8s-crashloopbackoff.md
k8s-oomkilled.md
k8s-imagepullbackoff.md
k8s-pending-pod.md复盘结构见:Runbook 与复盘模板。
第 9 周:PostgreSQL / 数据库监控
目标:把数据库运维经验转成可展示项目。
任务:
- 用 Docker 启动 PostgreSQL。
- 接入 postgres_exporter。
- 写 5 条数据库告警:
- 连接数过高
- 长事务
- 锁等待
- 数据库大小增长异常
- 实例不可用
- 制造一个慢查询,用
pg_stat_activity和 exporter 指标观察。
验收:
- 有 Grafana 截图。
- 有
runbook-postgres-lock-wait.md。 - 有
runbook-postgres-slow-query.md。
第 10 周:Ansible 批量巡检
目标:把单机诊断升级为多机器巡检。
任务:
- 写一个 Ansible playbook,批量执行磁盘、服务状态、yum repo 连通性、chrony、syslog 检查。
- 汇总输出到一个 Markdown 报告。
验收:
- 至少支持 3 台测试机器或 3 个容器。
- 报告能区分正常、警告、异常。
第 11 周:AI 运维知识库
目标:把 runbook 和复盘变成 AI 助手。
建议先用 Dify,部署和验证更快;机器内存足够时再试 RAGFlow。
任务:
- 上传前 10 周写的 runbook 和 cases。
- 做一个“运维排障助手”。
- 提示词要求:
- 必须引用知识库来源。
- 不确定时必须说不确定。
- 危险操作必须提示人工确认。
- 输出格式固定:可能原因、排查命令、判断标准、修复建议、风险。
验收:
- 至少 10 个测试问题。
- 每个问题记录:AI 回答、引用来源、是否准确、需要补充的知识。
- 形成
ai-ops-assistant-evaluation.md。
第 12 周:整理作品和简历
目标:把练习转成求职资产。
整理内容:
- GitHub README
- 项目架构图
- 运行截图
- Grafana Dashboard 截图
- AI 助手截图
- 10 篇 runbook
- 8 篇 K8s/DB 故障复盘
- 1 篇总复盘文章
总复盘文章标题:
我如何把重复运维答疑沉淀成自动化诊断工具和 AI Runbook 知识库