Zabbix 3.4.3实现企业微信报警

一、企业微信注册

微信的报警方式可以让我们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先我们先打开企业微信的地址 https://work.weixin.qq.com

1、填写申请信息

Zabbix 3.4.3实现企业微信报警

2、下一步

根据注册流程步骤进行后面的操作,直到注册成功。

二、企业微信配置

1、创建部门

首先我们要创建部门,类似于组,把相关的人员放到这个部门里面,创建部门之后,我们会用到部门id,报警消息根据部门id发到部门的相关人员。

03fec13df11741fca6305f5d72c89962.png

根据自己的需求填写,所属部门也可以是现有部门的子部门,具有层级所属关系。

Zabbix 3.4.3实现企业微信报警

查看部门id,我们以后会用到,我这里部门id是2。

Zabbix 3.4.3实现企业微信报警

2、给部门增加人员

点击添加成员,然后让用户关注就可以了。

Zabbix 3.4.3实现企业微信报警

3、添加应用

用于消息发送的接口,这里我们需要记住应用的id以及secret,用于发送token的获取,按照我们的设定,目前只有运维部的人员可以看到此应用,即可以通过此应用获取到报警信息。

Zabbix 3.4.3实现企业微信报警

记住这里的Agentid和Secret。

Zabbix 3.4.3实现企业微信报警

4、获取企业ID

Zabbix 3.4.3实现企业微信报警

三、测试微信消息发送接口

调用微信接口需要一个调用接口的凭证:access_token,通过CropID 、Secret才能获取到access_token,但是获取到的token有效期为7200秒。

我们可以通过下面的接口调试工具以及接口说明文档进行测试。

接口调试工具

接口说明文档:https://work.weixin.qq.com/api/doc#10167

调试成功页面如下。

Zabbix 3.4.3实现企业微信报警

四、报警脚本

1、编写python脚本

脚本使用的python版本为2.7以上,所以请安装CentOS 7。

vim /usr/local/zabbix/alertscripts/wechat.py 

#!/usr/bin/python

# -*- coding: utf-8 -*-

# zabbix notification confirmation script

# python2.7 or above

  

import requests

import json

import os

import sys

  

Toparty = "2"   #部门id

AgentID = 4     #应用id

  

#修改为企业CropID和Secret

CropID = 'wx8d46d3xxxxx993'

Secret = 'QCjzy2lH2ZB7MUG6uowChyChPsOxxxxxxxxxxxxxxTVR4saIw3Ezznh'

  

#获取Token

Gtoken ="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ CropID + "&corpsecret=" + Secret

headers = {'Content-Type': 'application/json'}

json_data = json.loads(requests.get(Gtoken).content.decode())

token = json_data["access_token"]

  

#消息发送接口

Purl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + token

  

#消息发送函数

def msg(title,message):

    weixin_msg = {

         "toparty" : Toparty,

         "msgtype" : "textcard",

         "agentid" : AgentID,

         "textcard" : {

             "title" : title,

             "description" : message,

             "url" : "www.wzlinux.com",

             "btntxt":"更多"

          }

      }

    print requests.post(Purl,json.dumps(weixin_msg),headers=headers)

  

if __name__ == '__main__':

    title = sys.argv[1]        #获取第一个参数

    message = sys.argv[2]      #获取第二个参数

    msg(title,message)

 

 

chmod +x /usr/local/zabbix/alertscripts/wechat.py

2、测试脚本

微信已经可以接收到消息,那脚本已经没有什么问题了。

五、Zabbix配置

1、添加Media types

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9d553594b21b87212a1775276a982fae.html