外观
站点监控配置说明:可用性检测、告警通知与日志查看
约 1010 字
监控告警日志
本说明配置站点监控的三件事:对外可用性与证书有效期检测、异常时的告警通知、出问题后快速找到日志。目标是在用户反馈之前发现问题,并在 5 分钟内判断影响范围。
一、适用范围
- 适用:已上线且有固定域名的站点;具备一个外部可达、不依赖登录的健康检查地址;需要邮件或 webhook 通知值班人员。
- 不适用:尚未对外提供服务的内网测试环境;需要 APM 级链路追踪与代码级性能剖析;日志需长期留存并做安全审计的场景。
二、准备工作
| 项目 | 要求 | 检查方法 |
|---|---|---|
| 健康检查地址 | 返回 200 且不依赖登录 | curl -sS -o /dev/null -w '%{http_code}' https://example.com/healthz |
| 监控账号 | 可在监控平台新增检测项 | 能进入可用性检测页面 |
| 通知渠道 | 邮箱或 webhook 已可送达 | 手动触发测试消息能收到 |
| 值班信息 | 明确接收人与响应时限 | 与负责人在排班表中确认 |
| 服务器访问 | 可读 nginx 与应用日志 | sudo tail -n 5 /var/log/nginx/error.log |
| 时间基准 | NTP 已同步,日志时间一致 | timedatectl 中 synchronized 为 yes |
注意事项:
- 检测地址要独立于业务首页,避免改版导致误报;健康检查只校验依赖是否可用。
- 先确定告警阈值再开启检测,否则上线首日会产生大量噪声告警。
三、操作步骤
本节拆成三个子步骤,建议按顺序执行;每一步完成后先确认结果,再进入下一步。
3.1 可用性检测配置
新增 HTTP 检测与证书到期检测,并保留一个本机自检脚本做交叉验证。详见 3.1 可用性检测配置。
3.2 告警通知配置
按影响程度分级通知,配置静默规则并验证送达链路。详见 3.2 告警通知配置。
3.3 日志查看与告警演练
按时间窗口定位日志,并用一次停服演练确认告警真实可用。详见 3.3 日志查看与告警演练。
四、验证方法
- 在监控平台手动执行一次检测,预期状态为正常且响应时间有数值。
- 执行
curl -sS -o /dev/null -w 'code=%{http_code} time=%{time_total}\n' https://example.com/healthz,结果与平台量级一致。 - 临时执行
sudo systemctl stop nginx,等待一个检测周期,预期平台转为异常并收到告警。 - 恢复服务后一个周期内状态回到正常,告警记录中出现恢复通知。
五、常见问题
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 检测超时但站点可访问 | 检测节点到源站受限,或被 WAF 拦截 | 放通检测节点网段,或改检测静态小文件 |
| 告警未送达 | 通知渠道配置错误,或触发条件未满足 | 发送测试消息,核对阈值与静默规则 |
| 频繁误报 | 阈值过严或检测间隔过短 | 改为连续 2 至 3 次失败才告警 |
| 证书告警过早触发 | 到期提醒天数设置过大 | 调整为提前 30 天提醒、7 天内每日提醒 |
| 日志时间与告警不一致 | 服务器时区或 NTP 异常 | 校准时区与 NTP,统一日志时间格式 |
六、回滚与注意事项
- 回滚:删除新增的检测项与告警规则并保留历史记录;本机脚本从
/root/monitor.bak还原后禁用对应 timer。 - 注意:告警静默只用于计划内维护,且必须设置过期时间,避免长期静默掩盖真实故障。
- 注意:检测与告警属于变更项,修改后要更新值班文档,否则交接时会漏掉新规则。