服务器半夜宕机,你还在睡觉;路由器掉线半小时,客户投诉已经刷屏——这类情况,其实一条监控告警短信就能提前拦住。
为什么短信比微信/邮件更靠谱?
微信可能被折叠、邮件容易被忽略,而短信几乎100%触达,且无需打开App。尤其在关键设备离线、带宽超限、Ping丢包率突增时,手机“叮”一声响,比啥都实在。
常见监控工具怎么接短信?
以Zabbix为例,它本身不发短信,但可通过短信网关中转。先在管理 → 报警媒介类型里新增一个“SMS”,类型选“Script”,脚本名填send_sms.sh:
#!/bin/bash
PHONE=$1
MESSAGE=$2
echo "$MESSAGE" | curl -X POST https://api.sms-gateway.cn/v1/send \
-H "Authorization: Bearer your_api_key" \
-d "phone=$PHONE" \
-d "content=$MESSAGE"保存后,在用户媒体里绑定手机号,再给触发器配上这个媒介——下次CPU飙到95%,手机立马收到:“[ALERT] web-server CPU usage > 90%”。
没用Zabbix?试试轻量方案
家里NAS或小型办公路由,用OpenWrt自带的monit也能搞定。编辑/etc/monit/conf.d/network.conf:
check host main-router with address 192.168.1.1
if failed ping then exec "/usr/bin/logger 'Router down'; /usr/bin/sms-send -n 138****1234 '【告警】主路由离线'"记得提前装好sms-tools包,并配置好USB短信猫或云短信API。
几个容易踩的坑
• 短信模板被运营商拒审:避免“免费”“点击领取”等词,改用“【智用指南】服务器负载异常”这类中性抬头;
• 同一号码1分钟内重复发送被限流:在告警策略里加“恢复通知+冷却时间”,比如“故障已恢复”发完,下条同类型告警至少间隔5分钟;
• 运营商屏蔽长链接:如果告警里带URL,建议用短链服务(如t.cn)或只发IP+端口,例如“192.168.1.100:3000”。
试过就知道,一条能准时到账的监控告警短信,不是锦上添花,是真省心。