CentOS7.3下Zabbix3.5之微信报警配置

一、报警脚本放到服务端的 /usr/lib/zabbix/alertscripts/下
      属组属主为zabbix zabbix
      有执行权限
vim weixinbaojing.py

#!/usr/bin/python
#_*_coding:utf-8 _*_

import urllib,urllib2
import json
import sys
import simplejson

reload(sys)
sys.setdefaultencoding('utf-8')

def gettoken(corpid,corpsecret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
print gettoken_url
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print e.read().decode("utf8")
sys.exit()
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token']
return token

def senddata(access_token,subject,content):

send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"totag":"3", #企业号中的部门id。
"msgtype":"text", #消息类型。
"agentid":"1000010", #企业号中的应用id。
"text":{
"content":subject + '\n' + content
},
"safe":"0"
}
# send_data = json.dumps(send_values, ensure_ascii=False)
send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
send_request = urllib2.Request(send_url, send_data)
response = json.loads(urllib2.urlopen(send_request).read())
print str(response)

if __name__ == '__main__':
subject = str(sys.argv[1]) #zabbix传过来的第二个参数
content = str(sys.argv[2]) #zabbix传过来的第三个参数

corpid = 'xxxxxxxxxxxxx' #CorpID是企业号的标识
corpsecret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #corpsecretSecret是管理组凭证密钥
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,subject,content)

二、web界面操作
创建触发器Triggers--->创建action-->action中指定Conditions-->opreations中设置报警格式(格式如下)-->Recovery opreations中设格式(格式如下(通知类型为Recovery))
Default operation step duration 1h
Default subject 通知类型:WARNING
Default message

告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

operations中设置发送那个组,使用哪种方式方式发送

3、在administration中配置Media types,配置格式如下

Name test
Type script
Script name test.py
Script parameters
{ALERT.SUBJECT}
{ALERT.MESSAGE}
{ALERT.SENDTO}

4、在administration中配置user中添加media

posted @ 2018-01-22 16:31  wclwcw  阅读(230)  评论(0编辑  收藏  举报