zabbix绑定钉钉进行通知,网页端添加JavaScript,无脑式操作

文章目录


前言

随着人工智能的不断发展,zabbix监控这门技术也越来越重要,一下进入正题。


一、编辑zabbix告警JavaScript脚本

没有没接可以新增媒介

其中URL是你的机器人地址

二、代码如下:

c 复制代码
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;
}

编辑消息模板,自定义markdown格式的消息。

代码如下:

c 复制代码
问题模板
 
主题: 发生故障: {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}
                        
bash 复制代码
问题恢复模板
 
主题:故障已恢复 {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}
                        


我这没有设置恢复操作,应该要设置的,这只是我自己的配置


加入媒介就可以了


总结

以上就是今天要讲的内容,本文仅仅简单介绍了zabbix对钉钉通知的使用。

相关推荐
幸运小猿10 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
速易达网络12 小时前
ECharts 图表制作完全指南:从零到可视化实战
前端·javascript·echarts
paopaokaka_luck13 小时前
灾害应急物资管理系统(AI应急助手、Echarts可视化数据看板、捐赠入库联动、 物资全流程管理、库存变动追溯、灾情资讯与互动反馈、物资发放公示)
java·前端·javascript·spring boot·mysql·tomcat·echarts
kyriewen13 小时前
我验了 7 种 sticky 失效说法:3 种根本不成立
前端·javascript·程序员
我命由我1234515 小时前
Python 实用操作 - 文件操作(打开与关闭文件、读取文件、文件写入)
java·开发语言·前端·javascript·数据库·python·java-ee
TST-魚爷15 小时前
小型视频会议室音频踩坑:一体化拾音扩音方案实测分享(易视讯)
stm32·电脑·音视频·钉钉·腾讯会议·zoom会议
Momo__15 小时前
你写的 import 重试,从来没生效过
前端·javascript·typescript
tryCbest16 小时前
Vue3——第 11 篇:组合式 API(上)——setup 与响应式 API 深度解析
前端·javascript·vue.js
tryCbest17 小时前
Vue3——第 13 篇:计算属性与侦听器——computed 与 watch 的进化
前端·javascript·vue.js
用户1179536547817 小时前
企业团队编程软件怎么选:AI编程工具的协作与落地能力对比
javascript