`

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

分享到:
评论

相关推荐

    Zabbix安装,微信报警(第六版)

    通过上述步骤,您可以顺利完成Zabbix的安装与基本配置,并实现微信报警功能。Zabbix的强大之处在于它可以自定义各种监控项,并且通过多种方式发送报警通知,这为企业的IT运维提供了极大的便利。希望本文能帮助您更好...

    系统环境Centos7.4 Zabbix4.0微信告警.docx

    由于这是一个内网环境,只能通过一台代理服务器进行对外通信,且邮件服务的端口被封禁,因此采用微信作为报警方式显得尤为合适。 首先,你需要注册一个微信企业号。访问 https://qy.weixin.qq.com/ 完成注册,并...

    2.zabbix微信报警-整理详细文档笔记总结

    本文主要介绍如何在Zabbix 4.03中配置微信报警,以便在监控事件发生时通过微信接收警报。以下是详细步骤和关键配置: 1. **Zabbix安装与配置** - Zabbix通常通过源码编译进行安装,确保所有依赖项已安装并正确配置...

    zabbix微信监控配置

    ### zabbix微信监控配置知识点详解...通过上述步骤,你可以实现zabbix监控系统与微信之间的集成,使得监控报警能够以更加便捷高效的方式通知相关人员。这种方式不仅提升了故障响应速度,也增强了系统的稳定性和可用性。

    zabbix微信报警

    ### zabbix微信报警知识点详解 #### 一、概述 Zabbix是一款开源的网络监控系统工具,主要用于监控网络设备和服务的状态。随着移动办公的普及,利用微信等即时通讯工具进行告警已经成为很多企业的首选方案之一。...

    微信报警 zabbix实现详解

    《微信报警Zabbix实现详解》 在现代IT运维中,实时监控系统状态并及时通知运维人员至关重要。Zabbix是一款广泛使用的开源监控解决方案,它能够监控网络设备、服务器、应用程序等多种IT资源。然而,传统的报警方式如...

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

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

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

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

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

    标题中的“java企业微信机器人curl消息.rar”表明这是一个关于使用Java编程语言实现与企业微信机器人交互的项目。通过CURL命令来发送消息是常见的HTTP请求方法,这通常涉及到网络编程和API调用。 在Java中,我们...

    java企业微信机器人curl消息

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

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

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

    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-...

    Zabbix 3.4配置钉钉机器人报警图文教程

    本教程将详细讲解如何在Zabbix 3.4版本中配置钉钉机器人来实现报警通知,以确保在系统出现异常时,能够迅速接收到警告信息,及时采取应对措施。 首先,我们需要了解Zabbix的报警机制。Zabbix提供了多种报警媒介,...

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

    在PHP开发中,CURL库是一个非常重要的工具,它允许...总的来说,PHP中的CURL是实现微信接口调用的重要工具,通过灵活设置CURL选项,可以满足各种复杂的请求需求。掌握CURL的使用,能够帮助开发者更高效地进行微信开发。

    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扫码关注公众号更新...

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

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

    curl实现ftp上传下载

    libcurl是curl项目的库形式,提供了一个方便的API,使得开发者能够在各种编程环境中利用curl的功能。 首先,我们需要理解FTP(File Transfer Protocol),它是一种用于在互联网上进行文件传输的标准协议。FTP提供了...

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

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

Global site tag (gtag.js) - Google Analytics