Zabbix 5.0 版本企业微信群机器人报警

直接添加webhook类型脚本

Key是企业微信内建好的机器人webhook地址后面的参数

其他照填,很简单

下面是脚本的内容全部复制就行

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 + ".";
}

 

## 【Zabbix平台告警信息❌】
------------------
##### <font color="#FF0000">【故障】{TRIGGER.NAME} </font>
------------------
##### <font color="#FF0000">【故障发生时间】</font>:{EVENT.DATE} {EVENT.TIME}
##### <font color="#FF0000">【告警级别】</font>:{TRIGGER.SEVERITY}
##### <font color="#FF0000">【故障前状态】</font>:{ITEM.LASTVALUE}
##### <font color="#FF0000">【故障主机IP】</font>:{HOST.IP}
##### <font color="#FF0000">【故障主机名】</font>:{HOST.NAME}
##### <font color="#FF0000">【故障时长】</font>:{EVENT.AGE}
##### <font color="#FF0000">【故障是否确认】</font>:{EVENT.ACK.STATUS}
-------------------
#####  <font color="#F56C6C">事件状态:{EVENT.STATUS}</font>

 

## 【Zabbix平台恢复信息✅】
------------------
##### <font color="#67C23A">【故障】{TRIGGER.NAME} 已经恢复 </font>
------------------
##### <font color="#02b340">【故障恢复时间】</font>:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
##### <font color="#02b340">【告警级别】</font>:{TRIGGER.SEVERITY}
##### <font color="#02b340">【故障前状态】</font>:{ITEM.LASTVALUE}
##### <font color="#02b340">【故障主机IP】</font>:{HOST.IP}
##### <font color="#02b340">【故障主机名】</font>:{HOST.NAME}
##### <font color="#02b340">【故障时长】</font>:{EVENT.AGE}
##### <font color="#02b340">【故障是否确认】</font>:{EVENT.ACK.STATUS}
------------------
#####  <font color="#F56C6C">事件状态:{EVENT.STATUS}</font>

## 【Zabbix监控平台故障更新信息⚠】
------------------
##### <font color="#67C23A"> 【故障】{USER.FULLNAME} 已经确认故障原因 </font>
------------------
##### <font color="#FF0000">【故障确认时间】</font>:{ACK.DATE} {ACK.TIME}
##### <font color="#FF0000">【告警级别】</font>:{TRIGGER.SEVERITY} 
##### <font color="#FF0000">【故障前状态】</font>:{ITEM.LASTVALUE}
##### <font color="#FF0000">【故障主机IP】</font>:{HOST.IP}
##### <font color="#FF0000">【故障主机名】</font>:{HOST.NAME}
##### <font color="#FF0000">【故障时长】</font>:{EVENT.AGE}
##### <font color="#FF0000">【故障原因】</font>:{ACK.MESSAGE}
##### <font color="#FF0000">【故障是否确认】</font>:{EVENT.ACK.STATUS}✅
------------------
#####  <font color="#F56C6C">事件状态:{EVENT.STATUS}</font>

  详细参考:Z投稿|Zabbix 5.0 企业微信 WebHook 实现故障文本告警 (qq.com)

 

 

 

### Zabbix 5.0 配置企业微信告警通知教程 #### 准备工作 为了使Zabbix能够通过企业微信发送告警消息,需先完成一些准备工作。 - 注册并配置好企业微信账号,创建用于接收告警的应用程序,并获取到AgentId, CorpID 和 Secret等必要参数[^2]。 #### 安装依赖项 确保服务器上已安装Python环境以及`requests`库来支持HTTP请求操作。对于基于RedHat/CentOS系统的机器来说,可能还需要安装EPEL源以便顺利安装这些软件包[^3]。 ```bash yum install epel-release -y pip3 install requests --upgrade ``` #### 编写告警脚本 将编写好的告警脚本放置于指定路径下(通常是`/usr/local/share/zabbix/alertscripts/`或者`/usr/lib/zabbix/alertscripts/`),这里以Shell为例展示了一个简单的告警推送逻辑[^5]: ```shell #!/bin/bash # weixin.sh WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-webhook-key" MESSAGE="$3" curl -sS -X POST "${WEBHOOK_URL}" \ -H 'Content-Type: application/json' \ -d " { \"msgtype\": \"text\", \"text\": { \"content\": \"$MESSAGE\" } }" ``` 注意替换上述代码中的`${WEBHOOK_URL}`变量值为你自己的WebHook地址。 #### 修改权限 赋予执行权限给该脚本文件: ```bash chmod +x /path/to/weixin.sh ``` #### 设置Zabbix Server端 编辑Zabbix server的主要配置文件(`zabbix_server.conf`),确认AlertScriptsPath指向了刚才保存脚本的位置[^1]。 #### 创建媒介类型 登录至Zabbix Web界面,在“管理 -> 媒介类型”处新增一项名为“WeChat”的记录,选择Script作为发送方式并将命令设为我们之前编写的脚本名称(比如weixin.sh)。 #### 设定触发器与动作 最后一步是在“配置->动作”里定义当特定条件满足时应采取的动作,即向选定的目标体发出警告信息。这涉及到关联先前建立的媒介类型和具体的通知对象。 #### 测试验证 一切就绪之后可以通过模拟事件发生来进行实际效果检验,观察是否能正常接收到来自Zabbix平台的企业微信消息提醒。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值