收到告警后,需要一份能直接照着查的处理手册,而不只是一张空白模板。下面以本站 WebsiteProbeFailed 为例整理 Runbook;描述的是处理流程,不声称已经人为制造线上故障。
告警是什么
probe_success{job="blackbox_http"} == 0 持续达到规则中的 for 时间后触发。先确认实际标签、实例与开始时间;它说明指定模块的探测失败,不直接说明 Nginx 已停止。Prometheus 与 Alertmanager 同机运行,整机故障仍需外部监测弥补。
第一轮:只读确认
systemctl status blackbox_exporter nginx php-fpm mysqld --no-pager
curl -fsSG --max-time 10 http://127.0.0.1:9115/probe \
--data-urlencode 'module=http_2xx' \
--data-urlencode 'target=https://yuanty.ltd/typecho/'
journalctl -u blackbox_exporter -u nginx --since '15 minutes ago' --no-pager模块名以实际配置为准。关注 probe_success、状态码与耗时;没有状态码可能尚未进入 HTTP 阶段。up 为 0 时先处理采集器或抓取链路,up 为 1 且 probe_success 为 0 时再查被测网站。
第二轮:按证据定位
DNS 失败查解析与来源;TLS 失败查域名、证书链、有效期及系统时间;502/504 查 Nginx 错误日志与上游;网站返回错误内容但状态 200 时,需检查应用日志和响应校验,不能只看状态码。
再用保持域名校验的本机请求区分内外链路:
curl --resolve yuanty.ltd:443:127.0.0.1 --max-time 10 \
https://yuanty.ltd/typecho/ -o /dev/null -sS -w '%{http_code}\n'本机成功而普通域名请求失败,继续查外部路径;两者都失败,结合本机日志排查。此命令不是公网用户体验证明。
恢复与升级
先保存报错和近期变更记录。若确认由刚刚发布的配置引起,恢复该次原配置,语法检查通过后按计划重载;不明确原因时不要反复重启数据库。出现数据损坏、备份不明、持续业务错误或权限越界时停止试错,保留证据并升级处理。
验收
原失败请求恢复、probe_success 为 1、规则恢复并收到恢复通知,分别记录。观察覆盖至少两个正常采集与评估周期,确认无反复波动。记录发现、定位、恢复时间及未解决事项,不能只写“重启好了”。
演练安排
只在隔离环境一次制造一个故障,事先准备恢复方法。不要在生产环境填满磁盘或停止数据库来验证一封邮件。测试环境、操作人、影响范围与结束验收都应明确。
内容复核与修订:2026-10-29。实验示例与本站运行记录分别说明;原始归档日期保留。
评论 (0)