引言
當今社會對網(wǎng)絡的安全和網(wǎng)絡性能要求越來越高,與此同時,電信業(yè)務的蓬勃發(fā)展、數(shù)據(jù)網(wǎng)絡的日益壯大,對網(wǎng)絡特別是電信網(wǎng)絡進行監(jiān)測和管理軟件的需求也就越來越強烈。正是由于這種強烈的需求,越來越多的企業(yè)開始致力于網(wǎng)絡監(jiān)測管理軟件的設計和生產(chǎn)。
網(wǎng)絡監(jiān)測管理在近幾年發(fā)展非常迅速,眾多網(wǎng)絡監(jiān)管軟件紛紛浮出水面。總體來說,現(xiàn)階段較流行的網(wǎng)絡監(jiān)管軟件主要有以下三種實現(xiàn)方式:基于嵌入式、基于移動代理技術[1,2]和直接基于系統(tǒng)協(xié)議??紤]到本系統(tǒng)面向電信網(wǎng)絡以及實現(xiàn)的復雜程度,我們采用第三種方式來對系統(tǒng)進行實現(xiàn)。
當前,有兩種網(wǎng)絡管理協(xié)議在計算機網(wǎng)絡管理中占主導地位:一種是開放系統(tǒng)互連組織(OSI)提出的公共管理信息及協(xié)議(CMIS/CMIP);另一種是Internet工程任務組(IETF)提出的簡單網(wǎng)絡管理協(xié)議(SNMP)[3,4]。IETF指定的SNMP協(xié)議顯得簡單實用,容易實現(xiàn),因而被迅速地推廣開來,得到了廣泛支持。
SNMP是在TCP/IP協(xié)議棧之上的應用層協(xié)議,由三個部分組成:管理信息結構(SMI)、管理信息庫(MIB)和SNMP協(xié)議[5]。SNI描述了管理信息的標準符號,最關鍵的原則是被管理對象的定義要用抽象語句定義ASN.1來描述。MIB用來貯存管理信息,可把一個管理信息庫比作一個虛擬的信息倉庫。SNMP協(xié)議是網(wǎng)絡管理站(manager)和代理(agent)之間的異步請求和響應協(xié)議。網(wǎng)絡管理信息的數(shù)據(jù)由SNMP從MIB庫中獲取,再經(jīng)過網(wǎng)絡管理系統(tǒng)應用程序的過濾、分析、加工處理后,存儲于Web服務器的數(shù)據(jù)庫中。
本文介紹的是基于SNMP協(xié)議和Web呈現(xiàn)的對電信網(wǎng)絡主要是IP網(wǎng)絡進行全面監(jiān)測的監(jiān)測平臺。此監(jiān)測平臺可用于企業(yè)內(nèi)部局域網(wǎng)絡的監(jiān)測和管理,也可用于一個包含多個局域網(wǎng)絡組的統(tǒng)一網(wǎng)絡,是一個全面的網(wǎng)絡監(jiān)測軟件。
1、系統(tǒng)結構設計
1.1系統(tǒng)的物理部屬
系統(tǒng)中的實體有:根監(jiān)測器、數(shù)據(jù)庫服務器、Web服務器,在各個子網(wǎng)中再采用葉監(jiān)測器的方式從而形成一個監(jiān)測器樹的分布式監(jiān)測系統(tǒng)。監(jiān)測器分布式地部署在各個被監(jiān)測的數(shù)據(jù)網(wǎng)內(nèi)。每個監(jiān)測器負責一個網(wǎng)段(可以使用手工來設置)。監(jiān)測器探針(以下簡稱探針)將自己負責的網(wǎng)段中設備所有的SNMP信息以輪詢的方式采集下來,并且存儲到數(shù)據(jù)庫中去。然后使用Web服務器將客戶端瀏覽器需要的信息讀取出來,傳遞給瀏覽器端。瀏覽器端根據(jù)用戶的各種要求向Web服務器提出數(shù)據(jù)要求,Web服務器審核后從數(shù)據(jù)庫中提取需要的信息通過瀏覽器端顯示給用戶。
葉監(jiān)測器部署在各個規(guī)模適當?shù)木钟蚓W(wǎng)內(nèi),這是出于輪詢性能的考慮。要保證整個系統(tǒng)數(shù)據(jù)采集的高性能,就必須科學地規(guī)劃葉監(jiān)測器在整個網(wǎng)絡中的部署,而在局域網(wǎng)中的部署就是整個系統(tǒng)的最小單元。本文是基于一個局域網(wǎng)為背景的測試環(huán)境。
1.2系統(tǒng)三層架構
系統(tǒng)采用三層結構:數(shù)據(jù)采集層面、數(shù)據(jù)存儲層面、數(shù)據(jù)呈現(xiàn)層面。采用數(shù)據(jù)庫將底層的分布式數(shù)據(jù)采集和呈現(xiàn)層的瀏覽器/服務器(B/S)架構完全隔離,增強了系統(tǒng)的可擴展性、穩(wěn)定性、開發(fā)的并行性。SNMP檢測系統(tǒng)的三層架構如圖1所示。
圖1 SNMP檢測系統(tǒng)的三層架構
其中數(shù)據(jù)采集層包括SNMP信息采集、Trap信息接受、數(shù)據(jù)庫入庫、拓撲發(fā)現(xiàn)和守護進程等子模塊;數(shù)據(jù)存儲層包括系統(tǒng)配置表、監(jiān)測信息表、Trap告警表、拓撲信息表、用戶權限表、統(tǒng)計信息表、用戶定制表等子模塊;數(shù)據(jù)呈現(xiàn)層包括數(shù)據(jù)庫訪問、設備狀態(tài)實時顯示、故障告警、性能報告、用戶定制等子模塊。
1.3系統(tǒng)接口描述
SNMP檢測系統(tǒng)的三層架構中接口描述如圖2所示。
圖2系統(tǒng)三層架構中接口描述
A接口:a)SNMP監(jiān)測器將所有采集到的準實時的數(shù)據(jù)先存在文件中,然后再導到數(shù)據(jù)庫,由定時器(1分鐘)來觸發(fā)數(shù)據(jù)傳送模塊,周期地將根監(jiān)測器中的數(shù)據(jù)匯集到Oracle數(shù)據(jù)庫中去。b)如果SNMP監(jiān)測器接收到網(wǎng)絡設備所發(fā)來的Trap信息(實時數(shù)據(jù)),系統(tǒng)使用數(shù)據(jù)傳送模塊立即將Trap信息送到對應的緊急故障報警數(shù)據(jù)庫中去。
B接口:Web服務器從數(shù)據(jù)庫服務器中的讀取數(shù)據(jù)。在數(shù)據(jù)庫中存儲了三類數(shù)據(jù):非實時數(shù)據(jù)(最大支持1年)、準實時數(shù)據(jù)(1分鐘)、實時數(shù)據(jù)(小于5秒)。
C接口:將數(shù)據(jù)庫統(tǒng)計分析模塊所要的數(shù)據(jù)取出來。
D接口:位于數(shù)據(jù)庫統(tǒng)計分析模塊與WebServer之間,接口為數(shù)據(jù)庫中的各個統(tǒng)計分析結果表使用XML封裝;并且要支持準實時的數(shù)據(jù)更新;還要實時地刷新本在的緊急故障報警數(shù)據(jù)庫。
E接口:HTTP接口。
2、系統(tǒng)的設計和實現(xiàn)
2.1系統(tǒng)的開發(fā)環(huán)境和工具
本課題使用Linux作為操作系統(tǒng)平臺,使用MagicC++可視化IDE作為開發(fā)工具,使用CVS(Linux平臺)和VisualSourceSafe(windows平臺)進行代碼和文檔版本控制,使用Oracle進行分布式數(shù)據(jù)庫部屬,前臺的界面呈現(xiàn)部分使用了Apache服務器以及PHP語言、HTML語言、JavaScript語言等工具。
2.2SNMP數(shù)據(jù)采集層的設計和實現(xiàn)
SNMP數(shù)據(jù)采集層主要由五個模塊所組成,分別是:日志模塊、SNMP采集模塊、Trap消息接收模塊、DEAMON模塊和數(shù)據(jù)庫接口模塊。其中SNMP采集模塊和Trap消息接收模塊是數(shù)據(jù)采集層的核心模塊。
2.2.1SNMP數(shù)據(jù)采集模塊的設計和實現(xiàn)
SNMP數(shù)據(jù)采集模塊的主要功能是:從數(shù)據(jù)庫的系統(tǒng)配置表中的設備監(jiān)測列表中取出一個被監(jiān)測網(wǎng)絡單元的IP地址,根據(jù)配置表中用戶定制監(jiān)測項的MIBID來輪詢網(wǎng)絡單元的各個MIB值,并將值存入鏈表中。等全部MIBID查詢結束后,將所得到的鏈表存入到對應的數(shù)據(jù)文件中去,繼續(xù)輪詢下一個網(wǎng)絡單元。全部網(wǎng)絡單元拓撲查詢結束后,回到等待狀態(tài),使用信號解析子模塊解析信號,以判斷是結束還是繼續(xù)查詢,或者是應答監(jiān)測模塊的監(jiān)測信號。
SNMP數(shù)據(jù)采集模塊由6個子模塊組成,它們分別是系統(tǒng)調(diào)度子模塊、MIBID查詢引擎、文件讀寫接口、鏈表操作接口、信號解析接口、數(shù)據(jù)庫接口。其中最重要的是MIBID查詢引擎。
MIBID查詢引擎是通過使用修改net-snmp軟件包中的snmpget和snmpwalk來構成的,它可以通過文件讀寫接口將MIB子樹ID配置文件讀出來,并且按照ID值使用引擎發(fā)出SNMPGETNEXT請求,等待消息回來。如果不成功,記錄模塊將出錯信息存入到日志文件中去,如果成功完成SNMP查詢操作,則鏈表操作接口將數(shù)據(jù)插入到鏈表中。同時查詢此次設備輪詢是否已經(jīng)完成,如果完成,使用文件讀寫接口將鏈表存入文件;如果未完成,繼續(xù)查詢。然后,調(diào)用信號解析接口按照別的進程傳遞過來的信號分類處理。
2.2.2Trap消息接受模塊的設計和實現(xiàn)
Trap消息接收模塊的目的是負責接收SNMP發(fā)送來的Trap消息,并且將此消息即刻寫入到數(shù)據(jù)庫中去。
Trap接收模塊的流程如下:
1)Trap消息以守護進程的方式運行于系統(tǒng)中,監(jiān)測系統(tǒng)的觸發(fā)條件有兩個:a)來自于所監(jiān)測網(wǎng)絡單元的Trap消息。b)來自于DEAMON進程的運行監(jiān)測信號。
2)下面就是從這兩個觸發(fā)條件開始:
如果是a),那么將這條Trap消息傳給消息包裹函數(shù),打上本監(jiān)測系統(tǒng)的標記,然后調(diào)用入庫模塊將包裹后的信息存入到Trap信息表中去。
如果是b),那么調(diào)用監(jiān)測信號回應子模塊回應監(jiān)測信號。
2.3SNMP數(shù)據(jù)呈現(xiàn)層的設計和實現(xiàn)
SNMP數(shù)據(jù)呈現(xiàn)層根據(jù)功能可以劃分為五個主要的模塊,分別為:數(shù)據(jù)庫訪問模塊、設備狀態(tài)實時顯示模塊、故障實時告警模塊、性能報告模塊和用戶定制模塊。主要利用HTML語言構建頁面,PHP語言的訪問數(shù)據(jù)庫及繪圖語句實現(xiàn)了上述五個模塊的功能。
2.3.1數(shù)據(jù)庫訪問
數(shù)據(jù)庫訪問模塊分為數(shù)據(jù)庫讀取子模塊和數(shù)據(jù)庫錄入修改子模塊,主要用到了PHP語言對Oracle數(shù)據(jù)庫的連接及操作的函數(shù)。
2.3.2PHP繪圖語句
性能報告模塊主要使用PHP語言中的繪圖函數(shù)如Imagecreate()、Imagecolorallocate()、Imageline()、Imagestring()、Imagerectangle()、Imagefillrectangle()、Imagefontheight()、Imagefontwidth()。通過這些函數(shù)實現(xiàn)了對設備的主要信息的柱狀圖、曲線圖的顯示,使用戶對設備的各種信息的變化對比能有一個直觀的了解。
3、運行結果及分析
3.1SNMP信息采集模塊運行輸出
通過遍歷目的主機的SNMPMIB樹所獲得的結果可看到:a)系統(tǒng)的一些信息,包括系統(tǒng)的版本號、啟動時間、描述、系統(tǒng)名、位置、服務等信息。b)對此主機系統(tǒng)interface的描述。c)每個接口的詳細信息,接口的類型,接口的最小傳輸單元。
3.2日志模塊輸出
日志模塊的輸出格式,主要包括日志的描述信息、日志輸出的時間、日志類型、日志導出程序、主機標識等信息。
3.3系統(tǒng)界面圖
圖3顯示的是在局域網(wǎng)中進行測試的主界面,系統(tǒng)會根據(jù)數(shù)據(jù)庫中存儲的局域網(wǎng)組信息自動生成局域網(wǎng)組的樹型菜單,由于在局域網(wǎng)中進行測試,所以圖顯示的只有一個局域網(wǎng)組。右邊顯示的是此局域網(wǎng)組的實時設備狀態(tài),將鼠標放到設備上,可以看到相應設備信息,點擊設備,可以進入詳細信息頁面,查看此設備的詳細信息。
圖3系統(tǒng)主界面
3.4性能報告曲線圖
本系統(tǒng)可以根據(jù)用戶的需要,對目標網(wǎng)絡中的各類設備,包括交換機、防火墻、路由器、主機、服務器等進行監(jiān)測,獲取設備的端口信息、流量信息、故障信息以及各種性能信息。圖4顯示的是測試局域網(wǎng)內(nèi)一個交換機從12:00~17:00的平均流量曲線圖。同樣的數(shù)據(jù)還可以用柱狀圖顯示。
圖4交換機平均流量曲線圖
4、結束語
本文主要論述了SNMP電信網(wǎng)絡監(jiān)測系統(tǒng)主要架構,該系統(tǒng)成功實現(xiàn)了大部分相關的基本功能,如SNMP信息采集模塊、日志模塊、數(shù)據(jù)庫接口模塊,以及在各模塊中作為切面抽象出的鏈表操作接口、文件操作接口、SNMPTrap模塊中的Trap消息監(jiān)聽接口,以及通過Web服務器的狀態(tài)信息實時顯示、故障實時告警,圖形化報表顯示、用戶定制等功能。該系統(tǒng)在SNMP輪詢效率及呈現(xiàn)美觀性方面還有待于進一步提高。
責任編輯:gt
-
數(shù)據(jù)采集
+關注
關注
40文章
7099瀏覽量
116185 -
服務器
+關注
關注
13文章
9759瀏覽量
87652 -
監(jiān)測系統(tǒng)
+關注
關注
8文章
2870瀏覽量
82423
發(fā)布評論請先 登錄
labview如何通過http協(xié)議上傳數(shù)據(jù)至web服務器
labview如何通過http協(xié)議post方法上傳數(shù)據(jù)至web服務器
請問MSP432E4 網(wǎng)絡能否支持SNMP協(xié)議和MIB協(xié)議?
采用嵌入式處理器PXA270與ARM-Linux相結合的Web服務器構建
在uIP協(xié)議棧實現(xiàn)基于AJAX和CGI的動態(tài)Web服務器
基于Linux的WEB服務器增加了哪些功能?
怎么實現(xiàn)基于嵌入式WEB的視頻服務器的設計?
如何實現(xiàn)對嵌入式WEB服務器系統(tǒng)的控制設計
ARM上實現(xiàn)不用接入互聯(lián)網(wǎng)的WEB服務器可以嗎
基于SNMP Agent擴展的服務器監(jiān)
基于Linux的WEB服務器的設計與實現(xiàn)
基于Linux的WEB服務器的設計與實現(xiàn)

STM32+ENC28J60+UIP協(xié)議棧實現(xiàn)WEB服務器示例

基于ARM平臺的嵌入式WEB服務器的設計與實現(xiàn)

評論