zabbix之微信告警(python版):微信我的報警,微信企業號告警腳本

                            微信我的告警腳本

微信我的告警:使用我的微信,發送到微信羣組,微信好友php

兩個腳本執行:python

1)能鏈接網絡
2)先執行server.py,掃描登陸微信,登陸以後沒有報錯,打開新終端查看端口是否起來了
3)在zabbix上面添加報警媒介,將personsend.py 腳本添加進去git

4)pip install wxpy wechat_sender -i https://pypi.douban.com/simplegithub

-----------------------------------------------server.pyjson

#-* coding:utf-8
from wechat_sender import *
from wxpy import *
import logging

import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
  reload(sys)
  sys.setdefaultencoding(defaultencoding)
bot = Bot(console_qr=True)
group = bot.groups().search(unicode('微信測試'))[0]
#group2 = bot.groups().search(unicode('ITstone'))[0]
logging.basicConfig(level=logging.DEBUG)
#group.send("接入成功!")
#group2.send("接入成功!")
print("微信登錄成功!進行監控報警功能!")
print(group)
listen(bot, token='test', receivers=[group],port=12222)
#listen(bot, token='test2', receivers=[group2],port=15556)
-----------------------------------------------personsend.py 
#!/usr/local/python/bin/python
# -*- coding:UTF-8 -*-
from wechat_sender import *
import time
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
    reload(sys)
    sys.setdefaultencoding(defaultencoding)
import ssl
context = ssl._create_unverified_context()
#sender = Sender(token='test2', receivers=unicode('ITstone'),port=15556)
sender2 = Sender(token='test', receivers=unicode('微信測試'),port=15555)    #設置微信羣和監聽端口
#while True:
#    time.sleep(10)
# sender.send(message=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
#    sender.send(message='測試數據'+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
messeges=sys.argv[2]+sys.argv[3]
#sender.send(message=messeges)
sender2.send(message=messeges)

 

                          微信企業號告警腳本

 下面的這個微信腳本從網上拉取下來的,後面因爲微信更新,修改了倒數第三行的值api

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,itemid):
    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
        "touser":user,    #企業號中的用戶賬號,在zabbix用戶Media中配置,若是配置不正常,將按部門發送。
        "toparty":"2",    #企業號中的部門id。
        "msgtype":"text", #消息類型。
        "agentid":"1000002",    #企業號中的應用id。
        "text":{
            "content":subject + '\n' + content
           },
        "safe":"0"
        }
    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傳過來的第三個參數
    itemid=1
    corpid =  'ww22655492448f1e3b'   #CorpID是企業號的標識
#    corpsecret = 'e62ikstjInYq8vAp7mjDmQylO6DlA2a-CH86YpRxd38'  #corpsecretSecret是管理組憑證密鑰
    corpsecret='deH66xl3FZVFhcmKhGfnAHHIlXAOS_Nh76ODn7ZsmU4'    #'這裏填寫應用對應的secret'
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content,itemid)

參考:微信

1)wechat_sender github主頁  網絡

2)桑心病狂,試試把報警日誌發到微信上微信開發

3)企業微信開發者文檔測試

相關文章
相關標籤/搜索