Skip to content

监控与告警收敛

监控的目标不是把所有信号都收上来,而是让真正重要的问题能被及时看到。告警如果太多,最后结果往往不是“更安全”,而是“大家都开始忽略它”。

背景

很多系统初期都会经历一个阶段:先把能想到的指标都接进来,先把告警规则都开起来。短期看信息很多,长期看则会变成噪声来源。

这次收敛的目标是:

  • 降低无效告警
  • 保留关键链路
  • 明确告警责任边界
  • 让排障路径更清楚

先看指标

监控系统一般不缺数据,缺的是解释这些数据的上下文。因此首先要确认:

  • 哪些指标是业务关键指标
  • 哪些指标只是辅助观察
  • 哪些指标能直接反映故障
  • 哪些指标只适合作为趋势参考

例如:

  • CPU 和内存更适合做资源态势判断
  • 错误率、延迟和请求量更适合做服务健康判断
  • 容器重启、Pod 不可用更适合做基础设施判断

如果所有指标都被放进同一级告警,最后很容易变成无人处理的告警列表。

告警分层

一个更稳妥的方式是把告警分层:

1. 紧急告警

需要立刻响应的问题,例如:

  • 核心入口不可用
  • 服务大面积报错
  • 节点或存储不可用

2. 提醒告警

不一定立即处理,但需要在工作时间关注的问题,例如:

  • 磁盘空间逐步下降
  • 资源使用率接近阈值
  • 某个实例长期处于不健康状态

3. 观察项

暂时不触发消息通知,只保留在面板上观察趋势。

这样做的好处是把“必须立即知道的事”和“以后再看也行的事”区分开来。

告警规则调整

告警规则收敛时,通常会做这些动作:

  • 提高明显过敏的阈值
  • 增加持续时间判断,避免抖动触发
  • 给短暂波动加缓冲窗口
  • 合并重复告警
  • 补充可读性更好的告警文案

一个好的告警文本,至少要让人知道:

  • 哪里出问题了
  • 大概严重到什么程度
  • 先看什么

如果告警只是一串技术字段,处理成本会高很多。

仪表盘整理

告警收敛通常要配合仪表盘整理。一个好的面板应该尽量做到:

  • 一眼看出系统是否健康
  • 一眼看出主要瓶颈在哪里
  • 一眼找到进一步排障的入口

通常可以按三层布局:

  1. 总览层
  2. 服务层
  3. 资源层

这样在收到告警时,可以更快从总览跳到具体服务,再往下看节点和容器。

复盘

监控不是越多越好,告警也不是越密越安全。真正有效的监控,是把注意力集中到少量高质量信号上。

这次收敛之后,系统最大的变化不是指标数量变少,而是“看到问题时知道下一步该看哪里”了。

Focused notes for DevOps, Linux and Kubernetes.