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