依据前面文章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触发告警

Zabbix 5.0 LTS 配置企业微信(Webhook)自动发送告警信息的更多相关文章

  1. Zabbix4.0报警配置-企业微信报警

    一:前期准备 1.1:企业号注册 https://qy.weixin.qq.com/  微信调用接口说明 http://qydev.weixin.qq.com/wiki/index.php?title ...

  2. Zabbix 3.0 配置企业微信报警(注册---测试)

    一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...

  3. Prometheus(五):Prometheus+Alertmanager 配置企业微信报警

    此处默认已安装Prometheus服务,服务地址:192.168.56.200  一.设置企业微信 1.1.企业微信注册(已有企业微信账号请跳过) 企业微信注册地址:https://work.weix ...

  4. Zabbix 5.0 LTS版本的安装小结

    Zabbix 5.0 LTS版本的安装小结   1:准备Zabbix的服务器. 这里可能需要一台或多台服务器,视需求和资源而定.也可以将Zabbix_Server.MySQL.Zabbix Web等安 ...

  5. 部署Zabbix 6.0 LTS

    Blog:博客园 个人 本部署文档适用于CentOS 8.X/RHEL 8.X/Anolis OS 8.X/AlmaLinux 8.X. Zabbix 6.0 LTS于2022年2月15日发布,本次大 ...

  6. Zabbix 3.0 配置企业微信报警(配置zabbix-web)

    一.添加报警媒体类型 Name:自定义 Type:选择script Scripts name:填写脚本名称 Script parameters:脚本参数 --corpid=XXX --corpsecr ...

  7. zabbix配置企业微信报警

    +++++++++++++++++++++++++++++++++++++++++ 1. 工作中最长使用的就是微信,普及,开源,而且免费!!! 2. 在企业微信中要记录的值: · 部门id · 企业i ...

  8. Zabbix 3.0 LTS安装配置

    关于Zabbix监控项类型的官网介绍: https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes zabbix ...

  9. CentOS 7.2安装zabbix 3.0 LTS

    1.zabbix简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供 ...

  10. python3.6-Yelp/elastalert0.2.1-elk7.2.0邮件加企业微信告警

    0.修改时区(前提条件已经安装好elk7.2) rm -f /etc/localtimecp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimetimed ...

随机推荐

  1. 『手撕Vue-CLI』获取下载目录

    开篇 在上一篇文章中,简单的对 Nue-CLI 的代码通过函数柯里化优化了一下,这一次来实现一个获取下载目录的功能. 背景 在 Nue-CLI 中,我现在实现的是 create 指令,这个指令本质就是 ...

  2. react 高阶函数

    HOC(Higher Order Components)就是一个函数,传给它一个组件,它返回一个新的组件. 高阶组件:就相当于手机壳,通过包装组件,增强组件功能. 实现步骤: 首先创建一个函数 指定函 ...

  3. LeetCode 449. Serialize and Deserialize BST 序列化和反序列化二叉搜索树 (Java)

    题目: Serialization is the process of converting a data structure or object into a sequence of bits so ...

  4. Invalid revision: 3.18.1-g262b901-dirty CMake Error: CMake was unable to find a build program corresponding to "Ninja".

    一次在GitHub上找到的项目,本想编译运行下,但报如下的问题 错误一 Invalid revision: 3.18.1-g262b901-dirty 解决办法: 这是因为版本不对应,可在local. ...

  5. k8s安装prometheus

    安装 在目标集群上,执行如下命令: kubectl apply -f https://github.com/512team/dhorse/raw/main/conf/kubernetes-promet ...

  6. 实验四:WinRAR漏洞

    [实验目的] 通过打开rar文件,获取到目标机shell. [知识点] winrar漏洞 [实验原理] 该漏洞是由于WinRAR所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库 ...

  7. 开发工具-eclipse/idea 在运行前执行一些动作

    毫无疑问,我们有的时候想在运行/编译程序前后执行一些动作.eclipse和idea都能支持. 日前正好遇到一个问题:有个依赖于pom的某个jar,内容虽然变了,但是版本不变,所以希望每次执行前先清除特 ...

  8. 【ClickHouse问题】更新表字段类型为Nullable(Int32)的列值,最终结果都是固定一个值:93147008???

    问题描述: clickhouse更新表数据.更新的列数据类型是Nullable(Int32),不管更新为什么数值,最后查询的结果都是一个固定值:93147008 问题复现: 1:建一张测试表 CREA ...

  9. 4. 简明说一下 CSS link 与 @import 的区别和用法?

    两者的基本语法 link语法结构 <link href="外部CSS文件的URL路径" rel="stylesheet" type="text/ ...

  10. MongoDB安装、基础操作和聚合实例详解

    虽然MongoDB这些年很流行,但笔者之前没研究过,现在有需求研究这类NoSQL的数据库,是为了验证其是否可被替换. MongoDB是很轻量的文档数据库,简单测试也懒得专门准备虚拟机环境了,直接在ma ...