zabbix使用微信報警(四)


https://qy.weixin.qq.com/  企業號注冊
http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5    微信調用接口說明
http://qydev.weixin.qq.com/debug 微信企業號接口調試地址
 
一、首先申請企業公眾號
 
二、獲取AccessToken
 
使用微信,應該最重要的就是這個了,下面是如何獲取他,在他的接口文檔中,有說明:
 
 

 

首先測試一下,看通過接口調試工具,如何獲取Access_Token: 根據自己的corpid和corpsecret獲取AccessToken

 
會返回一個結果:

 

那么如何通過命令行獲取呢,那就是根據上面文檔的get請求的地址: 執行這條命令就可以獲得

/usr/bin/curl -s -G https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxx&corpsecret=xxxx |awk -F\":'{print $4}'|awk -F\" '{print $2}'

獲得這個值,然后就可以通過他發送消息了,發送接口說明:把剛剛上面獲得的AccessToken傳給下面這個紅色框框的ACCESS_TOKEN地方
 

 

 三、編寫腳本,實現微信的發送

 部門ID,應用ID,CorpID,Secret,然后根據CorpID和Secret獲得access_token,然后根據微信提供的接口文檔進行獲取就可以了
 
    #!/bin/bash
    #set -x
    CorpID="xxxxx"
    Secret="xxxxx"
    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
    Token=$(/usr/bin/curl -s -G $GURL |awk -F\":'{print $4}'|awk -F\" '{print $2}')
    echo $Token
    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"
    UserID=$1
    PartyID=2
    agentid=1
    Msg=$(echo "$@"|cut -d" "-f1-)
    
message(){ printf '{\n' printf '\t"touser": "'"$UserID"\"",\n" printf '\t"toparty": "'"$PartyID"\"",\n" printf '\t"msgtype": "text",\n' printf '\t"agentid": "'"$agentid"\"",\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 "$(message $1 $2 $3)" $PURL

 

這個腳本可以先sh webcat.sh 001 aa bb 先測試一下,看是否成功

 

這里的message是有格式說明的:

 

他的發送消息格式一定要按照他的文檔要求來
touser:成員ID列表,多個用|分開
toparty:部門ID列表
msgtype:消息的類型text(支持消息型應用跟主頁型應用)
agentid:企業應用ID號
content:消息內容
safe:是否保密消息,0表示否,1表示是,默認為0
 
通俗的話理解:
           1)通過get請求地址,根據自己的corid和secret獲取Access Token
           2)把獲取的Access Token傳遞給post地址的ACCESS_TOKEN參數
           3)然后使用規定的文本格式通過curl 發送出去
         
 
四:zabbix設置,和添加郵件一樣,有幾點注意事項
 
1:添加報警媒介類型,這里的參數是要傳遞到腳本里去的
 

 

 
2:用戶添加微信報警  收件人寫
 
 
3:添加動作,在操作細節的時候選擇微信報警
 
 
 
獲得的結果:

 

若發送不成功,首先可以通過zabbix的動作日志看他是否成功

 

若這里顯示的是發送成功,然后又沒有收到微信消息,那么很有可能是微信的Access Token的問題,我的辦法是重新獲取secret

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM