王 韋,張 揚,盛一楠,閆 猛,陳 靜
(1.湖北省地圖院,湖北 武漢 430074;2.湖北雙可科技有限公司,湖北 武漢 430074;3.襄陽市城鄉(xiāng)規(guī)劃編制 研究中心,湖北 襄陽 441000;4.江蘇省測繪工程院,江蘇 南京 210013;5.河北省制圖院,河北 石家莊 050000)
網絡設備是湖北天地圖系統(tǒng)中的核心硬件部分,包括服務器、交換機和路由器三大網絡設備。如何對網絡設備進行完善的監(jiān)管,保證其24h不間斷運行,這是湖北天地圖網站必須重點考慮的問題。目前,網絡監(jiān)控系統(tǒng)分為兩類:一類是網絡設備廠商研發(fā)的與設備配套的軟件;另一類網絡監(jiān)控軟件是第三方通用軟件[1]。前者需要和配套軟件一起使用,對于多種網絡設備,可操作性差,且售價過高。后者的商業(yè)軟件都擁有較為完善的管理控制能力,能夠對網絡設備及其周邊的各類設備進行監(jiān)控[2],但湖北天地圖網站的網絡設備監(jiān)控僅僅需要其中模塊的一小部分,如果購買不僅昂貴且十分浪費。
針對這種情況,項目組研發(fā)了針對湖北天地圖網站的網絡設備監(jiān)控系統(tǒng)。該系統(tǒng)前期已完成用戶管理、IP和日志管理、流量總計等功能。本次主要基于SNMP進一步完善網絡設備監(jiān)控功能,包括服務器、路由器和交換機的監(jiān)控,短信故障報警和歷史查詢等功能。
項目組基于SNMP協(xié)議,采用C/S架構和B/S架構混合的模式,對網絡設備安全全面監(jiān)控和集中管理,保證系統(tǒng)安全穩(wěn)定運行。采用C/S和B/S混合架構原因在于:①基于C/S架構的主動輪詢、短信報警,能夠充分發(fā)揮計算機的處理能力,全天候向管理人員發(fā)送異常情況,并通過短信方式,獲得網絡運行參數(shù)數(shù)據(jù);② B/S架構能夠使用戶便捷地在任何地方用瀏覽器去查看網絡設備的實時或者歷史運行情況,有效減少管理人員為排除故障來回奔波耗費大量時間和精力,且一期的功能采用的是B/S架構。整個系統(tǒng)架構模型分4個層次,如圖1所示。
圖1 系統(tǒng)架構模型圖
TCP/IP網絡管理系統(tǒng)的基礎是含有被管理元素信息的數(shù)據(jù)庫,其在TCP/IP和OSI環(huán)境下稱為MIB,MIB是一個樹型結構的數(shù)據(jù)庫,每個被管理資源表示成一個對象[3]。 湖北天地圖的網絡設備是服務器、路由器、網絡交換機,因此系統(tǒng)是專門針對MIB中這些對象的值進行采集。
利用SNMP的操作之一(GetRequest指令),網絡設備實時監(jiān)控模塊獲得MIB對象的值,然后進行分析和處理,該模塊為C/S架構。
采集處理后的數(shù)據(jù),一方面用于Web頁面運行情況查詢和報告,方便管理員查詢設備實時運行性能情況;另一方面通過分析及閾值判定,超過閾值實現(xiàn)短信報警。
按照設備和接口的不同,系統(tǒng)將采集的數(shù)據(jù)存儲到相應的txt文本文件中。這些數(shù)據(jù)將為系統(tǒng)故障情況查詢提供依據(jù)。
主要用于采集、處理、解析和存儲監(jiān)控目標數(shù)據(jù),實時監(jiān)控設備運行情況,發(fā)現(xiàn)超過閾值的設備,及時短信報警。功能包括監(jiān)控參數(shù)設定、監(jiān)控控制和短信報警。
1)監(jiān)控參數(shù)設定。對被管理對象進行閾值設置,通過設置閾值進行檢查,在服務器等網絡設備出現(xiàn)性能問題時及時發(fā)送警告。具體包括監(jiān)控間隔設置、接口丟包率和利用率閾值設定。功能頁面如圖2所示。
圖2 監(jiān)控參數(shù)設定
2)監(jiān)控控制。控制管理服務器、交換機和路由器的實時監(jiān)控。通過輪詢的方式主動、定時采集設備的性能數(shù)據(jù),對數(shù)據(jù)進行整理計算。網絡設備(服務器、交換機和路由器)的監(jiān)控采集對象包括CPU、接口使用情況、接口利用率、接口丟包率等。通過這幾類數(shù)據(jù),基本可以掌握設備是否在正常運轉、是否滿足用戶對性能的要求。本模塊主要采用SNMP的Get機制,根據(jù)設備的IP和Community名稱,固定某一時間間隔讀取網絡設備相關信息。服務器和路由器擁有參數(shù)IP和community值,但由于地圖網的交換機是兩層交換機,沒有IP地址,所以采用給交換機的VLAN配置IP地址的方式獲得這兩個重要參數(shù)值。功能頁面如圖3所示。
圖3 監(jiān)控控制
3)短信報警。在系統(tǒng)監(jiān)控到異常信息時,第一時間通過短信方式報告給管理人員,縮短網絡故障處理時間,降低網絡設備故障造成的不利影響。短信故障報警模塊包括聯(lián)系人管理、各種監(jiān)控變量有效值設定、探測時間間隔設定和故障報警。①聯(lián)系人管理:對聯(lián)系人進行管理,方便事故發(fā)生后,及時通知有關人員。②監(jiān)控變量有效值設置:任何受監(jiān)控的參數(shù)都可以指定一個有效值范圍,當這些參數(shù)不在有效值范圍時,系統(tǒng)將通過手機短信的方式進行通知報警。③探測時間間隔設定:可以設定監(jiān)測變量的探測時間,如3s探測一次。④報警:當探測到服務器故障時,發(fā)送短信通知管理員,以方便故障及時得到處理。
用戶通過Web頁面遠程隨時隨地查看網絡設備的運行狀態(tài)。功能包括網絡設備實時監(jiān)控和歷史數(shù)據(jù)查詢。
1)網絡設備實時監(jiān)控。具體功能為服務器監(jiān)控、路由器、交換機的基本信息獲取、設備接口基本信息獲取、監(jiān)控接口利用率和丟包率、設備歷史監(jiān)控數(shù)據(jù)實時查詢。圖4為路由器監(jiān)控;圖5為服務器監(jiān)控;圖6為交換機監(jiān)控。
圖4 路由器監(jiān)控界面
圖5 服務器監(jiān)控界面
圖6 交換機監(jiān)控界面
2)可視化性能報告。實時處理數(shù)據(jù),生成性能趨勢曲線,以圖形的方式顯示當前網絡設備性能狀態(tài)。利用MsChart控件,根據(jù)接口的數(shù)量動態(tài)顯示實時監(jiān)測到的歷史數(shù)據(jù),形成統(tǒng)計圖,方便用戶查看和分析。MsChart是Windows系統(tǒng)中Visual studio自帶的一個ACTIVEX控件,它功能強大,應用廣泛,具有支持隨機數(shù)據(jù)和隨機數(shù)組,動態(tài)顯示;支持所有主要的圖表類型;支持三維顯示等特點,圖7為可視化性能報告部分截圖。
圖7 可視化性能報告部分截圖
系統(tǒng)所使用的關鍵技術為簡單網絡管理協(xié)議(SNMP),它是由互聯(lián)網工程任務組(IETF)定義的一套網絡管理協(xié)議[4]。目前以其自身的優(yōu)越性已經成為網絡管理的協(xié)議標準[5]。網絡設備管理系統(tǒng)運行在 SNMP協(xié)議之上,可以監(jiān)控連接到網絡上的各種設備,同時收集設備的參數(shù)和運行信息[6]。在基于SNMP協(xié)議的網絡管理系統(tǒng)中,關鍵的技術就是對于MIB(管理信息庫)的訪問[7]。通過功能模塊的計算或解析,超過閾值就短信報警,否則存儲到文本或數(shù)據(jù)庫中或呈現(xiàn)給用戶。
1)采集對象確定。在標準的網絡管理信息庫(MIB-II)中,其中兩個與本系統(tǒng)有關的類別為:
系統(tǒng)組(system組):被管理對象(如主機、路由器等設備)系統(tǒng)的總體信息。本系統(tǒng)用到其對應的以下對象:sysDescr——設備描述信息;sysName——系統(tǒng)名稱。
接口組(interface組):各個網絡接口的相關信息。本系統(tǒng)用到其對應的以下對象:ifNumber——接口數(shù)量;ifInOctets——接口發(fā)送的字節(jié)數(shù);ifOutOctets——接口接收到的字節(jié)數(shù);ifinUcastPkts——輸入的單播包數(shù);ifoutUcastPkts——輸出的單播包數(shù);ifinNUcastPkts——輸入的非單播包數(shù);ifDutNUeastPkts——輸出的非單播包數(shù);ifinDiscard——接口丟棄的輸入包數(shù);ifoutDiscard——接口丟棄的輸出包數(shù);iISpeed——接口傳輸速率;portNam——端口的名稱;ifAdminiStatus——接口是否被啟用;ifOperStateus——接口是否在工作。
2)性能參數(shù)計算。采集對象確定后,需要通過計算得到系統(tǒng)需要的性能指標,本系統(tǒng)用到的性能指標包括丟包率和利用率。以下給出這兩個指數(shù)的計算方法。
●丟包率
丟包率是指在一定的負載下,由于缺乏資源而未能被轉發(fā)的包占應該轉發(fā)的包數(shù)的百分比,其作用是反映被測設備承受特定負載的能力[8]。該數(shù)據(jù)的異常是網絡設備性能出現(xiàn)問題的必要指標。通常來說,如果丟包率的正常范圍高于15%,則該網絡出現(xiàn)異常。
丟包率的計算公式如下:
丟包率的計算公式中的某些參數(shù)是IF組MIB變量取得的,如式(2)所示:
式中,dropRate表示包丟棄率;ifinDiseard2和ifinDiscard1是指兩個不同時刻的ifInDiscard變量的值,其余變量的含義與之相同。ifOutDiscard:輸出方向丟棄的報文數(shù);ifInDiscard:輸入方向丟棄的報文數(shù); ifInUcastPkts:發(fā)送給上層協(xié)議的子網單播通信的報文數(shù);ifInNUcastPkts:發(fā)送給上層協(xié)議的子網非單播通信的報文數(shù);ifOutUcastPkts:上層協(xié)議請求發(fā)向子網的單播通信地址的報文數(shù);ifOutNUcastPkts:上層協(xié)議請求發(fā)向子網的非單播通信地址的報文數(shù)。
●接口利用率
接口利用率表示流過指定接口的字節(jié)數(shù)與接口帶寬的百分比。計算如式(5)所示:
式中,△t為t時間長;△ifInOctets為t時間內的輸入字節(jié)數(shù);△ifOutOctets為t時間內的輸出字節(jié)數(shù);ifSpeed為接口的傳輸速度。
3)數(shù)據(jù)解析。在MIB庫中讀取到的原始數(shù)據(jù),除了需要利用公式計算得到的監(jiān)控數(shù)據(jù),還有一些是需要進行數(shù)據(jù)解析,從而適合管理員去理解。因此總結ifAdrninstatus和ifOperStatus的組合意義才能得出端口的實際狀態(tài)意義,下面通過表1來說明這種概念。
表1 ifAdrninstatus和ifOperStatus的組合意義
無論是運行地圖服務的應用程序,還是數(shù)據(jù)庫服務等核心IT服務,網絡設備的安全對業(yè)務系統(tǒng)十分的重要。此次實現(xiàn)了基于SNMP的網絡設備監(jiān)控系統(tǒng),滿足了管理人員的日常需求。但也存在不足之處,即系統(tǒng)目前依靠管理端的主動輪詢方式發(fā)現(xiàn)異常,快慢受制于輪詢的周期,后期如果能采用主動發(fā)送異常報告,以事件為驅動,將能更好地提升系統(tǒng)的性能[9]。