首頁 >微信小程式 >微信開發 >微信警報 zabbix實現詳解

微信警報 zabbix實現詳解

高洛峰
高洛峰原創
2017-02-20 14:33:052178瀏覽

這篇文章主要介紹了微信警報zabbix方法的相關資料,需要的朋友可以參考下

現​​實生​​產環境中,我們通常使用郵件和短信接受zabbix報警信息,但是郵件經常被工作人員擱置在角落甚至被設定為垃圾郵件被過濾掉。公司的簡訊介面又太貴,複雜環境中使用短息警報會使維運成本增加很多。微信提供了很好的第三方接口,我們可以利用微信警報以求降低維運成本。

       微信的第三方介面要求我們先申請企業號-傳送門:https://qy.weixin.qq.com/

微信报警 zabbix实现详解

如何操作企業號?

1.通訊錄新增企業成員

           我們必須先將會員資訊加進組織部門,且必填項+手機號碼或微訊號,這樣別人掃描二維碼的時候才能成功關注企業號。

           注意:這裡有兩個我們要用到訊息,一個組織部門的ID,一個部門成員的帳號(帳號是自己手動指定的,不同於微訊號,最好是字母加數字)

微信报警 zabbix实现详解

微信报警 zabbix实现详解

2.應用中心創建應用

           我們要在這裡創建應用,因為要透過應用程式傳送訊息給部門成員

           注意:這裡要記住一個數值,並應用ID

微信报警 zabbix实现详解

微信报警 zabbix实现详解

3.給部門設定管理員

          設定--->功能設定---->權限管理---->新管理群組

        必須事先已經關注了企業號,並且已經設定好郵箱地址

微信报警 zabbix实现详解

         確定管理員可以讀取通訊錄,並且可以使用應用程式發送訊息。

         :我們需要管理員的CorpID和Secret

微信报警 zabbix实现详解

我們要準備這些東西:

    一個微信企業號

    企業號已經被部門成員關注

    企業號裡有一個可以發送訊息的應用程式

    一個授權管理員,可以使用該應用程式給成員發送訊息

我們要取這些資訊:

    成員帳號

    組織部門ID

    應用​​ID

    CropID

  

如何呼叫微信介面?

       呼叫微信介面需要一個呼叫介面的憑證:access_token

*​​&*       透過:CropID 、Secret  才能取得至access_token,但是取得的token** 有效期為兩分鐘

微信报警 zabbix实现详解

        微信企业号接口调试工具传送门: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实现详解

将脚本放入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.创建媒介

微信报警 zabbix实现详解

        2.创建用户

微信报警 zabbix实现详解


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

微信报警 zabbix实现详解

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

微信报警 zabbix实现详解

收到的微信消息:

微信报警 zabbix实现详解 

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

更多微信报警 zabbix实现详解相关文章请关注PHP中文网!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn