文/章勇
基于SaaS的校園網監控平臺的設計與實現
文/章勇
如何提高校校園網運維管理?本文將介紹一套相對有效的網絡監控管理平臺。例如,將“軟件即服務(SaaS)”模式應用到網絡監控系統中,實現多用戶按需自主設定對相關網絡設備和網絡服務的運行狀態實時監控;通過將監控節點分布式部署在網絡不同位置的方式對目標進行交叉監控,提高監控精度;通過設定的規則庫和歷史信息對當前告警數據進行關聯分析,來判斷故障是獨立故障還是關聯故障,提高告警準確度;同時設計并實現了一套高可靠性的信息推送系統用于將故障信息推送給相關管理人員。
隨著校園信息化建設的深入開展,校園網規模不斷擴大,網絡所承載的設備和服務應用越來越多。對網絡管理員來說,為保證網絡7×24 提供服務,不僅要監控物理網絡設備的運行狀態,還要監控網絡應用服務的運行狀態。人工監控在網絡規模過大、業務量過多的情況下無疑是災難性問題,這種情況下,智能監控系統可有效解決對大規模、密集業務量網絡設備和應用服務的實時狀態監控,及時發現服務故障并智能告警。
軟件及服務(Software as a Service簡稱SaaS)是一種新型的軟件應用模式。它是一種通過網絡提供軟件服務的模式,軟件服務廠商將應用軟件統一部署在自己的服務器上,用戶可以根據自己實際需求,通過網絡向廠商定購所需的軟件服務,按需計費,不需要再單獨購買軟件許可和設備,由軟件服務廠商負責對軟件系統的部署實施和運行維護。
對于大型校園網級別的園區網來說,網絡設備和網絡服務眾多,通常不同的設備和服務由不同的人員進行管理,傳統的單用戶的網絡監控系統無法滿足需求,需要實現多用戶自主注冊,自主配置高度靈活的監控系統。基于SaaS的網絡監控平臺具有多用戶的特點,可以向用戶提供可配置、高可擴展的網絡監控服務,用戶可以根據自己的需求租用監控服務,定制監控節點,實現對不同區域,不同網絡設備和網絡服務的定制化監控。平臺管理員只需關注平臺本身和監控節點的維護,不必介入用戶監控業務,同時也便于平臺功能擴充,可以隨時增加監控方式和監控節點,現有用戶業務不受影響且能快速使用新的功能。
基于安全考慮,校園網中的一些重要設備如核心交換機、路由器、用戶認證服務器、Portal服務器、校園卡服務器等關鍵設備和服務不適用于從外部進行監控,某些設備甚至會禁止外網訪問;另外還有大量的二層設備僅配置了內網地址,其外網是不可達的,這就決定了無法從外部進行監控,必須在校園網內部建立一套監控系統。
Nagios、Zabbix、Cacti等為開源網絡監控平臺軟件,其中Nagios、Zabbix具備分布式監控功能,支持Agent部署,Cacti為單機版軟件。這些開源平臺均可部署在校園網內部對網絡設備進行有效監控,但均不支持SaaS模式,當監控目標數量到達一定程度后,會給平臺管理員增加巨大的工作量。
根據校園網絡監控的特點,華中科技大學獨立設計了一套基于SaaS模式的分布式網絡監控系統報警系統,實現了對網絡設備和服務的運行狀態實時監控,通過在不同地區分布式部署監控節點進行多點交叉式監控和日志收集,并進行分析判斷,形成較準確和有價值的告警信息,以短信推送的形式及時通知相關管理人員。
監控平臺設計的目標包含以下幾點:1.用戶自主注冊,自主修改信息;2.用戶能自定義監控項目,并能自助配置相應資源;3.監控平臺穩定可靠,減少誤報和漏報的情況;4.信息推送穩定可靠,確保能及時到達相關管理人員。分5個模塊對系統進行設計開發,包括:(1)核心數據庫與平臺運行調度模塊設計;(2)告警預處理模塊設計;(3)信息推送模塊設計;(4)用戶管理界面設計;(5)監控節點設計。
整個系統的硬件架構由核心服務器、信息推送服務器、分布式監控節點三個部分組成。核心服務器中部署核心數據庫和平臺運行調度模塊、告警預處理模塊以及用戶管理WEB界面,負責整個系統運行,各模塊之間的調度,以及告警日志存儲和告警信息的分析與生成;信息推送模塊部署在另外2臺服務器中,安裝短信Modem池并連接外部Internet短信服務網關,提供高可靠性的短信發送服務;分布式監控節點部署在網絡的各個網絡節點中,用于響應用戶發出的監控任務,對監控目標進行監控探測,并將監控結果發回到核心服務器中。
系統工作示意圖如圖1所示:

圖1 系統工作示意
根據Saas軟件服務成熟度劃分,SaaS可以分為四個成熟度等級,分別是:可定制性(Level 1)、可配置性(Level 2)、高性能多租戶架構(Level 3)、可伸縮多租戶架構(Level 4)。在Level 1模型下,軟件服務提供商為每個用戶定制一套軟件,并為其部署。每個用戶使用一個獨立的數據庫實例和應用服務器實例。根據本平臺實際應用場景:校園網運維環境,被監控對象數量<1000、用戶(管理員)數<50人。采用Level 1可定制性的SaaS成熟度即可滿足需求,可定制性SaaS成熟度可以在傳統的B/S軟件架構的基礎上進行細節改進,開發出用戶自定義定制等功能,并對用戶數據庫進行設計,使每個用戶可以使用一個獨立的數據庫實例,根據需求利用平臺提供的各項插件進行添加,修改,刪除監控項目。每個用戶之間不互相干擾。
詳細用戶需求如下:
1.用戶可自行管理自己的信息,包括用戶名、密碼、姓名、電話號碼等;
2.用戶可根據需要自行添加監控項目,并可自行修改和刪除已添加的監控項目;
3.不同用戶之間使用不同的數據庫實例,不能相互干擾;
4.用戶可可從全部監控節點中挑選一部分或選擇全部監控節點對監控項目進行監控;
5.根據被監控目標的不同特征,可以選擇不同的應用程序進行監控,如:ICMP_PING、PORT_SCAN、SNMP_OID值校驗等應用程序。每個用戶調用不同的應用程序實例,不互相干擾;
6.用戶可以自行設定監控時間;
7.監控項目出現狀態變化時(正常->異常、異常->正常),向用戶發送短信提醒;
8.用戶可選擇將信息轉發給其他相關人員;
9.系統管理員可管理所有用戶信息和監控項目信息。
根據以上要求我們對核心數據庫中單個用戶實例表項進行設計,各表項及功能表如表1所示。

表1 核心數據庫表項
各數據庫表項結構關系如圖2所示:
分布式監控節點部署在被監測網絡中,各節點與核心運行平臺之間采用專網連接,不具備專網條件的分布式節點可采用公網VPN的形式與核心運行平臺進行連接,以保證與各節點之間通信安全。各節點均運行一個主循環進程,定期從核心平臺獲取數據,包括節點控制信息,用戶數據,監控目標和參數等信息。并根據當前用戶情況為每個用戶發起一個獨立的監控進程,用于滿足用戶定制的各種監控需求。為了提高效率,可采用多線程技術同時對多個監控目標發起并行檢測,減少間隔時間。檢測完畢后將結果傳回核心運行平臺進行反饋。同時核心運行平臺需定時對各個監控節點的工作狀態進行監測,使其保持正常運行狀態。
單個分布式監控節點的工作流程圖如圖3所示:

圖3 分布式監控節點工作流程
分布式監控節點硬件設備可以是PC機、工控機、嵌入式設備等,操作系統使用Windows或Linux均可。我們采用可移植性高的PERL語言進行開發,通過相應PERL運行庫實現ICMP PING、PORT SCAN、SNMP OID值獲取等監控方式,并運用多線程技術增加并發監控線程,在大量監控目標的情況下仍能獲得較短的監控時間間隔。
為了提供高效的信息推送服務,減少誤報情況,必須在產生的告警信息傳輸到信息發送模塊之前進行信息預處理。預處理模塊主要功能是對原始告警信息進行緩沖,在突發大量告警信息時介入處理,對信息進行分類優化,根據管理員設定的網絡拓撲結構和設備功能優先級來區分獨立告警信息和關聯告警信息,將獨立告警信息發送出去,將關聯告警信息過濾或整合成單條信息后再發送。避免關鍵設備出現故障同時產生大量的無關告警信息對相關人員構成干擾,以及短信發送列隊過長引起設備擁塞故障并觸發運營商垃圾短信限制造成后續無法發送的情況。
為了使網絡設備和服務出現故障時將信息有效推送到相關人員手機上,必須設計一套高可靠性的信息推送系統,本系統由2臺信息推送服務器組成,每臺服務器配置一套Modem池,并接入Internet短信服務網關。信息推送預處理模塊通過輪詢算法將待發送列隊推入到2臺服務器中,正常情況下每臺服務器首先會將信息發送到Internet短信服務網關,由服務網關發送給相關人員,當網絡出現故障或服務網關無法發送信息時,就將短信通過Modem池發送出去。信息推送預處理模塊會同時監控每臺信息推送服務器,當其中一臺出現故障時,將短信列隊推入另一臺正常的服務器中,并通過另一臺服務器向平臺管理員發送該短信服務器故障的信息,使管理員及時發現問題并進行處理。高可靠性信息推送模塊工作流程如圖4所示,其中m表示配置的信息推送服務器總數,m越大表示系統可靠性越高,本平臺設置m=2。

圖4 高可靠性信息推送模塊工作流程
由上可知,本系統設計并實現了一套基于SaaS的網絡監控平臺,可部署于校園網內用于監控網絡關鍵設備和服務,并可在設備和服務出現故障時及時將通知短信推送給相關人員。解決了多用戶狀態下的獨立管理和相關應用的自助配置問題,將網絡監控和信息推送相結合,設計了一種可擴充的高可靠性信息推送系統。本平臺的部署有利于提高校園信息化建設和校園網的管理水平。
需要改進的方面包括:可以添加更多的監控模式如數據庫表象掃描,DNS解析校驗,網站返回值校驗等;在信息推送預處理模塊中加入自動關聯分析設置,依靠歷史告警日志產生自動關聯分析結果來區分獨立故障和關聯故障,進一步減少誤報情況發生。
(作者單位為華中科技大學網絡與計算中心)