zabbix配置微信报警
打开浏览器输入以下网址登陆企业微信PC端后台:记录企业ID
https://work.weixin.qq.com/wework_admin
创建企业,然后通过PC浏览器打开企业微信。
通过手机端扫一扫就可以登录。
记录企业信息中的corpID。

创建自己的应用(PC后台)(记录AgentId和Secret)


添加管理组(PC后台) 添加部门(PC后台) 添加员工(PC后台)

测试企业微信接口调试工具(PC后台)
API文档->查看文档->接口调试工具—>工具与资源—>接口调试工具




测试好后配置python报警监控脚本
vim /usr/lib/zabbix/alertscripts/wechat.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
class WeChat(object):
__token_id = ''
# init attribute
def __init__(self,url):
self.__url = url.rstrip('/')
self.__corpid = '*******' ##写自己的
self.__secret = '*****' ##写自己的
# Get TokenID
def authID(self):
params = {'corpid':self.__corpid, 'corpsecret':self.__secret}
data = urllib.urlencode(params)
content = self.getToken(data)
try:
self.__token_id = content['access_token']
# print content['access_token']
except KeyError:
raise KeyError
# Establish a connection
def getToken(self,data,url_prefix='/'):
url = self.__url + url_prefix + 'gettoken?'
try:
response = urllib2.Request(url + data)
except KeyError:
raise KeyError
result = urllib2.urlopen(response)
content = json.loads(result.read())
return content
# Get sendmessage url
def postData(self,data,url_prefix='/'):
url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
request = urllib2.Request(url,data)
try:
result = urllib2.urlopen(request)
except urllib2.HTTPError as e:
if hasattr(e,'reason'):
print 'reason',e.reason
elif hasattr(e,'code'):
print 'code',e.code
return 0
else:
content = json.loads(result.read())
result.close()
return content
# send message
def sendMessage(self,touser,message):
self.authID()
data = json.dumps({
'touser':touser,
'toparty':2, ##写自己的
'msgtype':"text",
'agentid':"1000002", ##写自己的
'text':{
'content':message
},
'safe':"0"
},ensure_ascii=False)
response = self.postData(data)
print response
if __name__ == '__main__':
a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
a.sendMessage(sys.argv[1],sys.argv[3])
有如下4个地方需要修改,找到他们修改成自己的
self.__corpid = 'XXXXX' //公司的corpid
self.__secret = 'XXXXX' //应用的secret
'toparty':XXXX, //部门id
'agentid':"XXXX", //应用id
修改权限:
chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.py
chmod 755 /usr/lib/zabbix/alertscripts/wechat.py
测试脚本:测试结果中invalidparty可以忽略 ,如果正常会收到消息如下


zabbix配置微信报警
创建报警媒介
管理->报警媒介类型->创建媒体类型


zabbix 3.0 需要在为alert脚本定义参数,以前的版本参数都固定的,现在用户可以自己定义命令行的参数了。添加的参数也就是脚本中的收信人、标题和信息内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
关联到报警用户
添加完成后,需要关联到报警用户 管理-->用户-->Admin-->报警媒介-->添加-->更新


注意填写的收件人是:企业微信内的员工帐号
添加动作,触发条件后报警后发送微信消息。
配置-->动作-->创建动作
维护状态-->非在维护-->添加
触发器条件-->触发器-->添加
点击动作下的操作




注意两次点击两次添加。
恢复操作和确认操作都可以配置,同上(略)
可以通过将触发器的值,调整为正常值/非正常值测试微信报警了。
关闭被检测网站服务器服务