微信报警 zabbix实现详解

所属分类: 网络编程 / 其它综合 阅读数: 1217
收藏 0 赞 0 分享

现实生产环境中,我们通常使用邮件和短信接受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 "$@" | 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.设置触发器动作发送方式

收到的微信消息:

 

本文出自 “铜锣湾” 博客,请务必保留此出处http://wuhf2015.blog.51cto.com/8213008/1688614

以上就是微信报警 zabbix 的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

更多精彩内容其他人还在看

GitHub 热门:别再用 print 输出来调试代码了

本文给大家分享GitHub 热门:别再用 print 输出来调试代码了的详细解说,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

将来会是Python、Java、Golang三足鼎立的局面吗

python的优势在于数据处理和人工智能等方向,所以go只可能吞噬Java的份额,很难撼动Python的奶酪,所以将来会是Python、Java、Golang三足鼎立的局面吗
收藏 0 赞 0 分享

EventStore文件存储设计详解

ENode是一个CQRS+Event Sourcing架构的开发框架,这篇文章主要介绍了EventStore文件存储设计 ,需要的朋友可以参考下
收藏 0 赞 0 分享

简单实用的aixcoder智能编程助手开发插件推荐

本文给大家分享一款简单实用的aixcoder智能编程助手开发插件推荐 ,需要的朋友可以参考下
收藏 0 赞 0 分享

分享4个最受欢迎的大数据可视化工具

大数据可视化是进行各种大数据分析解决的最重要组成部分之一。这篇文章主要介绍了4个最受欢迎的大数据可视化工具,需要的朋友可以参考下
收藏 0 赞 0 分享

Spark在Windows下的环境搭建方法

这篇文章主要介绍了Spark在Windows下的环境搭建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Django 使用 cookie 实现简单的用户管理功能

这篇文章主要介绍了Django 使用 cookie 实现简单的用户管理功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

eBay 打造基于 Apache Druid 的大数据实时监控系统

Apache Druid 是一个用于大数据实时查询和分析的高容错、高性能开源分布式时序数据库系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。这篇文章主要介绍了eBay 如何打造基于 Apache Druid 的大数据实时监控系统?需要的朋友可以参考下
收藏 0 赞 0 分享

人工智能(AI)首选Python的原因解析

Python虽然是脚本语言,但是因为容易学,迅速成为科学家的工具。Python 已经是数据分析和 AI的第一语言,网络攻防的第一黑客语言,正在成为编程入门教学的第一语言,云计算系统管理第一语言
收藏 0 赞 0 分享

Hadoop分布式集群的搭建的方法步骤

这篇文章主要介绍了Hadoop分布式集群的搭建的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享
查看更多