文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Zabbix 5.2 由浅入深之钉钉机器人告警(webhook方式)

2024-12-03 04:34

关注

前面有提到通过python的方式告警,但由于每个人的环境都不一样,容易出现格式缩进等一些问题,而实际上钉钉机器人也是通过webhook的方式来实现的,Zabbix 5.2版本原生支持webhook的方式去推送事件。

首先贴下代码,下面的title部分记得修改为自己的

  1. var dingding = { 
  2.   keynull
  3.   message: null
  4.   msgtype: "markdown"
  5.   proxy: null
  6. sendMessage: function () { 
  7.     var params = { 
  8.        msgtype: dingding.msgtype, 
  9.        markdown: { 
  10.           title: "IT小白Kasar",(注意这里可以修改) 
  11.           text: dingding.message 
  12.         }, 
  13.       }, 
  14.       data, 
  15.       response, 
  16.       request = new CurlHttpRequest(), 
  17.       url = 
  18.         "https://oapi.dingtalk.com/robot/send?access_token=" + 
  19.         dingding.key
  20.     if (dingding.proxy) { 
  21.       request.setProxy(dingding.proxy); 
  22.     } 
  23.     request.AddHeader("Content-Type: application/json"); 
  24.     data = JSON.stringify(params); 
  25.     // Remove replace() function if you want to see the exposed key in the log file. 
  26.     Zabbix.Log( 
  27.       4, 
  28.       "[dingding Webhook] URL: " + url.replace(dingding.key""
  29.     ); 
  30.     Zabbix.Log(4, "[dingding Webhook] params: " + data); 
  31.     response = request.Post(url, data); 
  32.     Zabbix.Log(4, "[dingding Webhook] HTTP code: " + request.Status()); 
  33.     try { 
  34.       response = JSON.parse(response); 
  35.     } catch (error) { 
  36.       response = null
  37.     } 
  38.     if (request.Status() !== 200 || response.errcode !== 0) { 
  39.       if (typeof response.errmsg === "string") { 
  40.         throw response.errmsg; 
  41.       } else { 
  42.         throw "Unknown error. Check debug log for more information."
  43.       } 
  44.     } 
  45.   }, 
  46. }; 
  47. try { 
  48.   var params = JSON.parse(value); 
  49.   if (typeof params.Key === "undefined") { 
  50.     throw 'Incorrect value is given for parameter "Key": parameter is missing'
  51.   } 
  52.   dingding.key = params.Key
  53.   if (params.HTTPProxy) { 
  54.     dingding.proxy = params.HTTPProxy; 
  55.   } 
  56.   dingding.to = params.To
  57.   dingding.message = params.Subject + "\n" + params.Message; 
  58.   dingding.sendMessage(); 
  59.   return "OK"
  60. } catch (error) { 
  61.   Zabbix.Log(4, "[dingding Webhook] notification failed: " + error); 
  62.   throw "Sending failed: " + error + "."

 这个脚本贴在下图的这个位置,在报警媒介类型下

需要将key部分修改为自己的机器人的token,主要是下图里的"access_token="的一串字符串。

添加完成后,我们就可以测试下

然后添加下默认告警媒介

最终效果

未美化效果

写在最后

这种方式就摆脱了格式问题,可以实现开箱即用,而且无需装额外的环境即可实现,快去试试吧。最后感谢官方的模板,有借鉴部分。

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯