Zabbix 使用企業微信公衆號發送報警短信

Zabbix 使用企業微信公衆號發送報警短信python


#使用微信號發短信通常會有條數限制,企業公衆號沒有這個限制,並且成員分組也方便。json


安裝腳本依賴:api

yum install python-simplejson -y

不然會報錯:bash

ImportError: No module named simplejson微信



腳本以下所示,須要修改的部分都有註釋,替換掉就能夠使用。ide

cat wechat.py 
#!/usr/bin/python
#_*_coding:utf-8 _*_
 
import urllib,urllib2
import json
import sys
import simplejson
reload(sys)
sys.setdefaultencoding('utf-8')
def gettoken(corpid,corpsecret):
    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
    print  gettoken_url
    try:
        token_file = urllib2.urlopen(gettoken_url)
    except urllib2.HTTPError as e:
        print e.code
        print e.read().decode("utf8")
        sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token
 
 
 
def senddata(access_token,user,subject,content):
 
    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
        "touser":"@all",    #企業號中的用戶賬號,在zabbix用戶Media中配置,若是配置不正常,將按部門發送。
        "toparty":"1",    #企業號中的部門id。
        "msgtype":"text", #消息類型。
        "agentid":"1",    #企業號中的應用id。
        "text":{
            "content":subject + '\n' + content
           },
        "safe":"0"
        }
#    send_data = json.dumps(send_values, ensure_ascii=False)
    send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
    send_request = urllib2.Request(send_url, send_data)
    response = json.loads(urllib2.urlopen(send_request).read())
    print str(response)
 
 
if __name__ == '__main__':
    user = str(sys.argv[1])     #zabbix傳過來的第一個參數
    subject = str(sys.argv[2])  #zabbix傳過來的第二個參數
    content = str(sys.argv[3])  #zabbix傳過來的第三個參數
    
    corpid =  'wx97sdfzccsd'   #CorpID是企業號的標識
    corpsecret = '7FbbmUuMFbD6TDkYvAi8jWCnAg3KVE8bVMJIJX8QHN9mz_fwdsdsffsdada'  #corpsecretSecret是管理組憑證密鑰
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)

#報警媒介:添加三個參數,配置微信報警腳本。ui

wKiom1hyWGOiGNHQAABUQqOJ9So215.png-wh_50

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}


#報警動做:添加的內容以下:url

wKioL1hyWKrjS0MlAACGeRu47ok423.png-wh_50

名稱:wechatspa

默認接收人:上海二區VPC機房:{TRIGGER.STATUS}code


默認信息:         主機:{HOST.NAME}

地址:{HOST.IP}

故障發生時間:{EVENT.DATE} {EVENT.TIME}

事件:{TRIGGER.NAME}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}


恢復主題:上海二區VPC機房:{TRIGGER.STATUS}: {TRIGGER.NAME}

恢復信息:

主機:{HOST.NAME}

地址:{HOST.IP}

故障發生時間:{EVENT.DATE} {EVENT.TIME}

事件:{TRIGGER.NAME}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

#條件:這塊幾乎不用作什麼修改,保持默認的就好。

wKioL1hyWSuiZiFfAAA9QYHCUqk374.png-wh_50


#操做:這塊主要配置報警持續時間和發送第幾部操做,發送給誰。

wKiom1hyWVWA05F4AAB8GrfsMbk266.png-wh_50


#用戶報警媒介添加:

wKiom1ihk2Xz37OhAABS90KFpxs607.png-wh_50


#指定報警媒介:

wKioL1ihk6LSYGUTAADgwaWtD9Y631.png-wh_50


收到報警短信的結果以下圖:

wKiom1hyWx7Rqqz8AAEYEDa80qs084.png-wh_50

相關文章
相關標籤/搜索