微信报警脚本

版权声明:请随意转载 https://blog.csdn.net/cheng1804/article/details/83040423
vim /usr/lib/zabbix/alertscripts/wechat.py

以下四个字段需修改
self.__corpid = 
self.__secret = 
'toparty': 
 'agentid': 
更改属主属组zabbix,更改777权限

#!/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 = 'wwa1da242f211cdf47'

                self.__secret = 'rIrN51FEjgW6T2bdmSaEoOIB5UbaBTgddQkuC8cca1w'

        # 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':"1000002",

                        '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])```

猜你喜欢

转载自blog.csdn.net/cheng1804/article/details/83040423
今日推荐