【全网首发】zabbix如何实现微信报警

现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉。公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多。微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本。

微信的第三方接口要求我们先申请一个企业号——传送门:https://qy.weixin.qq.com/



如何操作企业号?

1.通讯录添加企业成员

我们要提前把成员信息添加进组织部门,必填项+手机号或者微信号,这样别人扫描二维码的时候才能成功关注企业号。

注意:这里有两个我们要用到信息,一个组织部门的ID,一个部门成员的账号(账号是自己手动指定的,不同于微信号,最好是字母加数字)

2.应用中心创建应用

我们要在这里创建应用,因为要通过应用发送消息给部门成员

注意:这里要记住一个值,应用ID

3.给部门设置管理员

设置--->功能设置---->权限管理---->新建管理组

管理员必须事先已经关注了企业号,并且已经设置好邮箱地址

确定管理员可以读取通讯录,可以使用应用发消息。

注意:我们需要管理员的CorpID和Secret

我们要准备这些东西:

  • 一个微信企业号
  • 企业号已经被部门成员关注
  • 企业号里有一个可以发消息的应用
  • 一个授权管理员,可以使用该应用给成员发消息

我们要取到这些信息:

  • 成员账号
  • 组织部门ID
  • 应用ID
  • CropID
  • Secret


如何调用微信接口?

调用微信接口需要一个调用接口的凭证:access_token

通过 :CropID 、Secret  才能获取到access_token,但是获取到的token有效期为两分钟

微信企业号接口调试工具传送门:http://qydev.weixin.qq.com/debug



Shell脚本原理

使用:

curl -s -G  url           获取 AccessToken

使用:

curl --data  url     传送凭证调用企业号接口

zabbix会传递三个参数给脚本,$1是消息接收账号,$2报警标题,$3报警内容

#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###wuhf###
###V1-2015-08-25###

CropID=‘xxxxxx‘
Secret=‘xxxxxx‘
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" 
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" ‘{print $4}‘)

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body() {
        local int AppID=3                        企业号中的应用id
        local UserID=$1                          部门成员id,zabbix中定义的微信接收者
        local PartyID=1                          部门id,定义了范围,组内成员都可接收到消息
        local Msg=$(echo "[email protected]" | cut -d" " -f3-)  过滤出zabbix中传递的第三个参数
        printf ‘{\n‘
        printf ‘\t"touser": "‘"$User"\"",\n"
        printf ‘\t"toparty": "‘"$PartyID"\"",\n"
        printf ‘\t"msgtype": "text",\n‘
        printf ‘\t"agentid": "‘" $AppID "\"",\n"
        printf ‘\t"text": {\n‘
        printf ‘\t\t"content": "‘"$Msg"\""\n"
        printf ‘\t},\n‘
        printf ‘\t"safe":"0"\n‘
        printf ‘}\n‘
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

为什么要这样写脚本?

因为微信企业号开放的端口有固定的格式限制

企业号支持的格式:http://qydev.weixin.qq.com/wiki/index.php?title=消息类型及数据格式

将脚本放入zabbix默认执行路径下

mv weixin.sh /usr/local/zabbix/share/zabbix/alertscripts
chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh


服务器端

1.创建媒介

2.创建用户

3.创建触发器动作发送内容

4.设置触发器动作发送方式



收到的微信消息:



稍后附上python脚本。

时间: 2024-10-29 19:08:24

【全网首发】zabbix如何实现微信报警的相关文章

Zabbix分布式监控微信报警实战

作为运维工程师,最重要的事情就是保证该网站正常稳定的运行,需要实时监控网站.服务器的运行状态,并且有故障及时去处理. 监控网站无需人工时刻去访问WEB网站或者登陆服务器去检查, 可以借助开源监控软件例如Zabbix.Cacti.Nagios.Ganglia等监控来实现对网站的7x24小时的监控,并且可以做到有故障及时报警通知SA解决. Zabbix除了可以使用邮件报警之外,还可以通过多种方式把告警信息发送到指定人,例如短信报警方式,越来越多的企业开始使用Zabbix结合微信作为主要的告警方式,因

zabbix之企业微信报警通知

一.背景介绍: 起初使用邮件报警,接收效果一直不好,需要打开邮箱才看到报警邮件.后来使用微信企业公众号,方便,省事,接收及时,可以做到第一时间相应.现在微信企业公众号更新成企业微信了.发送报警的方式有稍微改变.之前借用别人的脚本,密密麻麻.借此机会,自己写了个脚本与之分享. 二.实现步骤: 1.申请企业微信号 2.创建告警脚本 3.设置web管理界面触发脚本. 4.修改zabbix_server端配置文件.并重启 5.测试报警触发功能 6.完成 三.实施部署: 完成第一步:申请企业微信号: 地址

zabbix配置企业微信报警

+++++++++++++++++++++++++++++++++++++++++ 1. 工作中最长使用的就是微信,普及,开源,而且免费!!! 2. 要记录的值: · 部门id     · 企业id 原文地址:https://www.cnblogs.com/wwchihiro/p/11238749.html

配置zabbix通过微信报警企业微信报警

如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警:一般是服务器安装串口GSM短信猫(也有其他平台提供这种接口),zabbix可以使用他来发送短信通知给管理员 邮件报警:一般是在server端安装邮件的客户端如sendEmail等,写脚本给zabbix进行调用,触发后发邮件给管理员 Q Q 报警:一般使用Mojo-Webqq的perl模板和cpan

Zabbix 使用企业微信公众号发送报警短信

#使用微信号发短信一般会有条数限制,企业公众号没有这个限制,而且成员分组也方便. 脚本如下所示,需要修改的部分都有注释,替换掉就可以使用. cat wechat.py  #!/usr/bin/python #_*_coding:utf-8 _*_   import urllib,urllib2 import json import sys import simplejson reload(sys) sys.setdefaultencoding('utf-8') def gettoken(corp

关于zabbix的微信报警的二次开发

zabbix用微信报警网上有很多教程了,基本可以实现zabbix推送报警到微信,如http://mageedu.blog.51cto.com/4265610/1687589 但是存在如下缺点: 1.推送信息简单,不能显示历史数据: 2.zabbix没有一个很好的报警确认机制.我现在生产环境有24小时值班收报警的人员,他收到报警会通知相关管理员处理报警,当一个管理员不小心触发一个报警时候,他自己是知道这个报警是如何去接触的,那么他要反向去通知值班收报警的人员,如此场景zabbix并没有一个好的报警

zabbix微信报警设置

# Zabbix-Alert-WeChat # zabbix微信报警 ### 需要具备一下条件 * 注册微信企业号(团队类型) [点击注册](https://qy.weixin.qq.com/) #### 安装simplejson 3.8.2 ```bash wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.

ZABBIX 微信报警 插件(python无图)

ZABBIX可以实现短信.邮件.微信等各种报警,这三种基本大家都很熟悉, 现在基于微信写py,感觉钉钉的团队是从微信出来的,变量都不改,太懒了,说可以实现微信报警苍老师说过:Life is short,you need python! 1 微信配置 2 程序配置 3 ZABBIX配置 4 效果展现 5 docker环境修改 1.1.1 部门设置 1.1.2 应用设置 1.1.3 权限管理 1.1 注册安装 3.1 报警媒介类型 3.2 配置用户 3.3 动作设置 1 微信配置 微信公众号官网:h

Zabbix之微信报警

zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. 下文讲述了如何通过微信实现zabbix的告警: 第一步.注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的,申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号