Zabbix监控+企业微信报警

Zabbix是一个非常强大的开源监控软件,但是正常情况下我们只会登到它提供的Web界面来查看监控的信息,不过Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是现在越来越多的企业开始使用Zabbix结合微信作为主要的告警方式,毕竟用邮件的话,看起来没有那么方便,下面来介绍一下怎么将Zabbix发报警信息给微信!

环境介绍:
系统:Centos7.3
zabbix:3.4.13
企业微信

一、企业微信注册

这里直接上企业微信官网直接注册就行,注册比较简单,也不用像以前那样提供营业执照什么的了。
地址:http://work.weixin.qq.com/

二、配置企业微信

注册好后在管理界面点击应用与小程序
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建好应用以后进入应用里把这两个值记录下来
在这里插入图片描述

然后再点击上方的我的企业,把企业的ID也记录一下
在这里插入图片描述

微信接口调用,测试一下接口有没有问题
调用微信接口需要一个调用接口的凭证:access_token
通过CorpID和Secret可以获得access_token
微信企业号接口调试地址: http://qydev.weixin.qq.com/debug
在这里插入图片描述

三、配置Python脚本(也可以用shell)

1、查看Zabbix-server的脚本路径在哪里
打开zabbix-server的配置文件,指定脚本存放路径(这一步很重要,不做的话zabbix识别不到脚本)

root@backup:~ # vim /etc/zabbix/zabbix_server.conf

在这里插入图片描述

2、下载python微信脚本放置上面设置的脚本存放路径
#安装simplejson

#wget https://files.pythonhosted.org/packages/e3/24/c35fb1c1c315fc0fffe61ea00d3f88e85469004713dab488dee4f35b0aff/simplejson-3.16.0.tar.gz
#tar zxvf simplejson-3.16.0.tar.gz && cd simplejson-3.16.0
python setup.py build
python setup.py install

#下载wechat.py脚本

#git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
#cp Zabbix-Alert-WeChat/wechat.py /usr/local/zabbix/alertscripts/
#chmod +x wechat.py && chown zabbix:zabbix wechat.py

3、修改wechat.py脚本 (要修改的部分只有corpid,appsecret,agentid,还有日志路径,把刚才截图里查询的结果填进去即可)

root@backup:~ # vim /usr/lib/zabbix/alertscripts/wechat.py
#!/usr/bin/env python
 #-*- coding: utf-8 -*- 
#date: 2018-11-12 
#comment: zabbix接入微信报警脚本  
import requests 
import sys 
import os 
import json 
import logging  

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',                 
datefmt = '%a, %d %b %Y %H:%M:%S',                 
filename = os.path.join('/usr/lib/zabbix/alertscripts','weixin.log'),                  
filemode = 'a')   #指定一下日志的路径

corpid='ww80b211239205218'   # 企业ID 
appsecret='F9gCNmbiSyB5cvaYwq6BII9egNNBNaOeyr4wOUk'   #应用里的Secret  
agentid=1000002   #应用里的AgentID  
#获取accesstoken 
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret 
req=requests.get(token_url) 
accesstoken=req.json()['access_token']  

#发送消息 
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken  

touser=sys.argv[1] 
subject=sys.argv[2] 
#toparty='3|4|5|6' 
message=sys.argv[3]  

params={
         "touser": touser, 
#       "toparty": toparty,         
         "msgtype": "text",         
         "agentid": agentid,         
         "text": {                 
                 "content": message         
                   },         
                 "safe":0 
}  
req=requests.post(msgsend_url, data=json.dumps(params))  
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

在这里插入图片描述

4、测试脚本

root@backup:~ # chmod  +x /usr/lib/zabbix/alertscripts/wechat.py
root@backup:~ # chown -R zabbix:zabbix  /usr/lib/zabbix/alertscripts/ #记得把这个文件夹的属主和属组给到zabbix
这个用户,不然可能zabbix调用不了这个脚本
root@backup:/usr/lib/zabbix/alertscripts # ./wechat.py ZhangYouCheng  abc  123456789
{"errcode":0,"errmsg":"ok","invaliduser":""}

参数1,:用户名 参数2:主题 参数3:内容
用户名:注意,这个脚本的参数1的用户名必须是企业微信里的账号名字如下图
在这里插入图片描述

查看一下企业微信里能不能收到脚本发来的信息,如果能收到的话已经成功一半了!
在这里插入图片描述

ok,收到消息后只需去Zabbix的web配置一下即可

四、Zabbix Web界面配置

1、配置报警媒介
管理—>报警媒介类型—>创建媒体类型
在这里插入图片描述

在这里插入图片描述
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2、配置用户群组,创建监控用户
在创建用户之前先配置一下用户和群组
管理—>用户群组— Zabbix administrators (这个应该是系统自带的群组,没有的话再创建一个吧)

在这里插入图片描述

进去后选择权限,依次选择,把所有群组都勾选上
在这里插入图片描述

在这里插入图片描述

现在这个群组对所有的组都有读写权限了,现在去创建用户
在这里插入图片描述

管理—>用户—>创建用户
创建一个接收zabbix报警的用户
依次配置用户、报警媒介、权限
在这里插入图片描述

报警媒介这一烂这样配
在这里插入图片描述

权限的话给读写权限,一定是要读写权限,没有读写权限很有可能没有办法发出去消息 !!!

在这里插入图片描述
配置完点更新
在这里插入图片描述

3、创建动作
配置—>动作—>创建动作
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

方便复制
默认标题:故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME}
消息内容:告警主机:{HOST.NAME} 
主机地址:{HOST.IP} 
告警时间:{EVENT.DATE} {EVENT.TIME} 
告警等级:{TRIGGER.SEVERITY} 
告警信息:{TRIGGER.NAME} 
问题详情:{ITEM.NAME}:{ITEM.VALUE} 
事件代码:{EVENT.ID} 

在这里插入图片描述

默认标题:故障解除:{TRIGGER.STATUS}: {TRIGGER.NAME}
恢复主机:{HOST.NAME} 
主机地址:{HOST.IP} 
恢复时间:{EVENT.DATE} {EVENT.TIME} 
恢复等级:{TRIGGER.SEVERITY} 
恢复信息:{TRIGGER.NAME} 
问题详情:{ITEM.NAME}:{ITEM.VALUE} 
事件代码:{EVENT.ID}

在这里插入图片描述

默认标题:Acknowledged: {TRIGGER.NAME}
消息内容:{USER.FULLNAME} acknowledged problem at {ACK.DATE} {ACK.TIME} with the following message:
{ACK.MESSAGE}

Current problem status is {EVENT.STATUS}



配置完后保存

去检查一下
基本上配置完这三个以后就可以收到zabbix发来的消息了
在这里插入图片描述

能够收到zabbix发来的报警了
在这里插入图片描述

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值