搜索看看
python3脚本发送企业微信应用告警通知
这个示例,是用python3脚本调用企业微信应用,发送告警通知
如下例子,是python文件pythonWarn.py,名字可以修改为自己喜欢的名字
import urllib.request import json import sys import datetime #-------------------------------- # 获取企业微信token #-------------------------------- def get_token(url, corpid, corpsecret): token_url = '%s/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (url, corpid, corpsecret) token = json.loads(urllib.request.urlopen(token_url).read().decode())['access_token'] return token #-------------------------------- # 构建告警信息json #-------------------------------- def messages(msg): values = { "touser": '@all', #@all是所有人的意思单发给个人需要填写个人账号 "msgtype": 'text', "agentid": 1000002, #企业号中的应用id "text": {'content': msg}, "safe": 0 } msges=(bytes(json.dumps(values), 'utf-8')) return msges #-------------------------------- # 发送告警信息 #-------------------------------- def send_message(url,token, data): send_url = '%s/cgi-bin/message/send?access_token=%s' % (url,token) respone=urllib.request.urlopen(urllib.request.Request(url=send_url, data=data)).read() x = json.loads(respone.decode())['errcode'] # print(x) if x == 0: print ('Succesfully') else: print ('Failed') ##############函数结束######################## corpid = 'xxxxxxxxxxxxxxxxxxxxxxxxxx' #企业的id在我的企业最下面 corpsecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx' #这个也是应用的 url = 'https://qyapi.weixin.qq.com' curr_time = datetime.datetime.now() time_str = datetime.datetime.strftime(curr_time,'%H:%M:%S') warnContent="WGCLOUD告警:"+time_str+","+sys.argv[1] #函数调用 test_token=get_token(url, corpid, corpsecret) msg_data= messages(warnContent) send_message(url,test_token, msg_data)
将上面内容保存为pythonWarn.py,然后修改server/config/application.yml如下配置项warnScript,注意是配置完全路径,然后重启server
#告警脚本绝对路径(若配置脚本,无论是否配置过邮件,都会执行该脚本),可以为空,参考模板:server/template/sendMsg.sh warnScript: python3 /python/pythonWarn.py
如上py脚本只获取了告警通知内容,如果想获取用户ID,标签,告警级别,
请查看说明