微信报警脚本

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])```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值