注册企业微信
搜集需要的信息:
一:企业微信部署使用
1.下载企业微信
2.创建企业
3.创建企业应用
我的企业
CorpID
wwf59d011ead30f194
AgentId
1000002
Secret
4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A
部门id
2 云计算部
配置监控脚本
- 编辑脚本
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 = 'wwf59d011ead30f194'
self.__secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A'
# 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':11,
'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])
python监控脚本:有4个地方需要修改,找到他们修改成之前获取的信息
self.__corpid = 'wwf59d011ead30f194' //公司的corpid
self.__secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A' //应用的secret
'toparty':2, //部门id
'agentid':"1000002", //应用id
- 修改权限
chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.py
chmod a+x /usr/lib/zabbix/alertscripts/wechat.py
- 测试脚本
zabbix配置微信报警
- 创建报警媒介:
管理->报警媒介类型->创建媒体类型
{ALERT.SENDTO}发送给谁 {ALERT.SUBJECT}主题 {ALERT.MESSAGE}消息
- 创建用户,默认为Admin(可以选择默认,既不创建新的用户)
创建用户
默认用户Admin
需要添加收件人
- 添加触发项
先添加监控项,以nginx为例。监听nginx是否在线
添加触发项,当nginx掉线时,触发
模拟检测
关闭被监控端的nginx,查看是否会有企业微信报警
可能遇到的问题
在使用zabbix图形时,发现有中文乱码如何解决?
解决方案:
在/usr/share/zabbix/assets/fonts目录下,将原来的字符集文件删掉或者重新修改文件名让其失去效果,重新上传新的字符集文件,上传成功后重新刷新界面即可.
报警格式
邮件内容:
名称:Action-Email
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}