实用网络站
白蓝主题五 · 清爽阅读
首页  > 服务器维护

监控告警短信:让服务器问题第一时间被发现

半夜三点,手机突然响了

你正睡得迷糊,床头的手机“嗡”地一震,接着又是一条。睁眼一看,不是推销也不是骚扰,而是两条来自服务监控系统的短信:

告警】web01-内存使用率92%!
【告警】db02-主从延迟超300秒!

虽然烦人,但你知道,这比第二天早上发现网站瘫痪要强得多。

为什么非要用短信?微信不行吗?

有人问,现在都用企业微信、钉钉、飞书,为啥还要发短信?关键就在“不可靠环境下的可达性”。

想象一下,公司内网断了,VPN连不上,钉钉收不到消息。这时候,手机只要有蜂窝信号,短信照样能收到。短信不依赖网络服务,也不吃流量,哪怕你在地铁隧道里,也能看到那条红色告警。

告警内容怎么写才不让人抓狂?

别整那些花里胡哨的模板。一条有效的监控告警短信应该直接说清三件事:谁出事、出了啥事、严重到什么程度。

比如这样就很好:

【紧急】app-srv-03 CPU持续超95% 超过5分钟

而这种就让人头疼:

系统检测到异常,请登录平台查看

等我登录?黄花菜都凉了。

别让短信变成“狼来了”

以前有个同事,设置了每台服务器每5分钟报一次CPU使用率。结果一到促销活动,几十台机器齐发短信,他一个晚上被叫醒七次。后来干脆把告警关了,再出事没人知道。

告警要有分级。普通预警可以走邮件或IM,只有P1级故障才触发短信。比如数据库宕机、核心服务无响应、磁盘空间低于10%,这些才值得半夜把你喊起来。

实际配置示例:Zabbix + 短信网关

很多企业用Zabbix做监控,对接短信其实不难。先申请一个短信API服务,然后在Zabbix的“媒介类型”里添加脚本。

比如调用curl发送POST请求:

curl -X POST https://api.sms-provider.com/send \
  -H "Content-Type: application/json" \
  -d '{"phone": "13800138000", "message": "【告警】$1 $2"}'

再在动作(Action)里设置触发条件,比如问题等级大于等于“高”,就发送短信给值班人员。

别忘了测试和轮班

有家公司配置完短信告警从来没测过。直到真出事,才发现号码填错了,整整两小时没人收到消息。

每月做一次模拟故障,发一条测试短信,确认能收到。同时建立值班表,确保每个人都知道什么时候该自己盯着手机。

小改进,大安心

加个短信告警,成本不高,可能一个月几十块钱短信费。但它能在关键时刻拉你一把。就像家里的烟雾报警器,平时安静得像不存在,可一旦响了,你就知道得立刻行动。

服务器也一样。一条简单的短信,可能是你避免背锅的最后一道防线。