用python寫一個預警機器人(支持微信和釘釘)


背景

線上的系統在運行中,發生故障時怎么及時的通過手機通知到相關人員?當然這是個很簡單的需求,現有的方法有很多,例如:

如果我們用的雲產品,那么一般都會有配套對應的監控預警功能,根據需要配置一下即可,支持短信,郵箱通知。

如果我們已經搭建了一套運維監控系統,比如zabbix之類的,那么我們學會zabbix,然后配置也即可,支持短信,郵箱通知。

但如果我們希望有一個比較簡單輕便,能靈活定制和快速實施的方法,又能同時支持微信和釘釘通知呢?以下就介紹這樣一個基於python的簡單方法,暫且起個名字叫robotprobe。

上路

在開始之前,先定義兩種對象,robotprobe將由這兩種對象組成。

Probe:探針,用於檢查檢測某項功能,某個指標是否正常,並包含預警相關規則配置。

Robot:機器人,發生異常情況時,要發送通知的對象,這里特指微信機器人和釘釘機器人。

Probe


 

UrlProbe


 

SqlProbe


 

其他

其他類型的Probe則可以根據實際需要自由擴展實現。

Robot


 

WechatRobot


 

DingTalkRobot


 

微信VS釘釘

微信機器人基於wxpy實現,wxpy功能很豐富,基本微信上收發消息相關的功能都可以用它來實現,這篇文章有個挺好的使用示例,我們這里只用到發送消息的功能,微信雖然功能,但有個缺點就是用wxpy發消息(其實是網頁版微信),賬號有可能被封,另外新注冊的微信號也是不能用的。

釘釘機器人基於DingtalkChatbot實現,優點就是官方默認提供機器人的功能,雖然發消息有限制,但一可以控制發消息的頻率,二也可加多個機器人去分流,缺點就是只能發消息,不收消息,進而根據收到的消息做定制回復。

Demo示例


 

依賴

certifi==2019.3.9

chardet==3.0.4

DingtalkChatbot==1.3.0

future==0.17.1

idna==2.8

itchat==1.2.32

PyMySQL==0.9.3

pypng==0.0.19

PyQRCode==1.2.1

requests==2.21.0

requests-toolbelt==0.9.1

schedule==0.6.0

urllib3==1.24.1

wxpy==0.3.9.8


免責聲明!

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



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