李正 陶鑫 黎斌 鄧輝


【摘 要】通過對企業微信API接口和Python編程語言的學習,在Nagios監控系統的基礎上,進行二次開發,實現基于企業微信平臺的網絡故障告警功能插件。
【關鍵詞】企業微信;API;Python;故障告警
中圖分類號: F274;G206文獻標識碼: A文章編號: 2095-2457(2019)19-0056-002
DOI:10.19694/j.cnki.issn2095-2457.2019.19.025
0 引言
隨著移動通信技術的發展,信息化服務也迎來了新挑戰與機遇。移動應用的普及,將原有的基于PC端的業務,逐步擴展到了移動端。江西省地震局從2011年開始部署Nagios網絡監控系統,通過研究,擴展了一些應用。近來,江西省地震局預報中心申請開通了企業微信號,用于信息服務。通過對企業微信API接口的學習與研究,順利實現了企業微信號推送網絡故障消息的目的。
1 監控系統和企業微信介紹
Nagios是一個用于監控網絡、服務和主機資源的實時狀態的開源IT運維監控框架,在狀態變差和變好的時候及時給出告警信息。它運行在Linux或Unix環境,具有穩定強大的功能和維護成本低廉等特征。Nagios監控框架由主程序Nagios Core、插件程序Nagios-plguins和四個可選組件組成。四個可選組件為用于監控Linux/Unix主機資源的NRPE擴展,用于監控Windwos主機資源的NSClient++程序,用于分布式部署的NSCA擴展程序,用于將程序的配置信息和運行產生的數據存入數據中的NDOUtils,NDOUtils支持的數據有MySQL和PostgreSQL。Nagios-plguins不但有強大的監控插件庫,還能通過shell、python、perl等語言編寫自定義的監控插件程序。
企業微信是騰訊開發的一個高效的免費辦公服務平臺,一經推出就得到廣泛應用。它能與微信APP無縫溝通,普通用戶無需安裝額外的APP,只需關注企業微信號后就能使用,同時也提供獨立的移動端和PC端應用程序。用戶需要管理員審核通過后才能使用其功能,并且提供豐富的平臺接口,可以與其他平臺系統實現無縫對接。企業微信平臺由騰訊運營維護,通過國家信息安全等級保護三級測評認證,其通信協議全程加密,安全可靠;單條消息可達2048字節,可以選擇性群發,消息精準發送;依托騰訊強大的消息處理能力,發送速度遠高于手機短信和電子郵件。
2 現狀
江西省地震局在部署Nagios系統后,編寫了基于飛信機器人程序的網絡故障告警插件。報警插件的使用,極大地縮短了江西省地震局網絡故障響應時間,提高了網絡運行效率、為地震監測等業務提供了有力保障。但是基于飛信機器人程序的網絡故障告警插件只能給用戶好友發送消息,而且存在一定的延時。為了滿足電信、聯通的手機用戶,江西省地震局又編寫了“一信通”MAS平臺的網絡故障告警插件,發送時延也有改觀,但是使用MAS平臺需承擔一定的費用。
江西省地震局在企業微信平臺開發了一系列應用服務,如自動會商信息、每日地震統計信息等。以上信息只有通過認證的關注用戶才能接收到,并且可以選擇用戶發送。鑒于以上優點,作者開始了Nagios與企業微信對接工作研究,利用企業微信平臺高效快速的消息推送服務,快速發送Nagios監測到的網絡故障告警信息。
3 功能實現與效果
通過學習企業微信服務端API接口,了解到要發送消息,需要憑據CorpID和CorpSecret獲取當前access_oken,access_oken將是調用接口的憑證。
將收信人賬號、AgentId、消息內容等信息按照一定的格式拼接成JSON格式數據,利用HTTPS的POST方法,推送到企業微信服務平臺,企業微信服務平臺在接收到請求后能迅速群發到收信人。
一般在安裝完Linux系統后,自動具備了Python運行環境,而Python的字典型數據類型能很好的處理JSON格式數據。基于企業微信的網絡故障告警插件代碼如下。
上述代碼中send_values部分存在多個轉義符“\”,用于處理告警消息中的換行符“\n”。在Naigos配置文件中添加企業微信的告警方式,內容如下。
同時需要在配置文件中添加相應的賬號信息,內容如下。
4 結論
在Nagios監控平臺上,江西省地震局預報中心依次采用基于飛信機器人、E-mail、MAS系統和企業微信平臺的網絡故障告警插件。在使用這些告警插件時,將所有被監控的設備、服務和聯系人進行合理的分組,將設備和服務分配到不同的聯系人組。當設備和服務狀態發送變化時,Naigos系統就會通過commands觸發相應的故障報警配置,將告警信息發送到對應的聯系人組內所有聯系人,以達到精準告警的目的,并且要求接收到故障告警信息后30分鐘內將響應結果向值班室反饋。
雖然基于企業微信平臺的網絡故障告警插件有速度快,免費等特性,但它依賴于接收到端手機的互聯網連接狀態,當手機無法連接到互聯網時就無法及時接收到告警信息,為此,部分關鍵人員仍然保留了基于MAS系統的網絡故障告警插件。
【參考文獻】
[1]Nagios官方文檔.https://www.nagios.org/documentation/.
[2]企業微信API文檔.https://work.weixin.qq.com/api/doc.
[3]魏星,牛瑞.基于企業微信的配電網短消息系統應用與研究[J].電子技術與軟件工程,2018(20):72-74.
[4]陳文迪,程學林,黃智勇.基于微信企業號的醫院IT運維管理服務系統的分析與設計[J].中國數字醫學,2016,11(11):83-85.
[5]李正,呂堅,付榮國.淺談基于Nagios的故障告警系統[J]. 江西通信科技,2011(01):16-18.
[6]張暉,周利霞,姚會琴,孫晶巖.Nagios監控系統在天津地震應急系統中的綜合應用[J].震災防御技術,2012,7(03):322-328.