站点运营

站点运营:可用性监控與告警自查,別等訪客来告诉你站点打不開

故障往往不是從监控發現的,而是從訪客反馈開始的。本文围绕站点可用性监控與告警,讲清楚该监控哪些地址、探测点為什么不能只放在本机、告警阈值與通知渠道怎么設定,以及 5xx 對抓取的間接影响,並附一份可执行的自查清單與常见誤区。

站点运营

站点运营:可用性监控與告警自查,別等訪客来告诉你站点打不開

站点运营里有一類問题最难處理:你發現站点打不開,不是從监控,而是從訪客留言或客服轉達。等有人来告诉你,故障已经持續了一段時間。可用性监控和告警的意义,就是把這個“發現”的動作從人換成机器,让問题在被更多人碰到之前先被记錄下来。

先确定要监控哪些地址

只监控首頁,只能說明服務器還在,不能說明站点可用。真正值得盯的是用戶和蜘蛛都會经過的那几條路径。

  • 首頁,以及導航或投放中最重要的落地頁。
  • 主要栏目列表頁,以及詳情頁模板各挑一個代表 URL。
  • 登入、提交表單、站内搜尋等有交互的入口,至少驗證返回狀態和關键文本。
  • robots.txt 與 XML 站点地图地址,它們出错會直接影响抓取。

挑選时尽量避開每次都會變化的内容頁,選相對稳定的地址。否則监控结果里會混進正常的 404,判断故障时反而更費劲。

從站外探测,而不是只看本机

在本机跑一個脚本去請求本机,服務器一宕机,脚本也跟着停了,你收不到任何消息。监控节点至少要放在站点之外,最好有两三個不同位置,避免單個探测点的網絡抖動被当成站点故障。

探测内容也不只是狀態碼。可以顺带检查頁面里是否出現预期的标题或某段關键文本,防止出現“返回 200 但内容其實是错誤頁”的情况。响應時間也值得记錄,它能帮你在頁面變慢但還没出错时提前發現压力。

告警怎么設定才不吵

告警太频繁,值班的人會開始忽略它,這比没有告警更糟。

  • 設定连續失敗阈值,比如连續三次探测失敗再通知,過滤掉偶發抖動。
  • 区分級別:宕机走电话或即时消息,响應變慢走邮件或工作群。
  • 通知渠道要有人真正在看,不要發到一個没人回复的群。
  • 同一問题在恢复前不要反复轰炸,做告警合並。

5xx 與抓取的關系

蜘蛛来訪时遇到 5xx,通常不會立刻把頁面從索引里删掉,但如果同一批地址持續返回错誤,抓取频率會下降,新内容被發現的時間也會往後拖。反過来,如果只是個別頁面报错,影响通常有限。所以监控里最好把 5xx 單獨統計出来,看它是集中在一段時間,還是零星分布。

要注意的是,不要為了“让蜘蛛看到正常頁面”而把错誤頁也返回 200。狀態碼必须和實际情况一致,否則後面排查問题會更难。

一份可执行的自查清單

  1. 列出五到十個监控地址,覆盖首頁、栏目、詳情、静態资源和 robots.txt。
  2. 確認探测点在站点外部,且不止一個位置。
  3. 检查告警通知的接收人,確認有人在值班时段能响應。
  4. 設定连續失敗阈值和静默期,避免單次抖動触發。
  5. 寫下收到告警後的處理步骤:先看什么、联系谁、要不要回滚。
  6. 每月回顾一次告警记錄,删掉長期誤报的規則,补上漏掉的地址。

常见誤区

只监控首頁、只用 ping 判断可用性、告警發出去没人認领,是三個最常见的坑。ping 通不代表 HTTP 正常,HTTP 200 也不代表頁面内容正确。另外,监控本身也會带来請求,如果地址選得太多、频率太高,反而會给服務器增加不必要的负担,選關键路径、拉開間隔就够了。

把它變成例行工作

可用性监控不需要一開始就很完整。先把首頁和两三個關键頁面接進来,跑上一两周,看告警是否准确,再逐步补充。真正有用的监控,是出問题时你能收到、收到後知道该做什么的那種,而不是仪表盘上好看的一排绿点。