这类问题我又碰上了一次。巡检脚本每天只请求首页和 sitemap 首页 200 就判定全站正常 结果 /p/ 详情模板因为缓存插件升级报 500 挂了六小时 首页一直正常 告警没响 用户投诉才发现

第一反应是「状态码告警阈值只盯首页」,验证下来不成立。

排查方向其实有限,先把可能性排一排。巡检样本只有首页 覆盖不到内页模板;没有按模板类型抽样;健康检查走的是静态页 不经过应用层。

先按模板类型各抽十条做巡检

python check.py --sample /p/ --n 10 --sample /doc/ --n 10

然后检查内页模板的实际返回码

curl -s -o /dev/null -w '%{http_code}\n' https://www.example.com/p/123

随后把 500 纳入告警

alert: http_status >= 500 for 1m

剩下的就是确认告警能触达值班人

python alert_test.py --channel oncall

恢复的判定其实很直接。内页 500 一分钟内触发告警 巡检报告覆盖各模板类型 故障发现时间缩短到分钟级。

提醒一点。首页正常不代表站点正常 巡检样本一定要覆盖每一种模板 否则告警只是心理安慰。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189