Zabbbix 微信报警

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

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

关于企业号的申请可以参考以下链接我就在这里多说了http://jingyan.baidu.com/article/6525d4b1210921ac7d2e941b.html

如何操作企业号?

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

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=2                        企业号中的应用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 wechat.sh /usr/local/zabbix/share/zabbix/alertscripts    ##Zabbix 默认脚步路径

chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/wechat.sh

chmod +x /usr/local/zabbix/share/zabbix/alertscripts/wechat.sh

测试脚步是否可用

./Wechat.sh wang415 111 wang     # 第一个wang415 是你要发的人,第二个111 是可以随意写, wang 是你要发个测试消息



服务器端

  1. 创建媒介

Script name 就是的脚步名字

2.创建用户添加WeChat 组

创建Media 选择wechat 脚本发给wang415

  1. 创建触发器动作发送内容复制以下消息到Default message 内

\

IP: {IPADDRESS}\n

Host Name: {HOST.NAME1}\n

Status: {TRIGGER.STATUS}\n

Severity: {TRIGGER.SEVERITY}\n

Date: {EVENT.DATE} {EVENT.TIME}\n

\n

{ITEM.NAME1} ({ITEM.KEY1}): {ITEM.VALUE1}\n

\n

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



收到的微信消息:

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

Zabbbix 微信报警的相关文章

CentOS 7 zabbix实现微信报警

环境 : LAMP  CentOS7  192.168.94.11 首先搭建LAMP环境 , 安装zabbix [[email protected] ~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm [[email protected] ~]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm [[email protec

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

现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉.公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多.微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本. 微信的第三方接口要求我们先申请一个企业号--传送门:https://qy.weixin.qq.com/ 如何操作企业号? 1.通讯录添加企业成员 我们要提前把成员信息添加进组织部门,必填项+手机号或者微信号,这样别人扫描二维码的时候才能成

zabbix-3.0.1 添加微信报警

现实生产环境中,我们已经使用过邮件和短信接收zabbix报警信息,但是邮件的延迟是比较高的,外包公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多.微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本. 企业微信参考文档:https://work.weixin.qq.com/api/doc 一.微信公众号用户权限设置 1. 申请微信公众号(企业号) https://mp.weixin.qq.com/ 2. 审核完成后,需要在手动添加部门.管理员和被发送成员的信息. 3.

关于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

实战Nagios网络监控(3)——Nagios 微信报警

1. 下载微信公众平台私有接口 # yum install -y git # git clone https://github.com/lealife/WeiXin-Private-API 2. 修改微信公众平台私有接口代码,以配合 nagios 报警 # cp -r WeiXin-Private-API /usr/local/nagios/libexec/weixin # chown -R nagios.nagios /usr/local/nagios/libexec/weixin # cd

Zabbix之微信报警

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

zabbix 3.0.2微信报警

一.注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的 申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号. 就可以看到用户数了,接下来的就要使用的用户的微信ID号了.点击用户查看用户的微信ID号.在浏览器查看用户的微信ID号.就是那个红色的ID了. https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=i