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

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

  • 一、Zabbix 概述
  • 二、部署 Zabbix 结合企业微信报警
    • 1.注册企业微信
    • 2.配置企业微信
      • 1)创建部门
      • 2)添加成员
    • 3.创建应用
    • 4.配置监控脚本
      • 1)修改 Zabbix_server 配置文件
      • 2)安装 simplejson 软件
      • 3)配置监控脚本
      • 4)报警测试
    • 5.Zabbix Web 界面配置
      • 1)配置报警媒介
      • 2)把媒介贴到用户上
      • 3)创建动作
      • 4)设置报警消息
      • 5)设置恢复报警消息
  • 三、测试 Zabbix 结合企业微信报警
    • 1.被监控机配置
    • 2.通过 Zabbix Web管理界面来对 MySQL 服务器进行监控
    • 3.关闭 MySQL 服务器的Agent
    • 4.验证

一、Zabbix 概述

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

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

1.注册企业微信

注册地址: https://work.weixin.qq.com
Zabbix 结合企业微信实现微信报警功能_第1张图片

2.配置企业微信

1)创建部门

Zabbix 结合企业微信实现微信报警功能_第2张图片

2)添加成员

Zabbix 结合企业微信实现微信报警功能_第3张图片
Zabbix 结合企业微信实现微信报警功能_第4张图片

3.创建应用

Zabbix 结合企业微信实现微信报警功能_第5张图片
Zabbix 结合企业微信实现微信报警功能_第6张图片

4.配置监控脚本

  • 注意:如果未部署 Zabbix 监控平台需看:分布式部署 Zabbix 监控平台 来进行部署。

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 软件

  • simplejson 软件包从这个连接下载:https://pan.baidu.com/s/1YGqHn4bDLZZrW6X6YApHLQ
  • 提取码:x3r0
[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@zabbix alertscripts]# ls
[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

Zabbix 结合企业微信实现微信报警功能_第7张图片

3)配置监控脚本

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

touser
Zabbix 结合企业微信实现微信报警功能_第8张图片
Zabbix 结合企业微信实现微信报警功能_第9张图片
toparty
Zabbix 结合企业微信实现微信报警功能_第10张图片
agentid
Zabbix 结合企业微信实现微信报警功能_第11张图片
corpid
Zabbix 结合企业微信实现微信报警功能_第12张图片
corpsecret
Zabbix 结合企业微信实现微信报警功能_第13张图片

[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 simplejson-3.8.2]# chmod +x testzabbix.py
[root@zabbix alertscripts]# chmod +x testzabbix.py 
[root@zabbix alertscripts]# ./testzabbix.py 1 test 你好

Zabbix 结合企业微信实现微信报警功能_第14张图片

5.Zabbix Web 界面配置

  • 切换到中文

Zabbix 结合企业微信实现微信报警功能_第15张图片
Zabbix 结合企业微信实现微信报警功能_第16张图片

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

1)配置报警媒介

Zabbix 结合企业微信实现微信报警功能_第17张图片

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

Zabbix 结合企业微信实现微信报警功能_第18张图片

2)把媒介贴到用户上

Zabbix 结合企业微信实现微信报警功能_第19张图片
Zabbix 结合企业微信实现微信报警功能_第20张图片
Zabbix 结合企业微信实现微信报警功能_第21张图片

3)创建动作

Zabbix 结合企业微信实现微信报警功能_第22张图片
Zabbix 结合企业微信实现微信报警功能_第23张图片

4)设置报警消息

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

Zabbix 结合企业微信实现微信报警功能_第24张图片
Zabbix 结合企业微信实现微信报警功能_第25张图片

5)设置恢复报警消息

Zabbix 结合企业微信实现微信报警功能_第26张图片

三、测试 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 服务器进行监控

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

Zabbix 结合企业微信实现微信报警功能_第27张图片
Zabbix 结合企业微信实现微信报警功能_第28张图片

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

Zabbix 结合企业微信实现微信报警功能_第29张图片

3.关闭 MySQL 服务器的Agent

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

Zabbix 结合企业微信实现微信报警功能_第30张图片

4.验证

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

Zabbix 结合企业微信实现微信报警功能_第31张图片
开启 MySQL 上的 Agent 再次验证

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

Zabbix 结合企业微信实现微信报警功能_第32张图片

你可能感兴趣的:(综合项目,zabbix企业微信报警,linux,centos,zabbix实现微信报警功能)