微信:
- 首先下载企业微信
- 创建一个企业
在网页登录:
https://work.weixin.qq.com/
在里面找到
AgentId:
Secret :
企业ID
部门id
创建一个机器人
在zabbix配置上面配置发送微信的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 = 'wwa1da242f211cdf47'
self.__secret = 'rIrN51FEjgW6T2bdmSaEoOIB5UbaBTgddQkuC8cca1w'
# 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 = 'wwa1da242f211cdf47' //公司的corpid
self.__secret = 'rIrN51FEjgW6T2bdmSaEoOIB5UbaBTgddQkuC8cca1w' //应用的secret
'toparty':2, //部门id
'agentid':"1000002", //应用id
给脚本权限
chmod 777 /usr/lib/zabbix/alertscripts/wechat.py
运行脚本测试
./wechat.py LiWeiQiang test test
zabbix配置微信报警
管理->报警媒介类型->创建媒体类型
添加完成后,需要关联到报警用户 管理–>用户–>Admin–>报警媒介–>添加–>更新
添加动作,触发条件后报警后发送微信消息。
配置–>动作–>创建动作
维护状态–>非在维护–>添加
触发器条件–>触发器–>添加
点击动作下的操作
Custom message:
Trigger: {TRIGGER.NAME}
Trigger status {TRIGGER.STATUS}
1. {ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}):{ITEM.VALUE1}
可以通过将触发器的值,调整为正常值/非正常值测试微信报警了。
在被监控端关闭http服务