接上一篇,zabbix,网页端添加JavaScript脚本支持markdown格式的告警消息
在触发器的操作选项中,添加指定的用户和送到的媒介。
·
1、编辑zabbix告警JavaScript脚本
在告警-媒介中添加新媒介,媒介类型选择webhook,在脚本中输入js脚本代码。

代码如下:
var Dingding = {
params: {},
proxy: null,
setParams: function (params) {
if (typeof params !== 'object') {
return;
}
Dingding.params = params;
},
request: function () {
var data = {
msgtype: "markdown",
markdown: {
title: "zabbix监控通知",
text: Dingding.params.Message,
},
at: {
atUserIds: [Dingding.params.To],
isAtAll: false,
},
},
response,
url = Dingding.params.URL,
request = new HttpRequest();
request.addHeader('Content-Type: application/json');
if (typeof Dingding.HTTPProxy !== 'undefined' && Dingding.HTTPProxy !== '') {
request.setProxy(Dingding.HTTPProxy);
}
if (typeof data !== 'undefined') {
data = JSON.stringify(data);
}
Zabbix.Log(4, "[Dingding Webhook] message is: " + data);
response = request.post(url, data);
Zabbix.log(4, '[ Dingding Webhook ] Received response with status code ' +
request.getStatus() + '\n' + response);
if (response !== null) {
try {
response = JSON.parse(response);
}
catch (error) {
Zabbix.log(4, '[ Dingding Webhook ] Failed to parse response received from Dingding');
response = null;
}
}
if (request.getStatus() !== 200 || response.errcode !== 0) {
var message = 'Request failed with status code '+request.getStatus();
if (response !== null && typeof response.errmsg !== 'undefined') {
message += ': '+ JSON.stringify(response.errmsg) ;
}
throw message + '. Check debug log for more information.';
}
return response;
},
};
try {
var params = JSON.parse(value);
if (typeof params.URL !== 'undefined'
&& typeof params.To !== 'undefined'
&& typeof params.Message !== 'undefined') {
Zabbix.log(4, '[ Dingding Webhook ] webhookURL "' + params.URL +
'" sendto "'+ params.To )+'"';
}
else {
throw 'Missing parameter. URL, message, to parameter is required'
}
if (params.HTTPProxy) {
Dingding.proxy = params.HTTPProxy;
}
Dingding.setParams(params);
Dingding.request();
return 'OK';
}catch (error) {
Zabbix.log(3, '[ Dingding Webhook ] ERROR: ' + error);
throw 'Sending failed: ' + error;
}
添加参数:
Message {ALERT.MESSAGE}
To {ALERT.SENDTO}
URL 钉钉机器人地址
2、编辑消息模板,自定义markdown格式的消息。

消息模板如下:
问题模板
主题:发生故障: {EVENT.NAME}
消息:#### <font face='微软雅黑' color=#FF0000>【故障告警】 {EVENT.NAME}</font>
---------
- **发生时间**: {EVENT.DATE} {EVENT.TIME}
- **故障名称**:{EVENT.NAME}
- **相关主机**: {HOST.NAME}
- **故障级别**: {EVENT.SEVERITY}
- **故障详情**:{ITEM.NAME}:{ITEM.VALUE}
- **当前状态**:{TRIGGER.STATUS}:{ITEM.VALUE1}
- **Operational data**: {EVENT.OPDATA}
- **Original problem ID**: {EVENT.ID}
{TRIGGER.URL}
问题恢复模板
主题:故障已恢复 {EVENT.DURATION}: {EVENT.NAME}
消息:#### <b> <font face='微软雅黑' color=#008800><b>【告警恢复】</b>{EVENT.NAME}</font> </b>
---------
- **故障恢复时间**:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
- **故障名称**: {EVENT.NAME}
- **持续时间**: {EVENT.DURATION}
- **相关主机**: {HOST.NAME}
- **告警级别**: {EVENT.SEVERITY}
- **恢复详情**:{ITEM.NAME}:{ITEM.VALUE}
- **当前状态**:{TRIGGER.STATUS}:{ITEM.VALUE1}
- **Original problem ID**:{EVENT.ID}
{TRIGGER.URL}
效果示例:


3、绑定告警触发器动作

在触发器的操作选项中,添加指定的用户和送到的媒介。


4、在用户中绑定告警媒介

5、在告警-媒介中进行测试


魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)