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