趙根柱,巴特爾
(內(nèi)蒙古工業(yè)大學 信息工程學院,內(nèi)蒙古 呼和浩特 010051)
對于一個有效的網(wǎng)絡(luò)管理系統(tǒng),完善的后臺數(shù)據(jù)庫是不可或缺的,它是實現(xiàn)網(wǎng)絡(luò)管理的信息庫。數(shù)據(jù)庫保存了用于網(wǎng)絡(luò)管理的信息,包括數(shù)據(jù)信息、狀態(tài)信息和異常信息等。數(shù)據(jù)庫的信息可供管理員了解網(wǎng)絡(luò)運行的歷史狀況,也可為網(wǎng)絡(luò)性能的預測提供依據(jù)。
Cacti是目前普遍使用的流量監(jiān)測工具,它使用RRDTool(Round Ro-bin DatabaseTool)實現(xiàn)網(wǎng)絡(luò)信息的存儲與圖表的繪制。本文對RRDTool進行了研究,發(fā)現(xiàn)其在信息存儲時對數(shù)據(jù)庫中的歷史信息進行了壓縮處理,從而導致歷史信息不斷發(fā)生變化,以至于顯示的流量信息不能真實地反映網(wǎng)絡(luò)運行的歷史狀況。鑒于此,本文選擇使用普通數(shù)據(jù)庫作為改進對象,并結(jié)合開源組件,設(shè)計了基于開源組件的網(wǎng)絡(luò)管理系統(tǒng)。該系統(tǒng)實現(xiàn)了對網(wǎng)絡(luò)部分信息的管理,很好地解決了數(shù)據(jù)庫存儲歷史信息不斷變化的問題,方便了網(wǎng)絡(luò)管理者了解過去某段時間以來或過去某時間段內(nèi)網(wǎng)絡(luò)的運行狀況。
SnmpSharpNet是用C#編寫的一個開源的SNMP組件庫,支持 SNMPv1、SNMPv2 和 SNMPv3[1]。 SnmpSharpNet是面向?qū)ο蟮模珊芏嗟念悩?gòu)建而成,內(nèi)部封裝了豐富的與SNMP操作相關(guān)的方法和屬性,可方便編程者使用SNMP編程。本管理系統(tǒng)使用SnmpSharpNet實現(xiàn)網(wǎng)絡(luò)設(shè)備信息采集模塊。
ZedGraph是一個開源的圖表類庫,全部代碼用C#開發(fā)。它可以利用任意的數(shù)據(jù)集合創(chuàng)建2D的線性和柱形圖表。ZedGraph繼承了Framework中的UserControl接口,可作為WinFo-rm窗體控件,也可用作WebForm控件,允許用戶在VS的IDE環(huán)境中進行拖放操作[2]。本文使用ZedGraph完成相關(guān)圖表的繪制。
RRDTool是一種特殊的環(huán)狀數(shù)據(jù)庫工具,它不但可以存儲數(shù)據(jù),也可以繪制圖表。因此,RRDTool在一些兼有數(shù)據(jù)存儲與圖表顯示功能的軟件中深受人們的青睞。然而,任何一種工具都不是完美無缺的,RRDTool也是如此。表1為RRDTool與普通數(shù)據(jù)庫的對照表。通過表1可以發(fā)現(xiàn),普通數(shù)據(jù)庫在很多方面優(yōu)于RRDTool,如數(shù)據(jù)庫文件大小可以增加,數(shù)據(jù)庫中的信息不會被壓縮、計算和覆蓋,數(shù)據(jù)庫的信息可以隨時獲取等。為了保證歷史信息的完整性,該系統(tǒng)采用普通數(shù)據(jù)庫(SQL Server)作為信息的存儲倉庫,從而確保了存儲信息的完整性,為網(wǎng)絡(luò)管理員提供了解網(wǎng)絡(luò)運行歷史狀況的確切信息。
表1 RRDTool與普通數(shù)據(jù)庫對比
為了保證網(wǎng)絡(luò)的高效運行,滿足網(wǎng)絡(luò)通信業(yè)務(wù)的需求,網(wǎng)絡(luò)管理主要通過網(wǎng)絡(luò)管理系統(tǒng)對網(wǎng)絡(luò)上的資源實行各種合理的管理,包括性能管理、配置管理、計費管理、安全管理和故障管理。本系統(tǒng)主要從網(wǎng)絡(luò)的性能,配置和故障考慮,實現(xiàn)其功能。系統(tǒng)的架構(gòu)如圖1所示,由資源層、管理層和顯示層三部分組成。管理層包括總控模塊、數(shù)據(jù)采集模塊、配置管理模塊、故障管理模塊、性能管理模塊和數(shù)據(jù)庫管理模塊??偪啬K實現(xiàn)對各分功能模塊的啟、??刂?;數(shù)據(jù)采集模塊實現(xiàn)對資源層相關(guān)信息的采集與保存;配置管理模塊實現(xiàn)對資源層相關(guān)信息的監(jiān)測與設(shè)置,并保存監(jiān)測信息;故障管理模塊通過規(guī)定資源性能指標閾值實現(xiàn)錯誤的及時告警,并保存錯誤信息;性能管理模塊實現(xiàn)性能指標的顯示與圖表的繪制;數(shù)據(jù)庫管理模塊實現(xiàn)信息的存儲,并向各管理模塊提供相關(guān)信息。
圖1 系統(tǒng)總體架構(gòu)
使用數(shù)據(jù)庫技術(shù)建立后臺數(shù)據(jù)庫及所需的信息表,表2為設(shè)備流量信息設(shè)計表。
通 過 SnmpSharpNet的 GetRequest、GetNextRequest和GetBulkRequest方法采集設(shè)備信息。使用ADO建立數(shù)據(jù)庫連接,保存采集信息。數(shù)據(jù)庫相關(guān)操作如下。
表2 流量信息設(shè)計表
對性能指標(如丟包率、差錯率)使用式(1)~式(4)計算設(shè)計。
設(shè)置告警指示燈,規(guī)定性能指標閾值 (如丟包率為0.1%~1%),實現(xiàn)故障告警。使用ArrayList類對象暫存數(shù)據(jù),作為ZedGraph的數(shù)據(jù)集,顯示直觀圖表(如網(wǎng)絡(luò)流量圖)。圖2、圖3、圖4為該系統(tǒng)對某實驗室網(wǎng)關(guān)部分信息的監(jiān)測結(jié)果。
本設(shè)計實現(xiàn)了對網(wǎng)絡(luò)部分功能的管理,通過使用普通數(shù)據(jù)庫作為信息的存儲倉庫,解決了RRDTo-ol存在的弊端,為網(wǎng)絡(luò)的管理提供了確切的歷史信息。
[1]SnmpSharpNet[EB/OL].[2011-07-01].http://www.snmpsharpnet.com/node.
[2]ZedGraph[EB/OL].[2011-07-01].http://baike.baidu.com/view/5307214.htm.
[3]李明江.簡單網(wǎng)絡(luò)管理協(xié)議[M].北京:電子工業(yè)出版社,2007.