zabbix3.0 微信报警

先有一个微信企业号 微信号怎么注册就不多说了。
要收微信的帐号必须关注该企业号成功

为了更好方便 我们要收集几个条件
一个部门ID:
一个应用ID:
一个CorpID:
一个Secret:
第一获取部门ID:


第二获取应用ID:

第三获取CorpID,Secret:


第四配置脚本
root@xxxxxxx:/usr/lib/zabbix/alertscripts# pwd
/usr/lib/zabbix/alertscripts
#vi wxpython.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

class WeChat(object):
        __token_id = ''
        # init attribute
        def __init__(self,url):
                self.__url = url.rstrip('/')
                self.__corpid = 'xxxxx'
                self.__secret = 'xxxxx'

        # Get TokenID
        def authID(self):
                params = {'corpid':self.__corpid, 'corpsecret':self.__secret}
                data = urllib.urlencode(params)

                content = self.getToken(data)

                try:
                        self.__token_id = content['access_token']
                        # print content['access_token']
                except KeyError:
                        raise KeyError

        # Establish a connection
        def getToken(self,data,url_prefix='/'):
                url = self.__url + url_prefix + 'gettoken?'
                try:
                        response = urllib2.Request(url + data)
                except KeyError:
                        raise KeyError
                result = urllib2.urlopen(response)
                content = json.loads(result.read())
                return content

        # Get sendmessage url
        def postData(self,data,url_prefix='/'):
                url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
                request = urllib2.Request(url,data)
                try:
                        result = urllib2.urlopen(request)
                except urllib2.HTTPError as e:
                        if hasattr(e,'reason'):
                                print 'reason',e.reason
                        elif hasattr(e,'code'):
                                print 'code',e.code
                        return 0
                else:
                        content = json.loads(result.read())
                        result.close()
                return content

        # send message
        def sendMessage(self,touser,message):

                self.authID()

                data = json.dumps({
                        'touser':touser,
                        'toparty':"2",
                        'msgtype':"text",
                        'agentid':"1",
                        'text':{
                                'content':message
                        },
                        'safe':"0"
                },ensure_ascii=False)

                response = self.postData(data)
                print response


if __name__ == '__main__':
        a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
        a.sendMessage(sys.argv[1],sys.argv[3])
修改的地方有14 15 65 67 四行的值
#chmod 777 wxpython.py 加权限
第五配置WEB
下面开始在WEB界面配置。
我的是zabbix 3.0

@all 是该组所有人。 可以指定单个 也可以多个。中间用|分开
权限 自己配置就好了


最后可以测试了。
测试方法 把监控的IP端口改掉,让服务器DOWN机器 发消息



最后是一个SHELL脚本。虽然没有测试成功。但是用用还是可以的
#!/bin/bash
CropID='xxxxx'
Secret='xxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F '"' '{print $4}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
        local userid=$1;
        local groupid=2;
        local agentid=1;
        local msg=$(echo "$2" |cut -d"" -f3-);
        $local msg=$2;
        printf ' {\n'
        printf ' \t"touser": "'""$userid""\"",\n"
        printf ' \t"toparty": "'"$groupid"\"",\n"
        printf ' \t"msgtype": "'"text"\"",\n"
        printf ' \t"agentid": "'"$agentid"\"",\n"
        printf ' \t"text":{\n'
        printf ' \t\t"content": "'"$msg"\""\n"
        printf ' \t},\n'
        printf ' \t"safe":0\n'
        printf ' }\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2)" $PURL

加权限就可以了。
调用方法
./name 接收微信ID 接收内容
中间空格


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值