之前覺得沒必要寫這個,這兩天有同學問到zabbix關於微信告警的相關問題,於是昨天就註冊了一個微信公衆號,當做學習交流一下;
首先;我們要明白我們創建微信公衆號發送消息到底需要哪些參數,這樣我們再創建時候注意生成就可以了,需要的有如下幾個參數:
1、通訊用戶:touser
2、用於生成token的:corpid,secret
3、用於ID
開始操作:企業號註冊連接:https://qy.weixin.qq.com/cgi-bin/loginpage
1、點擊註冊,然後選擇團隊主從即可:
2、創建企業號名稱之後,默認需要創建一個通信賬號,要是沒有可以點擊通訊錄創建(touser):
3、點擊應用中心,新建應用,消息應用(獲取應用ID):
可以看到已經生成應用ID:
4、開始添加應用權限,生成corpid,secret:
點擊設置--》權限管理--》進來分組管理的名稱和用戶用xiaoluo即可:
創建之後可以查看看到corpid和secret了:
然後把應用權限和通訊錄權限都添加進去即可,不然可能會報權限錯誤:
上面的步驟修改通訊錄權限,添加我們的用戶即可:下面我們用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、添加媒介,設置成我們的腳本:
備註:{ALERT.SENDATO}和{ALERT.MESSAGE}是兩個內置宏。
2、創建動作和執行操作:
3、用戶添加媒介:
#備註: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、執行效果:
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、微信公衆號告警