zabbix结合微信报警

zabbix微信报警

一.配置企业微信

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

https://work.weixin.qq.com/
在这里插入图片描述
绑定完成后,下次可以使用绑定的微信扫描登陆

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

在这里插入图片描述
应该默认只有一个用户,打勾设置组为上面创建的
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

二.配置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 ..
我下面图片中划线的东西,和下面脚本文件中对应写

在这里插入图片描述
touser
在这里插入图片描述
toparty
在这里插入图片描述
agentid
在这里插入图片描述
corpid
在这里插入图片描述
corpsecret
在这里插入图片描述

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

以下代码来源网络,我只是做了修改,如有侵权,请联系我删除
[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'}
现在需要在手机上下载一个 "企业微信“ 软件,并使用上面注册企业微信时绑定的那个微信的登陆

可以看到一条消息
在这里插入图片描述

三.配置Web页面自动报警

1.媒介

在这里插入图片描述
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
在这里插入图片描述

2.把媒介贴到用户上

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.配置动作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

报警操作

在这里插入图片描述
恢复操作
在这里插入图片描述

3.测试

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

等待大概5~6分钟,看到已经有错误提示了
在这里插入图片描述
再看企业微信,也已经发过来了,上面的不用管,是我原来测试的
在这里插入图片描述
回到被刚刚关掉agentd的主机上,再开启
[root@mysql ~]# systemctl start zabbix_agentd

可以看到恢复操作没有问题
在这里插入图片描述

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

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值