zabbix支持多种报警机制,比如:邮件、短信、微信等等。下面就介绍如何使用微信报警。
使用微信报警必须得有企业微信账号,个人微信账号不行。

申请企业微信

注册地址:https://work.weixin.qq.com/
注册企业微信,根据提示填写自己的信息就行,注册完成后会有提示进入管理后台。根据自己需要设置即可。


需要记住的几个信息。
成员账号:添加的成员账号。
组织部门ID:可以在通讯录中部门名称右侧竖着的三个点处查看。
Agentid:企业应用中选中对应的应用点击进去后就可以看到。
Secret:跟Agentid在一起。
CorpID:我的企业里面可以查看。

zabbix配置

修改zabbix-server配置文件,指定报警脚本的位置,我的在/usr/lib/zabbix/alertscripts目录下。

# grep alertscripts /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

脚本配置

安装simplejson

# yum install python-simplejson -y

上传脚本,并根据注释修改成自己的信息。

#!/usr/bin/python
#_*_coding:utf-8 _*_import urllib,urllib2
import json
import sys
import simplejsonreload(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_urltry:token_file = urllib2.urlopen(gettoken_url)except urllib2.HTTPError as e:print e.codeprint 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_tokensend_values = {"touser":"XXX",      #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。"toparty":"X",            #企业号中的部门id。"msgtype":"text",      #消息类型。"agentid":"1000005",    #企业号中的应用id。"text":{"content":subject + '\n\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')send_request = urllib2.Request(send_url, send_data)response = simplejson.loads(urllib2.urlopen(send_request).read())print str(response)if __name__ == '__main__':user = str(sys.argv[1])     #zabbix传过来的第一个参数subject = str(sys.argv[2])  #zabbix传过来的第二个参数content = str(sys.argv[3])  #zabbix传过来的第三个参数corpid =  '1111111111111111'   #CorpID是企业号的标识corpsecret = '111111111111111111111111'  #corpsecretSecret是管理组凭证密钥accesstoken = gettoken(corpid,corpsecret)senddata(accesstoken,user,subject,content)

修改脚本权限:

# cd /usr/lib/zabbix/alertscripts/
# chmod +x wechat.py && chown zabbix:zabbix wechat.py

可以做测试,看看能否发出信息

# python wechat_alert.py test test test
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwe302dd7e2757ca1c&corpsecret=o5W2pH9Bo4nOtJBi8yNzPeQ2j-T7KypPcRJ8Hu_E0HU
{'invalidparty': '2', 'invaliduser': u'', 'errcode': 0, 'errmsg': 'ok'}


证明能够收到消息。

zabbix web界面配置

创建报警媒介。



Script parameters对应脚本内的三个参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

创建报警用户

可以创建新的用户,也可以使用admin 账户,我是直接使用admin账户的。



sent to对应部门id。

设置报警动作

使用邮件报警动作就行,在此不再过多介绍了。
报警标题:
故障: {TRIGGER.STATUS},服务器: {HOSTNAME1} 发生: {TRIGGER.NAME} 故障!
报警信息:
告警主机: {HOST.NAME}
主机地址: {HOST.IP}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
告警详情: {ITEM.NAME}: {ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件代码: {EVENT.ID}

恢复标题:
恢复: {TRIGGER.STATUS},服务器: {HOSTNAME1} 发生: {TRIGGER.NAME} 恢复!
恢复信息:
恢复主机: {HOST.NAME}
主机地址: {HOST.IP}
恢复时间: {EVENT.DATE} {EVENT.TIME}
恢复等级: {TRIGGER.SEVERITY}
恢复信息: {TRIGGER.NAME}
恢复项目: {TRIGGER.KEY1}
恢复详情: {ITEM.NAME}: {ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件代码: {EVENT.ID}

测试:停止一个服务查看是否能收到报警信息。
在服务器上停止grafana服务查看。

# systemctl stop grafana-server


遇到的问题

web界面Action log显示已成功发送,但是收不到消息,经过查询是wechat_alert.py属主属组不是zabbix,也没有执行权限,修改后能够正常接收信息。

转载于:https://www.cnblogs.com/ebay/p/8963500.html

zabbix如何配置微信报警相关推荐

  1. zabbix配置微信报警

    前言:zabbix一般可以通过邮件以及脚本的方式进行告警,zabbix通过微信报警的方式也是通过脚本来实现 企业微信号内配置 自行申请企业号 在企业号内添加新应用 应用创建完之后查看并启用应用,同时会 ...

  2. 使用docker部署zabbix,自定义微信报警

    docker部署zabbix #使用的相关镜像:docker pull mysql:5.7docker pull zabbix/zabbix-server-mysql:centos-latest # ...

  3. zabbix如何实现微信报警

    关于zabbix如何实现微信报警,这篇博客写的非常详细 [全网首发]zabbix如何实现微信报警 - 铜锣湾 - 51CTO技术博客 http://wuhf2015.blog.51cto.com/82 ...

  4. Zabbix实现企业微信报警

    zabbix实现企业微信报警 1.下载安装手机版企业微信 2.注册账户,并创建一个企业,之后向企业中添加员工 3.找到我的企业->记录企业ID:ww1d1845f4b25a12fb 4.在企业下 ...

  5. Zabbix配置微信报警通知

    Zabbix告警可以通过邮件,微信,电话,短信等方式发送告警消息. 电话和短信需要向运营商购买相应的网关,需要付费: 邮件和微信是免费的,可以根据业务需要选择相应的告警模式 Zabbix版本:3.2 ...

  6. zabbix分布式应用和微信报警

    分布式监控: zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压 ...

  7. Zabbix4配置微信报警及消息群发

    报警模块下载地址为:wget https://github.com/OneOaaS/weixin-alert/archive/master.zip 一. 企业微信号申请 地址: http://work ...

  8. zabbix监控设置微信报警

    首先申请一个企业号:企业微信 添加部门通讯录: 创建子部门添加成员: 先创建部门再创建应用,创建应用的时候就可以选择部门成员,一定要选部门,选择应用的时候必须要上传头像: 要准备的东西: 1.一个微信 ...

  9. zabbix邮件报警和微信报警

    文章目录 配置zabbix邮件报警和微信报警. 一.邮件报警 1. 配置报警媒介类型 2. 创建用户 创建用户组并设置权限 创建用户 添加报警媒介 设置权限 3. 配置动作 1.创建主机组 2.创建模 ...

最新文章

  1. 使用CSS隐藏HTML元素的4种常用方法
  2. 2109春第一次课程设计实验报告
  3. Bitmap too larget to be uploaded into a texture的解决方法
  4. 在当当买了python怎么下载源代码-Python爬取当当网APP数据
  5. Chrome开发者工具使用console.trace的一个小技巧
  6. Hibernate merge和update的区别
  7. MessagePack简介及使用:一种有效的二进制序列化格式
  8. mysql外连接基准表_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)...
  9. javaScript 计算两个日期的天数相差~~~
  10. 大数据系列2-liunx基础-1操作系统介绍
  11. 当心路径层次太深,名字太长造成解压失败
  12. 数字图像处理(2): 颜色空间/模型—— RGB, CMY/CMYK, HSI, HSV, YUV
  13. Tomcat多层容器的设计
  14. LF-YOLO: A Lighter and Faster YOLO for Weld Defect Detection of X-ray Image
  15. linu重置root密码(CentOS7)
  16. Mac 安装 nvm
  17. 4.2 期货每日早盘操作建议
  18. 顺序表如何插入元素? 看这里!!
  19. 计算机动画基础 吴,chap3计算机动画的图形基础-1(2学时)-2010.9.16.ppt
  20. 接口自动化场景用例——对象嵌套对象

热门文章

  1. Qt的Android应用消除启动黑屏
  2. “卖我一枝笔”:如何史蒂夫·乔布斯将这一经典问题作出回应?
  3. linux shell命令设置内存大小运行jar文件
  4. 聚焦与发散——浅谈编程的发展方向
  5. DSP的GEL文件介绍
  6. modelsim-win64-10.1c的安装和基本使用
  7. smc数显压力表设定方法_SMC压力表使用注意与调试方法
  8. hbuilder能断点吗_知乎点赞破4万!这些PPT小秘密你知道吗?
  9. selenium webdriver你使用的是不受支持的命令行标记
  10. keras网络变为pytorch网络的一些参考