作者:鄭文俊,李強,馬東堂
目前通信網絡結構越來越復雜,通信網絡使用的設備也越來越復雜,隨著網絡的大型化與復雜化,如何有效地進行網絡管理日益成為人們普遍關注的問題。ISO定義的網絡管理包含五個功能域:配置管理、故障管理、性能管理、安全管理和計費管理,其中性能管理的目標是優化網絡性能,提高運行質量。性能管理是測試組成網絡各個單元性能的過程,它包括測試網絡連接和當前網絡段利用率、識別可能發生擁塞域、杜絕高出錯率和檢測網絡傳輸狀態等,幫助用戶解決當前網絡存在的問題。
目前典型的網絡管理標準主要有兩大體系:OSI的CMIS(Common Management Information Service,公共管理信息服務)/CMIP(Common Management In-formation Protocol,公共管理信息協議)和IETF的SNMP(Simple Network Management Protocol,簡單網絡管理協議)。SNMP由于易于實現和廣泛的TCP/IP應用基礎而獲得廠商的支持。而且,由于SNMP不斷完善,SNMP中的安全問題也得到了一定程度的解決,使SNMP得到更快的發展。
1 SNMP網絡管理模型
SNMP網絡管理模型包括四個關鍵性部件:管理站、管理代理、管理信息庫和網絡管理協議,如圖1所示。
(1)管理站(Manager)是一個獨立的設備或者是一個共享網絡中的一員,為管理者和網絡管理系統提供接口。
(2)管理代理(Agent),一般廠家的網絡產品如路由器、交換機等在出廠時都已配置好相關的SNMP管理代理,對于不支持SNMP協議的設備,可以開發委托代理(proxy agent)來支持SNMP協議。管理代理的功能是響應從網管站發出的讀取請求(Get)和設置請求(Set),并且給網管站發送事件及告警信息(Trap)。
(3)管理信息庫(MIB)存放了該設備上被管對象資源的所有信息,每個被管對象有一個惟一對象的對象標識符(OID)。
(4)SNMP網絡管理協議主要具有以下三個功能:取值(Get)使網管站能夠從代理處獲取相關對象的值;設置值(Set)使網管站能夠在代理上設置相關對象的值;告警信息(Trap)使代理能夠通知管理站、代理端(Agent)的管理信息庫MIB值的重大變化以及其他重要事件發出。
2 性能管理模塊的設計
2.1 性能管理模塊基本結構
根據上述對SNMP網絡管理模型的討論,設計了一種性能管理模塊的基本結構,如圖2所示。該性能管理模塊主要包括性能數據采集、性能分析和數據管理存儲三個部分。其中,數據管理存儲主要是針對數據庫管理的具體技術,這里主要討論性能數據采集和性能分析技術及其實現問題。
2.2 性能數據采集
性能數據的采集方式主要有三種:循環定時模式、實時模式和事件驅動模式。
循環定時模式 預先配置好定時時間間隔,由服務器端進行采集,采集的數據存入數據庫,也可以根據需要同時發往控制臺,用于統計分析的性能參數主要采用該模式進行數據采集。
實時模式 由用戶在控制臺進行操作,用于采集被管設備的當前性能數據,采集的數據馬上送回用戶界面,控制臺程序在判斷其是否超過閾值后,將數據以某種形式實時呈現給用戶,本類數據主要用于監測當前性能,一般不存儲到數據庫,不作為歷史數據進行查詢。事件驅動模式 通過對關鍵事件的預定義,Agent在這些事件發生時,向管理者發送Trap報文。事件驅動對監視狀態變化不很頻繁的對象時用處很大,并且可以在網絡設備發生異常情況時,及時向管理者發出報警信息。
2.3 性能分析
性能分析一般分為歷史性能分析和實時性能分析。歷史性能分析包括對歷史信息(如:性能日志及性能報告等)的查詢、檢索,從數據庫提取性能歷史數據,進行分析、計算性能指標,再經過統計和整理,以直觀的圖形顯示和表數據來反映性能分析的結果,并生成性能日志,管理員可以設定時間范圍,選擇該時間段內設備的某種屬性信息進行統計,還可以選用各種圖形顯示方式,直觀地查看性能狀態。
實時性能分析 提供實時數據采集、分析和可視化的工具(如MIB瀏覽器),可以對流量、負載、丟包、設備溫度、內存利用率、網絡延遲等網絡設備和線路的性能指標進行實時監控,并可設置數據采集的時間間隔。
3 性能管理模塊的編程實現
在性能管理模塊的開發過程中,可利用SNMP++類庫來實現數據采集模塊的開發,SNMP++是由HP公司提供的一個開放的軟件包,它能夠較好地實現SNMP協議,利用它的成員函數get(),getnext(),get-bulk(),set(),trap()可以編程實現對設備和主機性能數據的采集。SNMP++提供跨平臺可移植的API。任何使用SNMP++編寫的網絡管理應用程序,不需要做任何改變就可以移植到其它平臺。SNMP++在Target類中提供了超時和重傳機制,直接設置參數就可以實現超時和重傳功能。同時SNMP++可以運行在各種不同協議之上,它采用面向對象的設計方法,把WinSNMP的API函數封裝成一個個相關的類,大大簡化了SNMP網絡管理軟件開發的復雜性和開發難度。以下給出網絡性能管理的部分關鍵對象(表1)和性能參數的計算公式。大多MIB組都提供性能數據變量。
端口狀態ifOperStatus有三種取值,1(up)代表當前接口正處于使用狀態;2(down)代表當前接口處于關閉狀態;3(test)代表接口正處于測試狀態。
端口當前狀態保持時間=sysUpTime—if-LastChange
對于一段時間丁內,MIB變量值的變化:△(MIB-variable)=MIB-Value(t1)-MIB-Value(t0)
接口收到的包的總數:TOTAL_INPUT_PACK-ETS=△ifInUcastPkts+△ifInNUcastPkts
發出的包的總數:TOTAL_OUTPUT_PACK-ETS=△ifOutUcastPkts+△ifOutNUcastPkts
輸入丟包率=△ifInDiscards/(△ifInUcastPkts+△ifInNUcastPkts)*100%
輸出丟包率=△ifOutDiscards/(△ifInUcastPkts+△ifInNUcastPkts)*100%
輸入差錯率=△ifInErrors/(△ifInUcastPkts+△ifInNUcastPkts)*100%
輸出差錯率=△ifOutErrors/(△ifOutUcastPkts +△ifOutNUcastPkts)*100%
接口輸入流量=ifInOctets*8/sysUpTime
接口輸出流量=ifOutOctets*8/sysUpTime
接口利用率=((△ifInOctes+△ifOUtOetets)*8)/(T*ifSpeed)*100%
同樣可以計算其他參數,如:
IP吞吐量=(△ipInRecieves+△ipOutRequests+△ipForwDatagrams)/T
UDP吞吐量=(△udpInDatagrams+△udpNoPorts+△udpInErrors+△udpOutDatagrams)/T
下面給出了SNMP++編程的關鍵步驟(標“*”):
4 結 語
基于目前廣泛應用的SNMP設計了網絡管理系統中的性能管理模塊,采用HP公司提供的SNMP++類庫和編程工具Visual C++進行了具體實現,該工具可以作為復雜通信網絡管理系統設計和實現的參考。隨著網絡技術的進一步發展,開放、異構的復雜網絡管理系統將成為進一步研究的重點。
責任編輯:gt
-
數據采集
+關注
關注
38文章
4547瀏覽量
112327 -
交換機
+關注
關注
19文章
2441瀏覽量
95687 -
路由器
+關注
關注
22文章
3508瀏覽量
111357
發布評論請先 登錄
相關推薦
評論