服务器宕机紧急预警:Zabbix监控如何接多通道通知 服务器宕机意味着业务完全不可用,是运维场景中优先级极高的告警。Zabbix自带的邮件和站内通知在夜间或节假日经常被忽略,导致故障窗口被拉长。互亿无线预警通知提供Zabbix可直接调用的H…
服务器宕机紧急预警:Zabbix监控如何接多通道通知
服务器宕机意味着业务完全不可用,是运维场景中优先级极高的告警。Zabbix自带的邮件和站内通知在夜间或节假日经常被忽略,导致故障窗口被拉长。互亿无线预警通知提供Zabbix可直接调用的HTTP接口,在宕机发生时通过语音+闪信多通道强提醒值班人员,缩短故障发现时间。
宕机预警的触发与通知流程
Zabbix通过ICMP ping或端口探测判断主机是否存活,连续3次探测失败即触发宕机事件;事件触发后Zabbix执行自定义脚本,脚本组装主机名与宕机时间后调用互亿无线预警接口,先发短信记录事件,再发起语音电话强提醒。
Zabbix接入多通道宕机预警的步骤
- 在Zabbix控制台创建"主机存活"触发器,检测icmp.last或tcp端口不可达持续1分钟。
- 在服务器上放置告警脚本,脚本接收Zabbix传入的主机名与告警等级参数。
- 脚本内调用互亿无线短信接口与语音接口,按critical等级同时下发两个通道。
- 在Zabbix Media Type中配置Script类型,把脚本路径与参数填好,并绑定到值班用户组。
#!/usr/bin/env python3
import sys, requests
host = sys.argv[1]
for phone in ["13800000001", "13800000002"]:
requests.post("https://api.ihuyi.com/sms/Submit.json", data={
"account": "APIID", "password": "APIKEY", "mobile": phone,
"content": f"【宕机告警】主机{host}已失联"})
requests.post("https://api.ihuyi.com/voice/vm", data={
"account": "APIID", "password": "APIKEY", "mobile": phone,
"content": f"服务器{host}宕机,请立即处理"})
宕机紧急预警的注意事项
- 探测间隔建议设为10-30秒,连续3次失败再告警,避免网络抖动误报。
- 宕机属于P0级事件,建议同时通知值班工程师与值班主管,形成二级升级。
- 语音播报内容简短直接,包含主机名与"立即处理"指令,不要长篇解释。
- 接口支持HTTPS加密与APIID/APIKEY双重认证,脚本中密钥建议从配置文件读取。
进阶用法:宕机事件的二级升级与回呼确认
宕机属于P0事件,单次呼叫很可能因为值班人员没听到铃声而错过。建议把呼叫设计成升级链:先打给一线工程师,3分钟未接听自动呼叫二线主管,再3分钟未接听呼叫值班经理。每通电话都播报主机名与失联时间,接听后系统记录通话时长,作为响应时效的考核依据。
除了主动呼叫,业务侧还应在脚本里处理接口异常:网络抖动导致提交失败时要重试,连续失败要把事件落到本地队列,待网络恢复后补发,避免告警链路本身成为单点。脚本密钥从配置文件或环境变量读取,不要硬编码在脚本里。
- 宕机事件同时通知一线与主管,形成双人知晓,避免单人漏接。
- 脚本内做提交重试与本地落队,防止告警接口抖动丢消息。
- 主机名建议使用业务可读别名,语音播报时值班人员一听就懂。
import time
def call_with_retry(phone, content, retries=3):
for _ in range(retries):
try:
r = requests.post("https://api.ihuyi.com/voice/vm", timeout=5, data={
"account": "APIID", "password": "APIKEY",
"mobile": phone, "content": content})
if r.json().get("code") == 2:
return True
except requests.RequestException:
time.sleep(2)
return False
互亿无线提供HTTPS加密与APIID/APIKEY双重认证,告警链路传输安全有保障。更多参数可参考语音接口文档。
从Zabbix到多通道预警的搭建并不复杂,核心是把监控事件与电话强提醒打通。互亿无线提供免费技术支持协助联调,新用户可注册免费试用。