Zabbix 结合企业微信实现微信报警功能

一、Zabbix 概述

Zabbix 可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用 Zabbix 结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。

二、部署 Zabbix 结合企业微信报警

1.注册企业微信

注册地址: https://work.weixin.qq.com
在这里插入图片描述

2.配置企业微信

1)创建部门

在这里插入图片描述

2)添加成员

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

3.创建应用

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

4.配置监控脚本

1)修改 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

2)安装 simplejson 软件

[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@zabbix alertscripts]# ls
simplejson-3.8.2.tar.gz
[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

在这里插入图片描述
3)配置监控脚本

  • 下面图片中划线的东西,和下面脚本文件中对应写。

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

[root@zabbix simplejson-3.8.2]# cd ..
[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":"1",             #企业号中的部门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 =  'ww849e7d6548123bc4'      #企业号的标识ID.
    corpsecret = 'ipzr_M5MpAKeao2IZROFwqQFuadWCNmQGyYujb12345'    #应用程序的密钥.
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,user,subject,content)

4)报警测试

[root@zabbix alertscripts]# chmod +x testzabbix.py 
[root@zabbix alertscripts]# ./testzabbix.py 1 test 你好

在这里插入图片描述

5.Zabbix Web 界面配置

  • 切换到中文

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

  • 更新后刷新一下页面即可

1)配置报警媒介
在这里插入图片描述

  • 脚本参数添加如下即可
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

在这里插入图片描述
2)把媒介贴到用户上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)创建动作
在这里插入图片描述
在这里插入图片描述
4)设置报警消息

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

在这里插入图片描述
在这里插入图片描述
5)设置恢复报警消息
在这里插入图片描述

三、测试 Zabbix 结合企业微信报警

1.配置被监控端

[root@mysql ~]# ls
anaconda-ks.cfg  zabbix-4.2.6.tar.gz  zabbix-agent-3.2.6-1.el7.x86_64.rpm
[root@mysql ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm
[root@mysql ~]# vim /etc/zabbix/zabbix_agentd.conf
95 Server=192.168.1.1
136 ServerActive=192.168.1.1
147 Hostname=mysql
[root@mysql ~]# systemctl start zabbix-agent

2.通过 Zabbix Web 管理界面来对 MySQL 服务器进行监控

  • 上面的 "配置" 然后 "主机" ,创建主机,左边的群组记得选 "所有" ,点击 "创建主机"

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

  • 点击 "模板" 界面,链接指示器,选择如下的模板

在这里插入图片描述

3.关闭 MySQL 服务器的 Agent

[root@mysql ~]# systemctl stop zabbix-agent

在这里插入图片描述

4.验证

注意:需要等待大概5~6分钟,这个消息比较慢。

在这里插入图片描述
开启 MySQL 上的 Agent 再次验证

[root@mysql ~]# systemctl start zabbix-agent

在这里插入图片描述

  • 23
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿许浪尽天涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值