这类问题我又碰上了一次。巡检脚本每天只请求首页和 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 一分钟内触发告警 巡检报告覆盖各模板类型 故障发现时间缩短到分钟级。
提醒一点。首页正常不代表站点正常 巡检样本一定要覆盖每一种模板 否则告警只是心理安慰。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
