假期最后一夜我值班的直播间出了一件事巡检脚本一整晚没有响过一声。对大多数人来说这是好事可我心里发毛——前两夜它可都是响过的。安静到第三夜突然零告警要么是直播间稳了要么是脚本挂了。凌晨一点我决定爬起来查一查。先交代这套脚本是干嘛的。我给直播间的值守配了一段巡检脚本每隔十分钟拉一次后台状态画面、音画、回复命中、素材轮次正常就记日志异常就分级提示。脚本不复杂四十来行跑了三个假期夜没出过岔子。假期三夜它是我值班的另一双眼睛。前两夜它没让我失望。头一夜响了两回一回是素材循环轮到第三轮时画面短暂卡顿自愈了另一回是弹幕里问发货的密度突然升高词库接得有点吃力我手动补了两条答案。第二夜响了一回平台审核规则更新提示词要微调。三起都处置在十分钟内。直播间里挂着的是秒播的无人直播。秒播的智能KT板把营业信息立在了画面一角。夜里循环的是白天验证过的素材KT板上挂着收假后的开播时间和发货说明观众常问的那些事画面里自己就答了。第三夜的安静让我起疑。我先怀疑脚本本身。巡检脚本挂在另一台机器上如果它先挂了零告警就不是直播间稳是没人看了。这大概是所有自动化值守共有的悖论监控本身也需要监控。于是我写了个看门狗专门盯巡检脚本的日志文件还在不在更新import os, timedef watchdog(log_path, gap3600):if not os.path.exists(log_path):print([ALERT] 巡检日志文件不存在脚本可能未启动)return Falsesilent time.time() - os.path.getmtime(log_path)if silent gap:print([ALERT] 巡检日志超过一小时未更新脚本疑似挂起)return Falseprint([OK] 巡检进程存活静默属于正常状态)return True看门狗跑完结果是 OK日志每十分钟一条整整齐齐脚本活着而且每一条记录都是正常。我又顺手看了一眼看门狗自己的输出——它也正常说明盯着巡检的那双眼睛同样睁着。也就是说第三夜的零告警是真的——直播间这一夜真的什么都没出。那为什么偏偏这一夜这么稳。我对着日志往前翻了三天把三夜的记录排在一起看一直看到凌晨两点发现一个此前没留意的差别第三夜开播前我把夜场素材整体换了一遍把前两夜容易引发提问的那几段换成了KT板上挂着答案的内容。观众想问的画面里先说了。换句话说前两夜的告警一半不是故障是提问。卡顿是真异常可发货密度升高这类提示本质上是词库没接住的观众疑问。素材和画面信息调整之后疑问在源头就被答掉了巡检自然安静。这是这一夜教给我的好的值守不是告警处理得快是让告警没机会发生。收假早上七点半我做完了这一轮值守的末一件事把三夜的日志归档把看门狗脚本留在了值班机的启动项里。归档的文件夹我按日期建了三个头两夜的告警记录各附了一行处理备注第三夜的文件夹里只有一个空空的处理栏。下一轮值班的人不用再为零告警起疑——脚本替他盯着脚本。这三夜记下来其实是同一条经验的三种面目头一夜异常来的时候工具的价值是快第二夜规则变的时候人的价值是判断第三夜什么都没来的时候值守的价值是确认什么都没来是真的。自动化把前两件事做得越来越好第三件事暂时还得人来。早上八点直播间切回收假档。阳光从窗户进来照在还开着的值班机上屏幕上末一行日志停在七点五十OK一切正常。我把这次整夜的安静写成了这篇记录——不是因为它有多惊险是因为它差点被我当成惊险。值守这行干久了会明白确认无事本身就是一件事。