Zabbix + Server酱:触发告警时把主机名、问题、严重级别推送到微信
效果:Zabbix 触发告警后,自动通过 Server酱 将告警详情推送到微信
前置条件
- 已有 Server酱 SendKey(30 秒获取教程)
- Zabbix 管理员权限(创建 Media type、配置 Action)
配置步骤
1. 创建 Webhook 告警媒介类型
进入 Alerts → Media types → Create media type,Type 选 Webhook,将以下 JavaScript 粘贴到 Script 编辑区:
try {
Zabbix.Log(4, '[Server酱] start');
var req = new HttpRequest();
req.addHeader('Content-Type: application/json');
var body = JSON.stringify({
title: params.subject,
desp: params.message
});
var resp = req.post(
'https://sctapi.ftqq.com/' + params.sendkey + '.send',
body
);
Zabbix.Log(4, '[Server酱] response=' + resp);
var result = JSON.parse(resp);
if (result.code !== 0) {
throw 'Server酱返回错误: ' + resp;
}
return 'OK';
} catch (e) {
Zabbix.Log(2, '[Server酱] error=' + e);
throw e;
}
如果使用 Server酱³(SendKey 以 sctp 开头),将 URL 替换为
https://你的UID.push.ft07.com/send/你的SENDKEY.send,其中 UID 是 sctp 后的数字。
2. 配置参数
在 Parameters 区域添加以下三个参数:
sendkey:值填你的 SendKey,标记为 Secretsubject:值填 {ALERT.SUBJECT}message:值填 {ALERT.MESSAGE}
{ALERT.SUBJECT} 和 {ALERT.MESSAGE} 是 Zabbix 告警宏,分别映射到 Server酱 的 title 和 desp 参数。
3. 绑定用户媒介
进入 Users → 选用户 → Media,添加一条记录,Type 选刚创建的 Webhook 媒介类型,保存。
4. 配置告警动作
在 Actions 里配置触发条件,将告警发送给上一步绑定的用户。确认媒介类型为刚创建的 Server酱 Webhook。
常见问题
每天能发多少条告警?
免费额度每天 5 条,订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。
告警消息没收到怎么办?
先在 Zabbix 中确认告警动作已触发且媒介发送状态正常,再检查 Server酱 侧——常见原因排查见常见问题与排查。
触发频率太高会被限制吗?
Server酱 每分钟最多 50 条请求。告警风暴场景建议在 Actions 中做适当聚合或延迟。
如何同时推送到钉钉或飞书群?
配置方式见通道说明。