伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

Zabbix 5.0 企业微信 WebHook 实现故障文本告警

来源:本站原创 浏览:54次 时间:2023-04-09




Zabbix 5.0对于告警(报警媒介)进行了扩展和优化,可以直接支持 WebHook 类型的报警媒介。我们再开发企业微信机器人可以直接通过 JavaScript 语言编写脚本,因为得到了 Zabbix 的原生支持,告警脚本通用性强且更加灵活。本文将分享如何通过 Zabbix 报警媒介在企业微信发送告警信息。

一、注册企业微信机器人


首先需要先在自己的企业微信群里创建一个机器人,并获取其 WebHook 地址。右击群聊天卡片,添加群机器人。


为你的机器人起一个名字,点击确定,获得一个类似下图的 WebHook 地址。注意,这个 WebHook 地址非常重要,请不要泄露,否则他人可以通过这个地址给你捣乱。把这个地址复制出来,后面需要用到。



二、创建告警媒介

  

登录 Zabbix,依次选择“管理”、“报警媒介类型”、“创建媒体类型”。名称随意,只要能起到一个标识作用即可。媒介类型选择WebHook,参数按下表填写。



这里的 Key 就是刚刚注册机器人时候生成的 WebHook 地址末尾的 Key,例如你的地址是https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=574c6d4e-544c-4baf-ae9a-b935dbc1be46, 则这里你需要填写574c6d4e-544c-4baf-ae9a-b935dbc1be46。
  

脚本可以参考如下的代码段。直接复制到脚本代码框中即可。

  var Qiyeweixin = {  key: null,  message: null,  msgtype: "markdown",  proxy: null,  sendMessage: function () {    var params = {        msgtype: Qiyeweixin.msgtype,        markdown: {          content: Qiyeweixin.message,        },      },      data,      response,      request = new CurlHttpRequest(),      url =        "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=" +        Qiyeweixin.key;    if (Qiyeweixin.proxy) {      request.setProxy(Qiyeweixin.proxy);    }    request.AddHeader("Content-Type: application/json");    data = JSON.stringify(params);    // Remove replace() function if you want to see the exposed key in the log file.    Zabbix.Log(      4,      "[Qiyeweixin Webhook] URL: " + url.replace(Qiyeweixin.key, "<BOT KEY>")    );    Zabbix.Log(4, "[Qiyeweixin Webhook] params: " + data);    response = request.Post(url, data);    Zabbix.Log(4, "[Qiyeweixin Webhook] HTTP code: " + request.Status());    try {      response = JSON.parse(response);    } catch (error) {      response = null;    }    if (request.Status() !== 200 || response.errcode !== 0) {      if (typeof response.errmsg === "string") {        throw response.errmsg;      } else {        throw "Unknown error. Check debug log for more information.";      }    }  },};try {  var params = JSON.parse(value);  if (typeof params.Key === "undefined") {    throw 'Incorrect value is given for parameter "Key": parameter is missing';  }  Qiyeweixin.key = params.Key;  if (params.HTTPProxy) {    Qiyeweixin.proxy = params.HTTPProxy;  }  Qiyeweixin.to = params.To;  Qiyeweixin.message = params.Subject + "\n" + params.Message;  Qiyeweixin.sendMessage();  return "OK";} catch (error) {  Zabbix.Log(4, "[Qiyeweixin Webhook] notification failed: " + error);  throw "Sending failed: " + error + ".";}```  超时给 10s 即可。最后配置完成后,应该是如下图的样子。  ![](https://s4.51cto.com/images/blog/202102/03/b5d08d86944010bb7dfb1d4b1d2338b3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)  创建消息模板。Zabbix 已经预制了一些模版可以直接拿来用,也可以自定义。  ![](https://s4.51cto.com/images/blog/202102/03/6fa0260c40624b55b554d05cf8c7920e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)  在模板中是支持 markdown 语法的。目前支持的 markdown 语法是如下的子集。这是由企业微信机器人开发文档定义的。  - 标题 (支持 1 至 6 级标题,注意#与文字中间要有空格)- 加粗- 链接- 行内代码段(不支持跨行)- 引用- 字体颜色(有三种内置颜色)  ## 三、测试告警媒介  编辑完成,点击“添加”,回到报警媒介类型页面。找到刚刚添加的报警媒介,在动作栏下面对应位置点击“测试”。  ![](https://s4.51cto.com/images/blog/202102/03/ff61abbcfb665636aab4e4c224036987.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)  在“Test media type”对话框中,可以直接点击“测试”,也可以自定义通知的主题和内容,如图。  ![](https://s4.51cto.com/images/blog/202102/03/7068d561f59a6758ce5ca9111aab3a44.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)  测试成功,在 Zabbix 端会提示“Media type test successful.”,同时在企业微信里也会收到刚刚发出来的测试消息。  ![](https://s4.51cto.com/images/blog/202102/03/842809ce2f92f7460a7792ba44f973fb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)  ## 四、配置通知消息  到现在,就已经成功开发了一个企业微信告警机器人,现在我们要把他配置到通知消息里。首先对用户配置告警媒介。如下图,你也可以选择启动机器人的时间段,比如我要 7x24 小时盯着网络设备,这里直接 007 就好了。  ![](https://s4.51cto.com/images/blog/202102/03/85d59615b9305d502921e5d10eb5bdf9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)  创建一个动作,发送消息给某些用户,并仅送到“Qiyeweixin”这个告警媒介。  ![](https://s4.51cto.com/images/blog/202102/03/0c59caa04f610d8c5f07c6029c707044.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)  这样,当有设备触发器被触发产生告警时,企业微信机器人就会给你发消息了。  ![](https://s4.51cto.com/images/blog/202102/03/1464565db825ef449ad1a940fb31105c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net