zabbix|zabbix 微信报警

简单 说一下微信报警:
微信报警和邮件区别不大, 主要是发送脚本不同
脚本来源git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
(python脚本里调用的模块可能没有,需要自行安装 )
cat wechat.py
#!/usr/bin/python2.7
#_*_coding:utf-8 _*_
#auther:火星小刘
import requests,sys,json
import urllib3
urllib3.disable_warnings()
reload(sys)
sys.setdefaultencoding('utf-8')
def GetToken(Corpid,Secret):
Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
Data = https://www.it610.com/article/{
"corpid":Corpid,
"corpsecret":Secret
}
r = requests.get(url=Url,params=Data,verify=False)
Token = r.json()['access_token']
return Token
def SendMessage(Token,User,Agentid,Subject,Content):
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
Data = https://www.it610.com/article/{
"touser": User,# 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
#"totag": Tagid,# 企业号中的标签id,群发使用(推荐)
#"toparty": Partyid# 企业号中的部门id,群发时使用。
"msgtype": "text",# 消息类型。
"agentid": Agentid,# 企业号中的应用id。
"text": {
"content": Subject + '\n' + Content
},
"safe": "0"
}
r = requests.post(url=Url,data=https://www.it610.com/article/json.dumps(Data),verify=False)
return r.text
if __name__ == '__main__':
User = sys.argv[1]# zabbix传过来的第一个参数
Subject = sys.argv[2]# zabbix传过来的第二个参数
Content = sys.argv[3]# zabbix传过来的第三个参数
Corpid = "wx0f0c"# CorpID是企业号的标识
Secret = "cecnGXBY"# Secret是管理组凭证密钥
#Tagid = "1"# 通讯录标签ID
Agentid = "1"# 应用ID
#Partyid = "1"# 部门ID
Token = GetToken(Corpid, Secret)
Status = SendMessage(Token,User,Agentid,Subject,Content)
print Status


脚本的urllib3.disable_warnings()你的python版本可能不支持(没细研究),注释掉即可
创建 企业微信建好企业微信
需要 修改 脚本里的
Corpid = "wx0f0c"# CorpID是企业号的标识
Secret = "cecnGXBY"# Secret是管理组凭证密钥
Agentid = "1"# 应用ID
都好了以后 直接 测试 脚本pythonwechat.py
./wechat.py "你的企业微信的接收账号"1111122222
如果能收到消息 ,再配置web(余下 再出问题只会是web端配置的问题)




zabbix|zabbix 微信报警
文章图片
这里的收件人是你的企业微信的接受账号

zabbix|zabbix 微信报警
文章图片
微信 脚本的参数
【zabbix|zabbix 微信报警】到这就结束了, 理解了就很容易找到错误的地方。

    推荐阅读