李瑞旻
網(wǎng)絡(luò)管理中,采集網(wǎng)絡(luò)性能值并建立高效的監(jiān)測系統(tǒng),是保證網(wǎng)絡(luò)正常運(yùn)行的重要手段。隨著互聯(lián)網(wǎng)用戶日益增加,各運(yùn)營商的IP城域網(wǎng)規(guī)模越來越大,流量直線攀升,城域網(wǎng)中雙機(jī)熱備等冗余技術(shù)的應(yīng)用使得網(wǎng)絡(luò)復(fù)雜性增加,原有的監(jiān)控軟件已不能滿足現(xiàn)有網(wǎng)絡(luò)監(jiān)控要求。通過比較目前主流網(wǎng)絡(luò)監(jiān)控開源軟件,選擇Cacti搭建IP城域網(wǎng)性能監(jiān)控系統(tǒng)。以下介紹Cacti的工作原理及部分插件的使用方法,并對網(wǎng)絡(luò)性能監(jiān)控中在線用戶數(shù)、光功率指標(biāo)的實現(xiàn)方法進(jìn)行了說明。
Cacti是一套用PHP語言編寫的開源軟件,使用SNMP協(xié)議對網(wǎng)絡(luò)性能數(shù)據(jù)進(jìn)行采集,并利用RRDtool繪圖引擎來繪圖。只要知道網(wǎng)絡(luò)設(shè)備各性能數(shù)據(jù)的MIB庫對應(yīng)的OID編碼,維護(hù)人員就可以通過Cacti的繪圖引擎、及報表功能直觀展現(xiàn)各項網(wǎng)絡(luò)性能。
Cacti主要有三大功能模塊:SNMP數(shù)據(jù)采集模塊、Mysql配置信息存儲模塊、RRDtool數(shù)據(jù)存儲及繪圖模塊。系統(tǒng)架構(gòu)如圖1所示。
圖1 Cacti架構(gòu)
其工作流程如下:采集模塊通過SNMP協(xié)議定期采集需要監(jiān)控的網(wǎng)絡(luò)設(shè)備性能,并將數(shù)據(jù)采集存儲為RRD文件,當(dāng)用戶需要查詢某臺設(shè)備的性能數(shù)據(jù),由Cacti查詢Mysql數(shù)據(jù)庫中該設(shè)備對應(yīng)的性能存儲文件RRD編號及繪圖所需的模板信息,然后調(diào)用RRDtool工具根據(jù)模板信息進(jìn)行相關(guān)數(shù)據(jù)繪圖,并通過瀏覽器的方式將性能圖形展現(xiàn)給用戶。
SNMP屬于應(yīng)用層協(xié)議,承載在UDP之上,SNMP的管理結(jié)構(gòu)的核心思想是在每個網(wǎng)絡(luò)節(jié)點上存放一個管理信息庫 (MIB),由各網(wǎng)絡(luò)設(shè)備負(fù)責(zé)維護(hù),監(jiān)控管理軟件通過SNMP協(xié)議對這些設(shè)備進(jìn)行輪詢而對管理信息庫進(jìn)行管理。
MIB定義了網(wǎng)絡(luò)設(shè)備的各項屬性,并由對象識別符OID唯一指定。MIB是一個樹形結(jié)構(gòu),Cacti通過SNMP協(xié)議的snmpget或snmpwalk命令,遍歷MIB樹形目錄中的各節(jié)點OID,獲取設(shè)備的運(yùn)行狀態(tài)、性能參數(shù)等指標(biāo)。
RRDtool是一款開源的數(shù)據(jù)存儲和繪圖軟件,扮演了一個后臺工具的角色,將采集數(shù)據(jù)存儲為rrd文件;同時根據(jù)用戶請求從相應(yīng)的RRD讀取數(shù)據(jù),創(chuàng)建網(wǎng)絡(luò)性能的趨勢圖,這使得RRDtool看起來又像是前端工具。
在Cacti中定義了2種數(shù)據(jù)獲取方式:SNMP查詢和Script查詢。這2種方式都使用序列Index的方式獲取設(shè)備某一類相同采集指標(biāo)的性能值,比如在采集路由器端口性能時,采集每個端口的Index值以區(qū)分不同端口,再根據(jù)每個端口的Index值采集端口狀態(tài)、流量等性能值。但二者應(yīng)用有所不同,SNMP方式通過定義在XML文件中的OID值及OID的匹配參數(shù)執(zhí)行snmpwalk命令來采集數(shù)據(jù),具有MIB的網(wǎng)絡(luò)設(shè)備都可以使用SNMP查詢方式。Script則是通過定義在XML文件中的php和perl二種可執(zhí)行文件來采集性能數(shù)據(jù),在php和perl文件中大多定義了有關(guān)服務(wù)器的性能采集,例如服務(wù)及進(jìn)程狀態(tài)、服務(wù)器并發(fā)用戶數(shù)等指標(biāo),這類指標(biāo)通過操作系統(tǒng)的相關(guān)命令更容易獲取,因此服務(wù)器性能的采集大多采用Script方式。
Weathermap插件可以用最直觀的方式來展現(xiàn)網(wǎng)絡(luò)的流量信息,方便網(wǎng)絡(luò)維護(hù)人員了解全網(wǎng)設(shè)備的運(yùn)行狀況,及時發(fā)現(xiàn)流量異常情況。Weathermap插件流量展現(xiàn)圖如圖2所示,圖中不同顏色代表鏈路的利用率,流量的采集周期為1min,因此當(dāng)設(shè)備端口、鏈路發(fā)生故障,或者有攻擊造成的異常流量,維護(hù)人員可通過顏色變化情況迅速發(fā)現(xiàn)故障和攻擊方向。
圖2 Weathermap插件流量展現(xiàn)圖
告警管理是網(wǎng)絡(luò)監(jiān)控系統(tǒng)中最重要的功能模塊,Cacti通過Threshold插件完成閾值告警功能,Threshold插件針對網(wǎng)絡(luò)設(shè)備的各項性能參數(shù)分別設(shè)置告警閾值。對于設(shè)置閾值的設(shè)備,Cacti將采集的數(shù)據(jù)與設(shè)定的相應(yīng)閾值進(jìn)行比較,如果發(fā)現(xiàn)不在閾值范同之內(nèi),Cacti就會立即通過聲音和郵件方式告知網(wǎng)絡(luò)管理人員。Cacti軟件自身沒有聲音告警功能,給網(wǎng)管監(jiān)控帶來不便。為此,分析軟件的告警流程,通過修改thold_graph.php文件的相關(guān)代碼實現(xiàn)了聲音告警,保證了系統(tǒng)告警功能及時、有效。
系統(tǒng)性能管理主要實現(xiàn)各網(wǎng)絡(luò)設(shè)備的端口性能監(jiān)控,編寫代碼使用SNMP查詢方式,實現(xiàn)了BAS設(shè)備在線用戶數(shù)統(tǒng)計和網(wǎng)絡(luò)設(shè)備光接口性能查詢功能。
目前,甘肅鐵通網(wǎng)絡(luò)中采用ME60作為BAS設(shè)備,并使用雙機(jī)熱備的冗余技術(shù),在線用戶數(shù)是BAS設(shè)備關(guān)鍵性能指標(biāo)之一,熱備用戶采用2臺BAS同時上線。以前的網(wǎng)管軟件只能采集BAS整機(jī)的上線用戶數(shù),造成熱備用戶統(tǒng)計數(shù)據(jù)有誤差,通過編寫SNMP查詢代碼,采集BAS設(shè)備不同域下的上線用戶來區(qū)分熱備和非熱備用戶,并通過Aggregate插件對BAS設(shè)備下各個域的上線用戶數(shù)求和,實現(xiàn)了ME60設(shè)備在線用戶數(shù)統(tǒng)計功能。ME60在線用戶數(shù)統(tǒng)計如圖3所示。
圖3 ME60在線用戶數(shù)統(tǒng)計
隨著網(wǎng)絡(luò)發(fā)展,網(wǎng)絡(luò)設(shè)備的互聯(lián)普遍使用10Gb/s、2.5Gb/s光接口,為保障網(wǎng)絡(luò)安全,監(jiān)控設(shè)備光接口性能值也日益重要。Cacti可自定義采集數(shù)據(jù)使用的XML文件,對光模塊的各項參數(shù)進(jìn)行查詢,系統(tǒng)可生成全省光模塊信息和各光口的光功率信息,光模塊性能參數(shù)統(tǒng)計如圖4所示,網(wǎng)絡(luò)維護(hù)人員通過對光鏈路的相關(guān)性能分析,及時發(fā)現(xiàn)光衰耗增大的鏈路,有效避免因光功率降級造成網(wǎng)絡(luò)中斷。
圖4 光模塊性能參數(shù)統(tǒng)計
本文對Cacti采集數(shù)據(jù)的相關(guān)原理進(jìn)行說明,并使用搭建的監(jiān)控系統(tǒng)完成了對網(wǎng)絡(luò)設(shè)備重要指標(biāo)的監(jiān)控,解決了現(xiàn)網(wǎng)中存在的一些問題。主要完成的工作:①通過Weathermap插件直觀反映全網(wǎng)流量的視圖;②修改Threshold插件的相關(guān)代碼實現(xiàn)聲音告警;③編寫相關(guān)代碼解決在線用戶數(shù)和光模塊性能統(tǒng)計。目前系統(tǒng)已投入運(yùn)行,方便了網(wǎng)絡(luò)維護(hù)人員對全網(wǎng)性能的監(jiān)控工作,提高網(wǎng)絡(luò)管理水平。
[1] 趙亮.基于SNMP協(xié)議的網(wǎng)絡(luò)流量監(jiān)控管理系統(tǒng) 的 研 究 [J].軟件,2013(08):106-107.
[2] 江魁,黃云森.基于RRDtool的網(wǎng)絡(luò)性能監(jiān)測系統(tǒng)實現(xiàn)[J].中山大學(xué)學(xué)報:自然科學(xué)版,2002(z1):16-19.
[3] 譚朝軍,張媛.Cacti流量監(jiān)控在廣電寬帶中的應(yīng)用[J]中國廣電技術(shù)文萃,2014(03):65-72.
[4] 許洪超,姚林.PHP Weathermap在網(wǎng)絡(luò)流量監(jiān)測中的應(yīng)用[J].信息與電腦:理論版,2009(08):68.