故障分类
硬件、网络、依赖、代码、人为。
30 分钟
故障分类
排障前先 归类:硬件、网络、依赖、代码、人为——不同类别对应不同 检测手段 与 缓解策略。CodeRoadMap 跑在 宝塔 VPS 单机 上,类别少了几种云原生故障,但 依赖与代码类 占绝大多数。
学习目标
- 掌握五类常见故障及典型信号
- 知道每类故障的第一响应动作
- 衔接 prom-alerts 告警设计
五类故障
| 类别 | 典型原因 | 信号 | 缓解方向 |
|---|---|---|---|
| 硬件/宿主 | 磁盘满、内存不足、CPU 飙高 | up==0、OOM、iowait | 扩容、清理日志、限流 |
| 网络 | DNS、防火墙、TLS 过期 | 连接超时、502 | 检查宝塔/Nginx、证书 |
| 依赖 | MySQL 慢、Redis 不可用 | 连接池等待、504 | 超时、熔断、降级 |
| 代码/配置 | NPE、SQL 错误、错配 YAML | 5xx 突增、堆栈 | 回滚、feature flag |
| 人为/变更 | 误删数据、错误迁移 | 发布后指标异常 | 变更窗口、备份、复盘 |
单机 vs 分布式
┌─ 硬件(整台 VPS)
│
[用户] ── Nginx ── backend ── MySQL
│
└─ 网络(443/8080/3306 任一不通 → 全站受影响)
拆微服务后,网络与依赖 类故障比例上升(见 rel-monolith);单机阶段 宿主+依赖 最需警惕。
检测分层
指标(Prometheus)── 趋势、SLO 违反
日志(应用/ Nginx)── 单次异常栈
告警(Alertmanager)── 人介入触发
Spring Boot 指标暴露见 prom-spring;集成层反模式见 ip-anti。
练习
- 将「MySQL 连接数打满」归入哪一类?第一响应是什么?
- 画 CodeRoadMap 依赖图:platform → backend → MySQL
- 举一个人为故障例子及如何预防
小结
分类故障 = 选对工具与 playbook。 下一课:级联失败。
加载本节练习…