坑1:重启服务忘检查依赖

事故经过: 同事重启缓存服务,没有确认依赖关系,导致分布式锁服务失败,支付模块在业务高峰期中断。

预防方案:

重启前做「三重确认」:

  1. 检查上下游依赖,确认影响范围
  2. 确认启动脚本有健康检查
  3. 选择业务低峰期,预留 3-5 倍处理时间

采用「分阶段重启」:先重启从节点,确认稳定后再重启主节点。


坑2:配置修改出错

常见错误:

  • Nginx 配置语法错误,服务无法启动
  • 数据库连接池配置写错(max_active=2000 写成 200
  • 安全组规则设置过于宽松

预防方案:

三步流程:备份 → 修改 → 验证

# 修改 Nginx 配置前先备份
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%Y%m%d)

# 修改后验证语法
nginx -t

# 确认无误再重载
nginx -s reload

关键配置用 Git 管理,每次变更有记录,出问题可以快速回滚。


坑3:备份从没验证过

事故经过: 硬件故障需要恢复数据,发现备份已经一周没有成功执行——存储空间满了,备份任务静默失败。

预防方案:

遵循「3-2-1 备份原则」:

  • 3 份数据副本
  • 2 种不同存储介质
  • 1 份异地存储

每周随机验证 1-2 个备份,在测试环境实际恢复,确认数据完整性。

监控备份任务执行状态、文件大小、存储容量,任何异常立即告警。


坑4:网络排查没有方法论

常见场景: 应用连接问题排查了 2 小时,最后发现是 DNS 解析指向了已下线的服务器。

排查方法论: 按 OSI 模型从底层往上排查

物理层 → 数据链路层 → 网络层 → 传输层 → 应用层

常用工具:

# 检查 DNS 解析
nslookup domain.com
dig domain.com

# 检查端口连通性
telnet host port
nc -zv host port

# 抓包分析
tcpdump -i eth0 host target_ip

坑5:权限管理混乱

风险场景:

  • 多人共用同一个账号
  • 普通员工有 root 权限
  • 离职员工权限没有及时回收

真实案例: 外包人员离职后权限未回收,3 个月后服务器被植入挖矿程序。

预防方案:

最小权限原则:按角色分配权限,root 访问限制在 1-2 人。

权限生命周期管理:角色变更后 24 小时内回收权限。

加强远程登录安全:

# 禁止 root 直接登录
PermitRootLogin no

# 限制允许登录的 IP
AllowUsers user@192.168.1.*

# 定期轮换密钥

总结

大多数运维事故不是来自意外,而是来自操作疏忽。建立标准流程、强化监控、定期复盘——这三点能避免 80% 的重复性故障。