zabbix6.0 配置告警媒介
一、简介
1.1. zabbix6.0的告警媒介,提供了javascript脚本,方便了配置,本文针对这个配置进行了完善
二、内容
2.1. 创建一个企业微信的应用
注册一个企业微信(不需要企业信息,根据界面要求注册即可)–》进去企业微信–》点击“应用与小程序”–》点击“创建应用”
创建完毕后,在企业微信查看刚刚创建的应用的“AgentId”及“Secret”,点击可见范围的“账号”,查看账号的简写,如Zhanghao;然后去“我的企业”查看“企业ID”
2.2. 新建一个告警媒介
步骤是:zabbix界面–》管理–》媒介–》“创建媒介类型”
名称 | 内容 | |
---|---|---|
名称 | 告警发送到企业微信的应用中 | |
类型 | 选择WebHook | |
参数 | agentid | 填写企业微信的agentid |
appsecret | 填写企业微信的secret | |
corpid | 填写企业微信的企业ID | |
message | {ALERT.MESSAGE} | |
subject | {ALERT.SUBJECT} | |
touser | {ALERT.SENDTO} | |
脚本 | 填写下方的脚本内容 |
2.3. 使用告警媒介
zabbix界面–》用户–》选择一个用户,如admin–》选择“报警媒介”–>添加–》“类型”选择“刚刚船舰的微信”,收件人添加“查到的用户账号,如Zhanghao"。
2.4. 测试
zabbix界面–》管理–》媒介–》点击”测试“–》弹出测试页面,填写相关内容后,等待测试结果–》若失败,可以查看”测试页面“下的”打开日志“,查看里面报了什么错误。若成功,企业微信会收到信息。
三、脚本内容
try {// 打印日志Zabbix.log(4, '[ wechat webhook ] Started with params: ' + value);params = JSON.parse(value);req = new HttpRequest();req.addHeader('Content-Type: application/json');// 获取tokentoken_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + params.corpid + '&corpsecret=' + params.appsecret;resp_token = req.post(token_url);accesstoken=JSON.parse(resp_token).access_tokenZabbix.log(4, '[ wechat webhook ] accesstoken: ' + accesstoken);// 发送消息msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstokentouser=params.touser;subject=params.subject;message=params.message;agentid=params.agentid;params={"touser": touser,"msgtype": "text","agentid": agentid,"text": {"content": message},"safe":0}resp = req.post(msgsend_url,JSON.stringify(params));Zabbix.log(4, '[ wechat webhook ] status: ' + resp);return "OK";
}
catch (error) {Zabbix.log(3, '[ wechat webhook ] error : ' + error);throw 'Failed with error: ' + error;
}
参考
- 企业微信的应用的创建参考:https://blog.csdn.net/jack_yangyj/article/details/86472013
- 企业微信发送消息参考:https://developer.work.weixin.qq.com/document/path/90236
- zabbix6的媒介的webhook的js脚本参考:https://www.zabbix.com/documentation/6.0/en/manual/config/notifications/media/webhook/webhook_examples
版本
- 2023-02-21 第一版