站点运营

站点运营:可用性监控与告警自查,别等访客告诉你站点打不开

站点出故障时,最怕的不是修不好,而是没人知道。这篇文章整理了一套最小可用的可用性监控与告警自查思路:监控哪些项目、状态码与内容校验怎么配合、告警分级怎么送到人手里、怎样避免误报把告警变成噪音,以及告警之外的定期巡检清单。

站点运营

站点运营:可用性监控与告警自查,别等访客告诉你站点打不开

站点出问题,最尴尬的情况往往不是“修不好”,而是“没人知道”。访客打不开页面只会默默关掉标签,搜索引擎蜘蛛抓取失败也只在日志里留一行记录。等到有人来反馈,可能已经过去几个小时甚至几天。把可用性监控和告警纳入日常运营,能把发现故障的时间从“天”压到“分钟”。

先想清楚:哪些故障必须第一时间知道

不是所有异常都值得半夜叫你起来。先把优先级排出来,通常这几类属于必须立刻感知的:

  • 首页以及几个核心栏目页无法访问;
  • 服务器返回 5xx 的比例明显升高;
  • 响应时间从几百毫秒涨到几秒;
  • HTTPS 证书即将到期或已经失效;
  • 域名解析异常,访问被指向错误地址;
  • 磁盘写满导致日志或数据无法写入;
  • 数据库连接失败,页面只输出报错信息。

把这几点写下来,后面的监控配置才有依据,不然很容易买一堆服务却没人看。

从最小可用集合开始,而不是先搞大屏

很多团队一开始就想做可视化大屏,结果监控项配了一堆,告警渠道却没接通。更务实的做法是先跑通一条链路:一台便宜的探针或第三方监控服务,定时请求几个关键 URL,记录 HTTP 状态码、响应时间,并做一次内容校验。这条链路跑顺了,再逐步加项。

状态码监控要看什么

  • 连续两次失败再告警,避免偶发网络抖动触发误报;
  • 4xx 和 5xx 分开统计,前者多半是链接问题,后者才是服务问题;
  • 关注趋势而不只是单点,比如 5xx 从每天几条变成每小时几条。

内容校验比状态码更接近真实体验

有些故障页面会返回 200,但正文区域变成了“系统维护中”,或者干脆把数据库报错信息输出到页面上。只监控状态码会完全看不到这类问题。做法很简单:在监控请求里检查页面是否包含某个固定关键词,比如站点名称或主标题,找不到就告警。

告警要送到人真正会看的地方

邮件是最容易漏的渠道。比较稳妥的组合是:聊天工具机器人负责日常通知,重要故障再通过短信或电话触达。可以按影响面分三级:

  • P1:核心页面不可访问、大面积 5xx,立即用电话或短信叫人;
  • P2:单一路径异常、响应时间明显劣化,走聊天工具;
  • P3:证书临期、磁盘使用率偏高,汇总成日报或周报。

别让告警变成“狼来了”

告警最大的敌人是噪音。几个常见做法:设置合理的重试次数和静默期,同一个故障在恢复前只提醒一次;计划内的维护、迁移、压测提前挂上维护窗口;定期回看那些“告警了但没事”的记录,把误报规则调掉。一个长期被忽略的告警群,等于没有监控。

告警之外,还需要一份定期巡检清单

监控只能覆盖你想到的路径,定期巡检是兜底。下面这份清单可以按自己的节奏执行:

  1. 每周看一眼可用率与平均响应时间的趋势,别只看当天;
  2. 每月确认一遍证书到期时间,尤其是自动续期是否真的生效;
  3. 每月确认备份任务在跑,并抽一次实际恢复;
  4. 每季度模拟一次故障,验证告警能否送达、多久送达;
  5. 每次故障记录时间、影响范围、原因和处理动作,方便复盘。

这些动作单独看都很小,但坚持下来,站点出问题时你手里就有历史数据可对比,而不是凭感觉猜。

日志留多久,也影响你能查多深

服务器访问日志和错误日志建议做轮转,保留一段时间用于复盘。留得太短,故障过后查不到证据;留得太长,又容易把磁盘写满。这里可以结合站点规模定一个折中值,比如访问日志保留两周到一个月,错误日志保留更久一些,并监控磁盘使用率。

监控和告警不会让站点不出故障,它的价值在于把“被动挨骂”变成“主动处理”。先保证核心页面有人盯着,再慢慢补齐其它监控项,比一次性堆满配置更现实。