`

curl方式实现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报警内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/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 "$@" | 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 'tt"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默认执行路径下
1
2
3
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.设置触发器动作发送方式





收到的微信消息:

原文地址:http://www.cnyunwei.com/thread-29593-1-1.html

分享到:
评论

相关推荐

    PHP基于curl实现模拟微信浏览器打开微信链接的方法示例

    主要介绍了PHP基于curl实现模拟微信浏览器打开微信链接的方法,结合实例形式分析了php使用curl通过设置HTTP_USER_AGENT实现模拟微信浏览器相关操作技巧,需要的朋友可以参考下

    利用批处理和Curl命令上传微信媒体素材文件

    利用批处理和Curl命令上传微信媒体素材文件,并获取微信返回的MediaID,只要执行文件夹中的批处理文件,便会自动上传当前目录中所有的JPG或Mp3文件,文件类型可以批处理文件中设置。本人研究了上个上午的成果。非常...

    java企业微信机器人curl消息

    1. 主要包含3个java文件Robot.java, TextMessage.java, Utils.java 2. 网上拷贝可用的代码,只需更改机器人地址即可. 3. 包含httpclient jar包,fastjson jar包等.

    Zabbix监控培训视频.rar

    │ 12 - 06-使用zabbix实现微信报警.mp4 │ 13- 07-zabbix的故障预处理和报警升级.mp4 │ 14 - 08-zabbix自定义图形.mp4 │ 15 - 09-使用grafana为zabbix出图.mp4 │ 16 - 10-grafana创建自定义图形.mp4 │ 17 - 11-...

    java企业微信机器人curl消息.rar

    源码参考,欢迎下载

    zabbix从入门到精通.zip

    06-zabbix报警快速入门 zabbix-day2 01-linux模板的监控项介绍 02-zabbix内置key讲解 03-tcp11状态监控 04-自定义监控项深入1 05-自定义监控项深入2 06-自定义触发器深入1 07-自定义触发器深入2 zabbix-day3 01-...

    PHP实现微信扫码关注公众号并授权登录的源代码

    第三步:每隔2秒检测是否关注微信公众号 通过微信openid和access_token获取微信用户信息,并存入表当中的信息 若是没有获取到数据,记得开启curl,检查防火墙、启用 微信服务器IP白名单设置 PHP扫码关注公众号更新...

    php利用CURL模拟进行微信接口的GET与POST类.zip

    php CURL函数可以模仿用户进行一些操作,如我们可以模仿用户提交数据也可以模仿用户进行网站访问了,下面我们来介绍利用CURL模拟进行微信接口的GET与POST例子,例子非常的简单就两个大家一起看看.

    微信授权登录源码 微信公众号关注授权登录源码 扫码关注微信公众号授权登录源码

    第三步:每隔2秒检测是否关注微信公众号 通过微信openid和access_token获取微信用户信息,并存入表当中的信息 若是没有获取到数据,记得开启curl,检查防火墙、启用 微信服务器IP白名单设置 PHP扫码关注公众号更新...

    php利用CURL模拟进行微信接口的GET与POST类

    php CURL函数可以模仿用户进行一些操作,如我们可以模仿用户提交数据也可以模仿用户进行网站访问了,下面我们来介绍利用CURL模拟进行微信接口的GET与POST例子,例子非常的简单就两个大家一起看看.

    curl实现ftp上传下载

    curl实现ftp上传下载,vs版本实现,可以使用

    php中CURL模拟进行微信接口的GET与POST例教程共

    php中CURL模拟进行微信接口的GET与POST例教程共26页.pdf.zip

    php实现微信模板消息推送

    1.微信公众号模板消息配置 2.PHP代码 /** * 发送模板消息 */ public function send_notice(){ //获取access_token if ($_COOKIE['access_token']){ $access_token2=$_COOKIE['access_token']; }else{ $json_...

    VC WeiXinPay微信扫描二维码支付相关源码.rar

    VC WeiXinPay微信扫描二维码支付相关源码,这是个VC.NET源码项目,使用了qrencode生成了二维码,本微信支付项目功能包括了生成二维码、结果签名验证、下单测试、生成15位随机字符串等,有一些公共支付接口部分,需要...

    PHP Curl模拟登录微信公众平台、新浪微博实例代码

    使用curl之前先打开curl配置,具体方式百度一下就知道,开启curl扩展。密码用md5加密,这是经过测试成功的,把用户跟密码改成你的就行了。 下面一段代码给大家介绍php使用curl模拟登录微信公众平台,具体代码如下所...

    CURL HTTP POST方式表单递交

    4、我也是用到了curl但网上的资料大部分比较松散,我自己实现后分享给大家,相互学习,一起提高 ------------------------------ 源码文件夹说明: bin:存放需要用到的附加动态库 其中vcredist_x86.exe安装后用于...

    微笑微信 0.2.2 UTF8.zip

    微笑微信是一款免费的开源微信公众平台管理系统,基于PHP MYSQL(必须支持CURL组件)让微信开发者最便捷的进行二次开发。 微笑微信 0.2.2 UTF8 更新日志:2014-03-23 模拟登录类更新,修复了因为官方URL更新,导致...

    PHP微信扫码关注公众号并授权登录源码.zip

    第三步:每隔2秒检测是否关注微信公众号 通过微信openid和access_token获取微信用户信息,并存入表当中的信息 若是没有获取到数据,记得开启curl,检查防火墙、启用 微信服务器IP白名单设置 PHP扫码关注公众号更新...

    c++封装curl,实现get,post,download

    c++封装了curl的get,post,download

Global site tag (gtag.js) - Google Analytics