阅读 57

zabbix设置微信报警,zabbix微信报警简单流程

系统环境

[root@z5 ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)centos7安装zabbix5.0 的方法见此文https://blog.csdn.net/qq_19731521/article/details/107960063


注册企业微信:

https://work.weixin.qq.com/wework_admin/register_wx

然后登录企业微信并打开管理后台


添加一个部门,并记住部门id:
#我这里添加的子部门ID为2


 记住用户账号:



打开应该用管理,创建应用



记住Agentld和secret 


记住企业ID: 


到这里上面的企业微信注册就完成了,记住上面所提到需要记住的。

微信企业号接口调试工具:

https://open.work.weixin.qq.com/wwopen/devtool/interface/com和谐的枕头e


先下载一些备用工具

[root@z5 ~]# yum -y install wget vim

查看zabbix-server脚本存放的位置:

[root@z5 ~]# grep ^AlertScriptsPath /etc/zabbix/zabbix_server.confAlertScriptsPath=/usr/lib/zabbix/alertscripts

安装simplejson

[root@z5 ~]# wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz[root@z5 ~]# tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2[root@z5 ~]# python setup.py build[root@z5 ~]# python setup.py install

配置监控脚本

[root@z5 ~]# cd /usr/lib/zabbix/alertscripts/[root@z5 ~]# vi wechat.py

根据脚本里面的注释进行相应的修改,改成自己企业微信号中的信息,脚本如下:

#!/usr/和谐的枕头/python#_*_coding:utf-8 _*_ import urllib,urllib2import jsonimport sysimport simplejson reload(sys)sys.setdefaultencoding('utf-8') def gettoken(corpid,corpsecret): gettoken_url = 'https://qyapi.weixin.qq.com/cgi-和谐的枕头/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,user,subject,content): send_url = 'https://qyapi.weixin.qq.com/cgi-和谐的枕头/message/send?access_token=' + access_token send_values = { "touser":"xxxx", #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送 "toparty":"xxx", #企业号中的部门 "msgtype":"text", #消息类型。 "agentid":"xxxx", #企业号中的应用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__': user = str(sys.argv[1]) #zabbix传过来的第一个参数 subject = str(sys.argv[2]) #zabbix传过来的第二个参数 content = str(sys.argv[3]) #zabbix传过来的第三个参数 corpid = 'xxxxxxxxxxxxx' #CorpID是企业号的标识 corpsecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #corpsecretSecret是管理组凭证密钥 accesstoken = gettoken(corpid,corpsecret) senddata(accesstoken,user,subject,content)


给这个wechat.py文件执行权限[root@z5 alertscripts]# chmod +x wechat.py

 命令行测试是否可以发送(看到下面信息表示成功了)

[root@z5 alertscripts]# ./wechat.py user 报警测试 errorhttps://qyapi.weixin.qq.com/cgi-和谐的枕头/gettoken?corpid=ww53f352c08224ecb2&corpsecret=HWxBHnhoH3n1wnulndcGFDkdYBwPYfSsw6SRNO2ZqAo{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}[root@z5 alertscripts]# ./wechat.py QiChangJun test 67https://qyapi.weixin.qq.com/cgi-和谐的枕头/gettoken?corpid=ww53f352c08224ecb2&corpsecret=HWxBHnhoH3n1wnulndcGFDkdYBwPYfSsw6SRNO2ZqAo{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}


现在可以在zabbix上设置

进入:管理 -> 报警媒介类型 -> 创建媒体类型:

脚本参数

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}



添加告警标题和消息内容模板可配置如下:


上图添加的信息如下:

默认标题:服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!消息内容:告警主机:{HOST.NAME}告警地址:{HOST.IP}监控项目:{ITEM.NAME}监控取值:{ITEM.LASTVALUE}告警等级:{TRIGGER.SEVERITY}当前状态:{TRIGGER.STATUS}告警信息:{TRIGGER.NAME}告警时间:{EVENT.DATE} {EVENT.TIME}事件ID:{EVENT.ID}

添加告警恢复标题和消息内容模板可配置如下:


 上图添加的信息如下:

默认标题:服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!消息内容:告警主机:{HOST.NAME}告警地址:{HOST.IP}监控项目:{ITEM.NAME}监控取值:{ITEM.LASTVALUE}告警等级:{TRIGGER.SEVERITY}当前状态:{TRIGGER.STATUS}告警信息:{TRIGGER.NAME}告警时间:{EVENT.DATE} {EVENT.TIME}恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}持续时间:{EVENT.AGE}事件ID:{EVENT.ID}


创建用户


 

再创建用户组,将刚创建的用户加入用户组:



创建动作



 以下是上图的,操作、恢复操作、更新操作的详细:





进行以下测试




以上就是微信报警的步骤.


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐