文/章勇
基于SaaS的校園網(wǎng)監(jiān)控平臺的設(shè)計與實現(xiàn)
文/章勇
如何提高校校園網(wǎng)運維管理?本文將介紹一套相對有效的網(wǎng)絡(luò)監(jiān)控管理平臺。例如,將“軟件即服務(wù)(SaaS)”模式應(yīng)用到網(wǎng)絡(luò)監(jiān)控系統(tǒng)中,實現(xiàn)多用戶按需自主設(shè)定對相關(guān)網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)服務(wù)的運行狀態(tài)實時監(jiān)控;通過將監(jiān)控節(jié)點分布式部署在網(wǎng)絡(luò)不同位置的方式對目標(biāo)進行交叉監(jiān)控,提高監(jiān)控精度;通過設(shè)定的規(guī)則庫和歷史信息對當(dāng)前告警數(shù)據(jù)進行關(guān)聯(lián)分析,來判斷故障是獨立故障還是關(guān)聯(lián)故障,提高告警準(zhǔn)確度;同時設(shè)計并實現(xiàn)了一套高可靠性的信息推送系統(tǒng)用于將故障信息推送給相關(guān)管理人員。
隨著校園信息化建設(shè)的深入開展,校園網(wǎng)規(guī)模不斷擴大,網(wǎng)絡(luò)所承載的設(shè)備和服務(wù)應(yīng)用越來越多。對網(wǎng)絡(luò)管理員來說,為保證網(wǎng)絡(luò)7×24 提供服務(wù),不僅要監(jiān)控物理網(wǎng)絡(luò)設(shè)備的運行狀態(tài),還要監(jiān)控網(wǎng)絡(luò)應(yīng)用服務(wù)的運行狀態(tài)。人工監(jiān)控在網(wǎng)絡(luò)規(guī)模過大、業(yè)務(wù)量過多的情況下無疑是災(zāi)難性問題,這種情況下,智能監(jiān)控系統(tǒng)可有效解決對大規(guī)模、密集業(yè)務(wù)量網(wǎng)絡(luò)設(shè)備和應(yīng)用服務(wù)的實時狀態(tài)監(jiān)控,及時發(fā)現(xiàn)服務(wù)故障并智能告警。
軟件及服務(wù)(Software as a Service簡稱SaaS)是一種新型的軟件應(yīng)用模式。它是一種通過網(wǎng)絡(luò)提供軟件服務(wù)的模式,軟件服務(wù)廠商將應(yīng)用軟件統(tǒng)一部署在自己的服務(wù)器上,用戶可以根據(jù)自己實際需求,通過網(wǎng)絡(luò)向廠商定購所需的軟件服務(wù),按需計費,不需要再單獨購買軟件許可和設(shè)備,由軟件服務(wù)廠商負(fù)責(zé)對軟件系統(tǒng)的部署實施和運行維護。
對于大型校園網(wǎng)級別的園區(qū)網(wǎng)來說,網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)服務(wù)眾多,通常不同的設(shè)備和服務(wù)由不同的人員進行管理,傳統(tǒng)的單用戶的網(wǎng)絡(luò)監(jiān)控系統(tǒng)無法滿足需求,需要實現(xiàn)多用戶自主注冊,自主配置高度靈活的監(jiān)控系統(tǒng)?;赟aaS的網(wǎng)絡(luò)監(jiān)控平臺具有多用戶的特點,可以向用戶提供可配置、高可擴展的網(wǎng)絡(luò)監(jiān)控服務(wù),用戶可以根據(jù)自己的需求租用監(jiān)控服務(wù),定制監(jiān)控節(jié)點,實現(xiàn)對不同區(qū)域,不同網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)服務(wù)的定制化監(jiān)控。平臺管理員只需關(guān)注平臺本身和監(jiān)控節(jié)點的維護,不必介入用戶監(jiān)控業(yè)務(wù),同時也便于平臺功能擴充,可以隨時增加監(jiān)控方式和監(jiān)控節(jié)點,現(xiàn)有用戶業(yè)務(wù)不受影響且能快速使用新的功能。
基于安全考慮,校園網(wǎng)中的一些重要設(shè)備如核心交換機、路由器、用戶認(rèn)證服務(wù)器、Portal服務(wù)器、校園卡服務(wù)器等關(guān)鍵設(shè)備和服務(wù)不適用于從外部進行監(jiān)控,某些設(shè)備甚至?xí)雇饩W(wǎng)訪問;另外還有大量的二層設(shè)備僅配置了內(nèi)網(wǎng)地址,其外網(wǎng)是不可達(dá)的,這就決定了無法從外部進行監(jiān)控,必須在校園網(wǎng)內(nèi)部建立一套監(jiān)控系統(tǒng)。
Nagios、Zabbix、Cacti等為開源網(wǎng)絡(luò)監(jiān)控平臺軟件,其中Nagios、Zabbix具備分布式監(jiān)控功能,支持Agent部署,Cacti為單機版軟件。這些開源平臺均可部署在校園網(wǎng)內(nèi)部對網(wǎng)絡(luò)設(shè)備進行有效監(jiān)控,但均不支持SaaS模式,當(dāng)監(jiān)控目標(biāo)數(shù)量到達(dá)一定程度后,會給平臺管理員增加巨大的工作量。
根據(jù)校園網(wǎng)絡(luò)監(jiān)控的特點,華中科技大學(xué)獨立設(shè)計了一套基于SaaS模式的分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)報警系統(tǒng),實現(xiàn)了對網(wǎng)絡(luò)設(shè)備和服務(wù)的運行狀態(tài)實時監(jiān)控,通過在不同地區(qū)分布式部署監(jiān)控節(jié)點進行多點交叉式監(jiān)控和日志收集,并進行分析判斷,形成較準(zhǔn)確和有價值的告警信息,以短信推送的形式及時通知相關(guān)管理人員。
監(jiān)控平臺設(shè)計的目標(biāo)包含以下幾點:1.用戶自主注冊,自主修改信息;2.用戶能自定義監(jiān)控項目,并能自助配置相應(yīng)資源;3.監(jiān)控平臺穩(wěn)定可靠,減少誤報和漏報的情況;4.信息推送穩(wěn)定可靠,確保能及時到達(dá)相關(guān)管理人員。分5個模塊對系統(tǒng)進行設(shè)計開發(fā),包括:(1)核心數(shù)據(jù)庫與平臺運行調(diào)度模塊設(shè)計;(2)告警預(yù)處理模塊設(shè)計;(3)信息推送模塊設(shè)計;(4)用戶管理界面設(shè)計;(5)監(jiān)控節(jié)點設(shè)計。
整個系統(tǒng)的硬件架構(gòu)由核心服務(wù)器、信息推送服務(wù)器、分布式監(jiān)控節(jié)點三個部分組成。核心服務(wù)器中部署核心數(shù)據(jù)庫和平臺運行調(diào)度模塊、告警預(yù)處理模塊以及用戶管理WEB界面,負(fù)責(zé)整個系統(tǒng)運行,各模塊之間的調(diào)度,以及告警日志存儲和告警信息的分析與生成;信息推送模塊部署在另外2臺服務(wù)器中,安裝短信Modem池并連接外部Internet短信服務(wù)網(wǎng)關(guān),提供高可靠性的短信發(fā)送服務(wù);分布式監(jiān)控節(jié)點部署在網(wǎng)絡(luò)的各個網(wǎng)絡(luò)節(jié)點中,用于響應(yīng)用戶發(fā)出的監(jiān)控任務(wù),對監(jiān)控目標(biāo)進行監(jiān)控探測,并將監(jiān)控結(jié)果發(fā)回到核心服務(wù)器中。
系統(tǒng)工作示意圖如圖1所示:
圖1 系統(tǒng)工作示意
根據(jù)Saas軟件服務(wù)成熟度劃分,SaaS可以分為四個成熟度等級,分別是:可定制性(Level 1)、可配置性(Level 2)、高性能多租戶架構(gòu)(Level 3)、可伸縮多租戶架構(gòu)(Level 4)。在Level 1模型下,軟件服務(wù)提供商為每個用戶定制一套軟件,并為其部署。每個用戶使用一個獨立的數(shù)據(jù)庫實例和應(yīng)用服務(wù)器實例。根據(jù)本平臺實際應(yīng)用場景:校園網(wǎng)運維環(huán)境,被監(jiān)控對象數(shù)量<1000、用戶(管理員)數(shù)<50人。采用Level 1可定制性的SaaS成熟度即可滿足需求,可定制性SaaS成熟度可以在傳統(tǒng)的B/S軟件架構(gòu)的基礎(chǔ)上進行細(xì)節(jié)改進,開發(fā)出用戶自定義定制等功能,并對用戶數(shù)據(jù)庫進行設(shè)計,使每個用戶可以使用一個獨立的數(shù)據(jù)庫實例,根據(jù)需求利用平臺提供的各項插件進行添加,修改,刪除監(jiān)控項目。每個用戶之間不互相干擾。
詳細(xì)用戶需求如下:
1.用戶可自行管理自己的信息,包括用戶名、密碼、姓名、電話號碼等;
2.用戶可根據(jù)需要自行添加監(jiān)控項目,并可自行修改和刪除已添加的監(jiān)控項目;
3.不同用戶之間使用不同的數(shù)據(jù)庫實例,不能相互干擾;
4.用戶可可從全部監(jiān)控節(jié)點中挑選一部分或選擇全部監(jiān)控節(jié)點對監(jiān)控項目進行監(jiān)控;
5.根據(jù)被監(jiān)控目標(biāo)的不同特征,可以選擇不同的應(yīng)用程序進行監(jiān)控,如:ICMP_PING、PORT_SCAN、SNMP_OID值校驗等應(yīng)用程序。每個用戶調(diào)用不同的應(yīng)用程序?qū)嵗?,不互相干擾;
6.用戶可以自行設(shè)定監(jiān)控時間;
7.監(jiān)控項目出現(xiàn)狀態(tài)變化時(正常->異常、異常->正常),向用戶發(fā)送短信提醒;
8.用戶可選擇將信息轉(zhuǎn)發(fā)給其他相關(guān)人員;
9.系統(tǒng)管理員可管理所有用戶信息和監(jiān)控項目信息。
根據(jù)以上要求我們對核心數(shù)據(jù)庫中單個用戶實例表項進行設(shè)計,各表項及功能表如表1所示。
表1 核心數(shù)據(jù)庫表項
各數(shù)據(jù)庫表項結(jié)構(gòu)關(guān)系如圖2所示:
分布式監(jiān)控節(jié)點部署在被監(jiān)測網(wǎng)絡(luò)中,各節(jié)點與核心運行平臺之間采用專網(wǎng)連接,不具備專網(wǎng)條件的分布式節(jié)點可采用公網(wǎng)VPN的形式與核心運行平臺進行連接,以保證與各節(jié)點之間通信安全。各節(jié)點均運行一個主循環(huán)進程,定期從核心平臺獲取數(shù)據(jù),包括節(jié)點控制信息,用戶數(shù)據(jù),監(jiān)控目標(biāo)和參數(shù)等信息。并根據(jù)當(dāng)前用戶情況為每個用戶發(fā)起一個獨立的監(jiān)控進程,用于滿足用戶定制的各種監(jiān)控需求。為了提高效率,可采用多線程技術(shù)同時對多個監(jiān)控目標(biāo)發(fā)起并行檢測,減少間隔時間。檢測完畢后將結(jié)果傳回核心運行平臺進行反饋。同時核心運行平臺需定時對各個監(jiān)控節(jié)點的工作狀態(tài)進行監(jiān)測,使其保持正常運行狀態(tài)。
單個分布式監(jiān)控節(jié)點的工作流程圖如圖3所示:
圖3 分布式監(jiān)控節(jié)點工作流程
分布式監(jiān)控節(jié)點硬件設(shè)備可以是PC機、工控機、嵌入式設(shè)備等,操作系統(tǒng)使用Windows或Linux均可。我們采用可移植性高的PERL語言進行開發(fā),通過相應(yīng)PERL運行庫實現(xiàn)ICMP PING、PORT SCAN、SNMP OID值獲取等監(jiān)控方式,并運用多線程技術(shù)增加并發(fā)監(jiān)控線程,在大量監(jiān)控目標(biāo)的情況下仍能獲得較短的監(jiān)控時間間隔。
為了提供高效的信息推送服務(wù),減少誤報情況,必須在產(chǎn)生的告警信息傳輸?shù)叫畔l(fā)送模塊之前進行信息預(yù)處理。預(yù)處理模塊主要功能是對原始告警信息進行緩沖,在突發(fā)大量告警信息時介入處理,對信息進行分類優(yōu)化,根據(jù)管理員設(shè)定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和設(shè)備功能優(yōu)先級來區(qū)分獨立告警信息和關(guān)聯(lián)告警信息,將獨立告警信息發(fā)送出去,將關(guān)聯(lián)告警信息過濾或整合成單條信息后再發(fā)送。避免關(guān)鍵設(shè)備出現(xiàn)故障同時產(chǎn)生大量的無關(guān)告警信息對相關(guān)人員構(gòu)成干擾,以及短信發(fā)送列隊過長引起設(shè)備擁塞故障并觸發(fā)運營商垃圾短信限制造成后續(xù)無法發(fā)送的情況。
為了使網(wǎng)絡(luò)設(shè)備和服務(wù)出現(xiàn)故障時將信息有效推送到相關(guān)人員手機上,必須設(shè)計一套高可靠性的信息推送系統(tǒng),本系統(tǒng)由2臺信息推送服務(wù)器組成,每臺服務(wù)器配置一套Modem池,并接入Internet短信服務(wù)網(wǎng)關(guān)。信息推送預(yù)處理模塊通過輪詢算法將待發(fā)送列隊推入到2臺服務(wù)器中,正常情況下每臺服務(wù)器首先會將信息發(fā)送到Internet短信服務(wù)網(wǎng)關(guān),由服務(wù)網(wǎng)關(guān)發(fā)送給相關(guān)人員,當(dāng)網(wǎng)絡(luò)出現(xiàn)故障或服務(wù)網(wǎng)關(guān)無法發(fā)送信息時,就將短信通過Modem池發(fā)送出去。信息推送預(yù)處理模塊會同時監(jiān)控每臺信息推送服務(wù)器,當(dāng)其中一臺出現(xiàn)故障時,將短信列隊推入另一臺正常的服務(wù)器中,并通過另一臺服務(wù)器向平臺管理員發(fā)送該短信服務(wù)器故障的信息,使管理員及時發(fā)現(xiàn)問題并進行處理。高可靠性信息推送模塊工作流程如圖4所示,其中m表示配置的信息推送服務(wù)器總數(shù),m越大表示系統(tǒng)可靠性越高,本平臺設(shè)置m=2。
圖4 高可靠性信息推送模塊工作流程
由上可知,本系統(tǒng)設(shè)計并實現(xiàn)了一套基于SaaS的網(wǎng)絡(luò)監(jiān)控平臺,可部署于校園網(wǎng)內(nèi)用于監(jiān)控網(wǎng)絡(luò)關(guān)鍵設(shè)備和服務(wù),并可在設(shè)備和服務(wù)出現(xiàn)故障時及時將通知短信推送給相關(guān)人員。解決了多用戶狀態(tài)下的獨立管理和相關(guān)應(yīng)用的自助配置問題,將網(wǎng)絡(luò)監(jiān)控和信息推送相結(jié)合,設(shè)計了一種可擴充的高可靠性信息推送系統(tǒng)。本平臺的部署有利于提高校園信息化建設(shè)和校園網(wǎng)的管理水平。
需要改進的方面包括:可以添加更多的監(jiān)控模式如數(shù)據(jù)庫表象掃描,DNS解析校驗,網(wǎng)站返回值校驗等;在信息推送預(yù)處理模塊中加入自動關(guān)聯(lián)分析設(shè)置,依靠歷史告警日志產(chǎn)生自動關(guān)聯(lián)分析結(jié)果來區(qū)分獨立故障和關(guān)聯(lián)故障,進一步減少誤報情況發(fā)生。
(作者單位為華中科技大學(xué)網(wǎng)絡(luò)與計算中心)