2026年5月26日 · 2 分钟阅读 · 176 次浏览

节点健康监控体系的设计:从被动告警到主动探针

被动告警的局限性

依靠用户投诉或错误日志告警的被动监控,通常比实际故障晚 5~15 分钟。在这段时间里,受影响的用户已经开始流失或转向竞品。主动探针是将这个窗口压缩到分钟级甚至秒级的关键。

探针类型与检测维度

  • ICMP Ping:检测网络层可达性,开销最低,但无法反映应用层状态
  • TCP 连接探针:验证端口监听,能发现服务进程崩溃
  • HTTP(S) 探针:模拟真实请求,验证端到端可用性
  • 协议层握手探针:完成完整的 VPN 握手,最接近真实用户体验

探针部署架构

探针服务应该部署在与节点物理位置不同的地点。从同一机房探测同一机房,无法发现上游链路问题。理想的架构是:

  1. 在多个地理位置部署轻量探针服务
  2. 每个探针服务同时探测所有节点
  3. 多地结果取最大值作为"全球可达性"指标
  4. 单地探测失败但其他地正常 → 说明是区域性链路问题

告警梯度设计

不是所有异常都应该直接 PagerDuty 打电话。合理的梯度:

  • 延迟升高 20%:记录,暂不告警
  • 连续 2 次探测失败:降权,同时发 Slack 通知
  • 连续 5 次探测失败:自动下线节点,触发 PagerDuty

健康监控的目标不是"知道节点挂了",而是"在用户感知之前就修好"。