zabbix结合微信报警

zabbix微信报警

一.配置企业微信

1.首先你需要去注册一个企业微信

https://work.weixin.qq.com/
zabbix结合微信报警_第1张图片
绑定完成后,下次可以使用绑定的微信扫描登陆

2.创建一个部门并加入成员

zabbix结合微信报警_第2张图片
应该默认只有一个用户,打勾设置组为上面创建的
zabbix结合微信报警_第3张图片
zabbix结合微信报警_第4张图片

3.创建一个应用,通过这个应用发送报警消息

zabbix结合微信报警_第5张图片
zabbix结合微信报警_第6张图片

二.配置zabbix_server

[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
#最后一行添加如下一句
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
[root@zabbix ~]# systemctl restart zabbix_server
[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/

上传这个软件包
链接:https://pan.baidu.com/s/1bPxAsJft1YRCDSWnQ-RvEA
提取码:6zgt

在这里插入图片描述

[root@zabbix alertscripts]# tar zxf simplejson-3.8.2.tar.gz 
[root@zabbix alertscripts]# cd simplejson-3.8.2/
[root@zabbix simplejson-3.8.2]# python setup.py build && python setup.py install 
#上面这个命令会报一个错,什么致命错误不用管他
[root@zabbix simplejson-3.8.2]# cd ..
我下面图片中划线的东西,和下面脚本文件中对应写

zabbix结合微信报警_第7张图片
touser
zabbix结合微信报警_第8张图片
toparty
zabbix结合微信报警_第9张图片
agentid
zabbix结合微信报警_第10张图片
corpid
zabbix结合微信报警_第11张图片
corpsecret
zabbix结合微信报警_第12张图片

只有我上面图片上写的项要改,其他不用动

以下代码来源网络,我只是做了修改,如有侵权,请联系我删除
[root@zabbix alertscripts]# vim testzabbix.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,user,subject,content):

    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
        "touser":'Zhangsan',    #企业号中的用户帐号
        "toparty":"2",    #企业号中的部门id。
        "msgtype":"text",
        "agentid":"1000002",    #企业号中的应用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')
    print(send_data)
    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])
    subject = str(sys.argv[2])
    content = str(sys.argv[3])
    corpid =  'ww8ca4f21666bf5a1d'   #企业号的标识ID
    corpsecret = '3CtjHoP8QuCkMpAmrIKkLiuCZMZ0ihSpWMSKbQTIinrU'  #应用程序的密钥
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)
[root@zabbix alertscripts]# chmod +x testzabbix.py
[root@zabbix alertscripts]# ./testzabbix.py 1 test 你好
{"text": {"content": "test\n你好"}, "safe": "0", "msgtype": "text", "touser": "ZhangJie", "agentid": "1000003", "toparty": "2"}
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}
现在需要在手机上下载一个 "企业微信“ 软件,并使用上面注册企业微信时绑定的那个微信的登陆

可以看到一条消息
zabbix结合微信报警_第13张图片

三.配置Web页面自动报警

1.媒介

zabbix结合微信报警_第14张图片
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
zabbix结合微信报警_第15张图片

2.把媒介贴到用户上

zabbix结合微信报警_第16张图片
zabbix结合微信报警_第17张图片
zabbix结合微信报警_第18张图片
zabbix结合微信报警_第19张图片

3.配置动作

zabbix结合微信报警_第20张图片
zabbix结合微信报警_第21张图片
zabbix结合微信报警_第22张图片

!!!!!!!!!!!!!!!!!
服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}

报警操作

zabbix结合微信报警_第23张图片
恢复操作
zabbix结合微信报警_第24张图片

3.测试

现在必须有一个被监控的主机,进去已经添加进了监控的zabbix_agentd主机
[root@mysql ~]# systemctl stop zabbix_agentd

等待大概5~6分钟,看到已经有错误提示了
zabbix结合微信报警_第25张图片
再看企业微信,也已经发过来了,上面的不用管,是我原来测试的
zabbix结合微信报警_第26张图片
回到被刚刚关掉agentd的主机上,再开启
[root@mysql ~]# systemctl start zabbix_agentd

可以看到恢复操作没有问题
zabbix结合微信报警_第27张图片

实验完毕!!!!!!!!!!

你可能感兴趣的:(zabbix)