Zabbix监视-使用企业微信web挂接警告和markdown格式
最终警报样式:
Markdown和text格式的优点:文本排版清晰,可以识别各种文本的颜色、大小等。
此方法使用Zabbix提供的webhook方法,不需要创建脚本文件。
Zabbix版本:Zabbix 5.2.3
一、创建企业微信聊天机器人
点聊天,右上角更多,输入名字,创建即可
二、新的警报媒体类型
名称任意,选择类型webhook
设置参数:
Message
{警报。MESSAGE}
Subject
{警报。SUBJECT}
土
{警报。SENDTO}
托肯
群组聊天机器人网络挂接地址密钥
托肯复制群聊机器人key=后面的文字。(用群聊机器人头像移动鼠标就可以看到。)
脚本(脚本参考网络的大神,不是我的原创):
Var Wechat={
令牌:空,
To:空,
Message:空,
Parse_mode: null、
SendMessage: function() {
Var params={
msgtype :“mark down”,
Chat_id: Wec、
Markdown: {
Conten
},
disable _ web _ page _ preview 3360 true、
Disable_notification: false
},
数据,
响应,
Request=new CurlHttpRequest(),
URL='韦肯;
If!==空){
params[' parse _ mode ']=Wec;
}
Reque(“内容类型:应用程序/JSON”);
data=JSON . stringify(params);
//remove replace()function if you want to see the
exposed token in the log file. Zabbix.Log(4, '[Wechat Webhook] URL: ' + url.replace(Wecken, '<TOKEN>')); Zabbix.Log(4, '[Wechat Webhook] params: ' + data); response = reque(url, data); Zabbix.Log(4, '[Wechat Webhook] HTTP code: ' + reque()); Zabbix.Log(4, '[Wechat Webhook] response: ' + response); try { response = JSON.parse(response); } catch (error) { response = null; Zabbix.Log(4, '[Wechat Webhook] response parse error'); } if (reque() !== 200 || re !== 0 || re !== 'ok') { if (typeof re === 'string') { throw re; } else { throw 'Unknown error. Check debug log for more information.' } } } } try { var params = JSON.parse(value); if (typeof === 'undefined') { throw 'Incorrect value is given for parameter "Token": parameter is missing'; } Wecken = ; if (['Markdown', 'HTML', 'MarkdownV2'].indexO) !== -1) { Wec = ; } Wec = ; Wec = + '\n' + ; Wec(); return 'OK'; } catch (error) { Zabbix.Log(4, '[Wechat Webhook] notification failed: ' + error); throw 'Sending failed: ' + error + '.'; }添加报警模板:
模板类型选择问题,内容如下,根据个人喜好配置,也可直接复制下方内容。
企业微信markdown参考手册地址:群机器人配置说明 - 接口文档 - 企业微信开发者中心
主题:
### 【监控告警】主机: <font color="warning">{HOST.NAME}</font> IP地址:<font color="warning">{HOST.IP}</font>
消息:
>主机名称:**<font color="comment">{HOST.NAME}</font>**
>主机IP:<font color="comment">{HOST.IP}</font>
>告警时间:<font color="comment">{EVENT.DATE}-{EVENT.TIME}</font>
>问题名称:<font color="warning">{EVENT.NAME}</font>
>问题详情:<font color="comment">{ITEM.NAME}:{ITEM.VALUE}</font>
>目前状态:<font color="comment">{TRIGGER.STATUS}</font>
>操作数据:<font color="comment">{EVENT.OPDATA}</font>
我只配置了问题发送,如需配置问题解决消息,也可同样在这里添加,类型选“问题恢复”,这里我没有加markdown格式的参数配置。
三、zabbix添加动作
名称:随意命名
条件:添加与下图一致,表示当告警等级大于“警告”才会触发这个动作。
添加操作:
操作类型:发送消息
步骤和持续时间:可与下方图片设置一致。
发送的用户:我这里添加到admin用户。
仅送到:选择已创建好的报警媒介webhook
条件:与下方一致
想要具体知道步骤和持续时间含义,请阅读下方图片内容释义(转发):
需要恢复操作和更新操作的消息提醒,可自行添加,这里我没有添加了。
四、设置用户
进入用户admin
选择报警媒介,类型选webhook
收件人:随意名字就行
其他信息与下方图片内容一致
设置完成,消息告警就接受到了。
添加报警媒介时可以测试能否发送: