Zabbix 5.0 LTS 配置企业微信(Webhook)自动发送告警信息
正文
依据前面文章《Zabbix 5.0 LTS URL 健康监测》环境,实现企业微信(Webhook)自动发送告警信息。
一、创建企业微信机器人
-
先在自己的企业微信群里创建一个机器人,并获取其 WebHook 地址。右击群聊天卡片,添加群机器人。
获得一个类似下图的 WebHook 地址。注意,这个 WebHook 地址非常重要,请不要泄露。# key 的值是唯一的 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b55ed8ad-6765-4e8b-827c-xxxxxxxxxx
二、创建媒介
步骤:配置 -- 报警媒介类型 -- 创建媒介类型 -- 添加
脚本内容(固定样式)
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 + "."; }
三、创建动作
步骤:配置 -- 动作 -- 新的触发条件 -- 添加
Custom message
故障信息:{TRIGGER.STATUS} 服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID} 恢复信息:{EVENT.NAME} 服务器: {HOST.NAME}发生:{EVENT.NAME}故障恢复! 告警主机: {HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} 更新信息:{EVENT.NAME} 服务器: {HOST.NAME}发生:{EVENT.NAME}故障更新! 告警主机: {HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}
四、配置用户
验证结果
Web场景-- 步骤 -- 故意写错URL触发告警
********** 如果您认为这篇文章还不错或者有所收获,请点击右下角的【推荐】/【赞助】按钮,因为您的支持是我继续创作分享的最大动力! **********
作者:讲文张字
出处:https://www.cnblogs.com/zhangwencheng
版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接
出处:https://www.cnblogs.com/zhangwencheng
版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库