数码知识屋
霓虹主题四 · 更硬核的阅读氛围

监控告警不触发?可能是这些地方出了问题

发布时间:2025-12-14 16:04:27 阅读:7 次

监控告警不触发?别急,先查这几块

前两天同事老李值班,凌晨三点被电话叫醒,说线上订单系统挂了。一查,CPU 直接飙到100%,但奇怪的是,监控平台一点动静没有。这下可炸锅了——明明配了阈值超过80%就发短信告警,怎么一声不吭?

这种情况其实不少见。监控系统看着稳如老狗,真出事却哑火,问题往往出在几个容易忽略的细节上。

1. 规则写错了,告警当然不会来

最常见的就是告警规则配置错误。比如你想监控服务器内存使用率,写了个条件:当 usage > 80 触发。但实际采集的数据字段叫 mem_usage,结果条件永远不成立。

还有些人复制别人的模板,没改通知方式。规则是设了,但接收人填的是离职员工的邮箱,或者 webhook 地址指向了一个已经停用的钉钉群。

2. 数据根本没上来,告警自然没得发

告警依赖数据采集。如果 agent 挂了、网络不通、防火墙拦了端口,数据断了,再灵敏的规则也白搭。

曾经有个案例,一台新上线的数据库服务器忘了装 zabbix-agent,监控面板显示“无数据”,但没人注意。连续一周 CPU 跑满,告警始终沉默。后来才发现,不是告警不触发,而是它压根不知道这台机器的存在。

3. 阈值设置太激进或太保守

有人怕误报,把 CPU 告警设成95%以上持续5分钟才通知。可现实是,服务一出问题,CPU 瞬间拉满,两分钟后自动重启恢复。这个“瞬间”没达到持续时间,告警就被过滤掉了。

反过来,有些人设得太敏感,1分钟内请求失败率超10%就报警。结果每次发布版本都响一次,大家习惯了当“狼来了”,真有问题也麻木了。

4. 告警风暴熔断机制反向背锅

有些系统自带防刷功能,比如一个小时内同类型告警只发一次。听起来合理,但遇上持续性故障,第一次通知后,后续完全静音,值班的人还以为问题解决了。

更坑的是,某些平台默认开启“告警抑制”,A 服务挂了引发 B、C 连环告警,结果只显示一条,其他被归为“关联事件”,藏在二级页面里,没人会去翻。

5. 时间不同步也能导致告警失效

服务器时间和监控服务器差了十分钟,可能导致告警判断的时间窗口错位。比如你设的是“最近5分钟平均负载”,但两边时间对不上,采集的数据段和判断逻辑对不齐,条件始终不满足。

这种问题查起来特别费劲,因为所有配置看起来都没错,最后发现是 NTP 同步崩了。

6. 测试不能偷懒

新上一套监控,很多人配完就完事,从来不测试。正确的做法是:模拟一次真实故障,比如手动把某个服务 kill 掉,看会不会收到告警。

我们组现在有个规矩:任何新的告警规则上线,必须走一遍真实触发流程,截图留证,才算闭环。

一个简单的检查清单

遇到告警不响,可以按这个顺序快速排查:

  • 确认监控 agent 是否运行
  • 检查目标主机是否在监控列表中且状态为“活跃”
  • 查看最近是否有数据上报
  • 核对告警规则中的指标名称、阈值、持续时间
  • 确认通知渠道(邮件、短信、webhook)配置正确
  • 检查系统时间是否同步
  • 手动触发一次异常,观察日志和通知记录

监控不是设完就高枕无忧的事儿。它像家里的烟雾报警器,装了不代表永远有效。定期“按一下测试键”,才能确保关键时刻不掉链子。