Skip to content
职业中级阅读约 1 分钟

现场经验法则与"土办法" ​

本篇定位

30 条在生产现场反复验证过的经验法则与"土办法",按排障 / 操作 / 安全 / 沟通四组分类。它们不是教科书原理,是踩坑踩出来的肌肉记忆。 适合:贴在工位上、上线前夜读一遍、值班前过一遍。

一、排障类(8 条) ​

#法则为什么 / 怎么做
1先看最近变更故障八成和"昨晚谁动过"有关。开口第一句先问:最近改了什么、发了什么版。
2监控没数据,先查时间同步面板一片空白不一定是系统挂了,可能是机器时区/时钟漂移导致时间轴错位。先 timedatectl。
3磁盘满先看 inode,再看块df -h 还有空间却写不进,多半是 df -i 的 inode 被海量小文件耗光。
4QPS 没涨却全员变慢,先怀疑资源被占住不释放不是被打了,是连接/线程/句柄泄漏。重启能快速反向验证。
5告警风暴里找最早那条,不找最响那条最响的往往是受害者,最早触发的才是第一张骨牌。
6一次只验证一个假设同时改两处,你永远不知道哪个起效、哪个有害。
7卡住 30 分钟没进展,拉第二个人对思路单人钻牛角尖是排障最大的时间黑洞,换个视角往往一秒破局。
8先止血后根治凌晨只做可逆动作(扩容/重启/限流),根治留给白天清醒时。

二、操作类(8 条) ​

#法则为什么 / 怎么做
9重启前先留现场先保存日志、ss -s、df -h、jstack 快照。别一把重启把证据清没了。
10删除前先移动观察不确定能不能删的文件,先 mv 到临时目录放一天,没影响再真删。
11通配符删除前先 echorm 前先 echo xxx* 看展开成什么,防止一个空格把 * 变成全删。
12改配置先 -t / --test,再 reload 不 restartnginx -t、nginx -s reload 不中断连接;restart 会抖一下。
13改完配置打印最终生效值核对用 nginx -T 之类把生效配置打出来,确认你改的就是这一份。
14到硬止损时间没成,无条件回滚"再等等"是上线夜最贵的三个字,红线就是用来在恐慌里替你做决定的。
15旧环境观察期内绝不下线切完再看一个完整业务高峰,保持可秒级切回。
16删正在写的日志用截断,不用 rm: > app.log 截断即可;rm 会让握着句柄的进程不释放空间。

三、安全类(7 条) ​

#法则为什么 / 怎么做
17不可逆操作前先确认备份可用删库、清表、强制切主前,先确认备份真能恢复、回滚路径真验证过。
18生产密钥不进代码、不进聊天记录密钥统一放密钥管理,见密钥与证书管理;聊天里贴的密钥一律当已泄露。
19高危命令加二次确认批量删除/批量执行脚本内置白名单和 yes/no,别一条命令扫到所有机器。
20权限最小化应用用专用账号跑,别用 root 跑业务;能给读权限就不给写权限。
21证书全部入库 + 到期告警到期前 30/15/7 天报警,别让证书在深夜过期炸全站。
22操作留痕谁在生产登过、敲过什么命令,要有审计(堡垒机/history)。
23公网服务前必须有网关/鉴权新起的服务默认别裸奔公网,前面加 Nginx + 认证。

四、沟通类(7 条) ​

#法则为什么 / 怎么做
24现场只一个人对外发声所有人都在群里说话=没人说得清。指定一人同步"现在到哪一步"。
25有结论再说,没结论别制造恐慌报故障时带上"已定位为 X、正在止血、预期 N 分钟恢复",而不是只甩"出事了"。
26决策说清理由,别只下指令"我建议回滚,因为根因不明且已过止损时间"——团队知道为什么,才会信任你的判断。
27复盘对事不对人找系统漏洞,不追责个人。文化见事故管理与无指责复盘。
28别在群里甩半截日志贴关键行 + 说清你怀疑什么,比甩 500 行让别人自己看高效。
29跨组协作先说清楚边界数据库的事找 DBA、网络的事找网络组,别自己越权动别人负责的层。
30事后把"这次怎么处理的"沉淀下来每次止血动作都写进剧本,下次值班直接抄,不临场想。模板见运维文档模板。

怎么用这 30 条

不用背。上线夜前扫一遍"操作类+安全类",值班前扫一遍"排障类",复盘时对照"沟通类"。用得多了,它们会变成你的条件反射。

相关速查 ​