python脚本,用于调用企业微信自定义应用来发送告警消息
#!/usr/bin/python # --*-- coding:utf8 --*-- # Author: Jack.Z import json import sys import simplejson import requests def get_token(cid, secret): gettoken_url = 'https://qyapi.weixin.QQ.com/cgi-bin/gettoken?corpid=' + cid + '&corpsecret=' + secret try: req = requests.get(gettoken_url) except requests.HTTPError as e: print e.errno sys.exit() return json.loads(req.text)['access_token'] def send_data(token, account, subject_name, context): send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + token send_values = { "touser": account, # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。 "toparty": "2", # 企业号中的部门id。 "msgtype": "text", # 消息类型。 "agentid": "1000002", # 企业号中的应用id。 "text": { "content": subject_name + ' ' + context }, "safe": "0" } data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8') try: req = requests.post(send_url, data) except requests.HTTPError as e: print e.errno sys.exit() print req.text if __name__ == '__main__': user = str(sys.argv[1]) subject = str(sys.argv[2]) content = str(sys.argv[3]) corp_id = '*************' corp_secret = '******************' access_token = get_token(corp_id, corp_secret) send_data(token=access_token, account=user, subject_name=subject, context=content)
前提条件是: 你得有企业微信,然后呢,还要自建应用, 然后在zabbix中做相关设置,下面是我们在实际测试中的信息提示载图: