利用微信公衆號實現zabbix告警

    之前覺得沒必要寫這個,這兩天有同學問到zabbix關於微信告警的相關問題,於是昨天就註冊了一個微信公衆號,當做學習交流一下;

    首先;我們要明白我們創建微信公衆號發送消息到底需要哪些參數,這樣我們再創建時候注意生成就可以了,需要的有如下幾個參數:

    1、通訊用戶:touser

    2、用於生成token的:corpid,secret

    3、用於ID


開始操作:企業號註冊連接:https://qy.weixin.qq.com/cgi-bin/loginpage


1、點擊註冊,然後選擇團隊主從即可:


wKioL1etaPKAc7RrAADBARlsruc254.png-wh_50


wKiom1etaR6hLjR8AABOF53CVw4196.png-wh_50


wKioL1etaXHSV_oYAAEIMD_nIC4344.png-wh_50


2、創建企業號名稱之後,默認需要創建一個通信賬號,要是沒有可以點擊通訊錄創建(touser):

wKiom1etaj7xDh5NAABQCutgxVQ128.png-wh_50


3、點擊應用中心,新建應用,消息應用(獲取應用ID):


wKiom1etasbybLNRAABJbGVTTLg465.png-wh_50


wKioL1etawfT1KzWAABaF8sytwQ711.png-wh_50



wKiom1etaxehED-UAABaxYHLozA910.png-wh_50


可以看到已經生成應用ID:


wKioL1eta2GCmYGvAABJa_Kam_A180.png-wh_50


4、開始添加應用權限,生成corpid,secret


點擊設置--》權限管理--》進來分組管理的名稱和用戶用xiaoluo即可:


wKiom1eta_uD5H9rAAA1efPqGcE147.png-wh_50

創建之後可以查看看到corpid和secret了:


wKiom1etbEWAP8_YAABO5ZZsi24566.png-wh_50


然後把應用權限和通訊錄權限都添加進去即可,不然可能會報權限錯誤:


wKioL1etbI7BP1gQAABuaV0tHOg063.png-wh_50


上面的步驟修改通訊錄權限,添加我們的用戶即可:下面我們用curl來測試一下是否可以


1、通過corpid和secret獲取token,發送get請求:


[root@monitor weixin]# curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx026430a7e676a190&corpsecret=tbb9lAJRS-tY96qzH0q8hcecCx563GceEKXTWmrvUQYXb52v90AeVBNxBP1O2dq1"
{"access_token":"-z6APpKnSGFgPHNjPgX24Nu9ph7uexsFQOjj2-I8YWZ0F-9_CJ5CgF2WnkX901Lu","expires_in":7200}


2、通過tokenid 發送數據:

[root@monitor weixin]# cat port_data.py 
#!/usr/bin/env python
import requests
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=WkLoCGsyUk7ItDtwG2P5KqX6EPvhIXlzgc4BbUAROAfjAJBD1ZRebeuIOG-_ylUF"
data = { 
   "touser": "xiaoluo", 
   "msgtype": "text", 
   "agentid": 1, 
   "text": { 
       "content": "hello ,xiaoluoge" 
   }, 
   "safe":"0" 
}
r = requests.post(url,json=data)
print r.status_code
print r.content

執行結果:

[root@monitor weixin]# python port_data.py 
200
{"errcode":0,"errmsg":"ok"}


    到此沒問題的話,那麼說明微信公衆號的收發數據功能已經做好了,接下來就是設置zabbix的步驟了


1、添加媒介,設置成我們的腳本:


wKiom1etlB_C7wpYAAA1YFGfQhA915.png-wh_50

備註:{ALERT.SENDATO}和{ALERT.MESSAGE}是兩個內置宏。


2、創建動作和執行操作:


wKiom1etlJ6DftEEAAA19DaQiwQ031.png-wh_50


wKioL1etlL7QfG9SAABsz8MqcNc399.png-wh_50


3、用戶添加媒介:


wKioL1etlN-yxBHBAAAqO-vDgPc287.png-wh_50


#備註:xiaoluo是傳參的第一個參數,就是我們創建的用戶。


4、腳本:

[root@monitor alertscripts]# cat post_data.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import sys
class weChat:
    def __init__(self,Corpid,Secret): 
        url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (Corpid,Secret)
        res = self.url_req(url)
        self.token = res["access_token"]
    def url_req(self,url):
        req = requests.get(url)
        res = json.loads(req.text)
        return res

    def send_message(self,user,content): 
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % self.token
        data = { 
                "touser": user, 
                "msgtype": "text", 
                "agentid": 1, 
                "text": { 
                        "content": content
                        }, 
                "safe":"0" 
                }

        res = requests.post(url,json=data)
        if json.loads(res.content)['errmsg'] == 'ok':
            return "send message sucessed"
        else:
            return res


if __name__ == '__main__': 
    user = sys.argv[1]
    content = sys.argv[2]
    get_token = weChat(id,Secret)
    print get_token.send_message(user,content)


5、執行效果:


wKiom1etlgfzaJgkAAGBsYaAiEQ813.png-wh_50

zabbix視頻請移步:http://www.roncoo.com/details/fb3050a5b34b42f39ccad83ebebc89c1


zabbix自動化課程目錄(需求更新中):


1、zabbix生產環境如何使用

2、saltstack批量部署zabbix_agent

3、zabbix API簡單使用講解

4、web UI講解

5、開始監控之添加一個簡單的linux監控

6、zabbix 強大的內置key講解

7、內置key的使用、 端口、用戶數、磁盤讀取狀態出圖

8、trigger表達式學習,實現用戶登錄數,端口檢查告警

9、zabbix郵件告警設置與維護週期

10、zabbix自定義Key添加,tcp狀態模板編寫

11、自定義監控之、監控nginx解析與實現

12、自定義監控之php-fpm監控

13、自定義監控之mysql狀態監控

14、自定義監控之緩存服務器memcached,redis監控

15、自動化之saltstack管理zabbix,批量推送key生效

16、zabbix自動發現綁定刪除模板,自動註冊

17、zabbix lld發現講解以及端口發現監控告警出圖

18、zabbix lld 發現web站點以及批量獲取狀態碼

19、zabbix lld複習和監控磁盤的運行狀況

20、zabbix生成環境規範和按月生成報表資源統計

21、微信公衆號告警


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章