引言
SNMP(Simple Network Management Protocol),即簡單網(wǎng)絡(luò)管理協(xié)議,同它定義的MIB(Management Information Base,管理信息庫)一道提供了一種系統(tǒng)地監(jiān)控和管理計(jì)算機(jī)網(wǎng)絡(luò)的方法。隨著因特網(wǎng)的迅速發(fā)展,作為因特網(wǎng)的主要管理模型,SNMP已經(jīng)成為網(wǎng)絡(luò)管理技術(shù)的事實(shí)標(biāo)準(zhǔn)。它管理局域網(wǎng)和廣域網(wǎng)中的各種網(wǎng)絡(luò)設(shè)備,包括路由器、UNIX工作站和PC機(jī)。為了解決集中式網(wǎng)絡(luò)監(jiān)控系統(tǒng)的種種問題,本文采用基于SNMP協(xié)議的分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)了三個(gè)子系統(tǒng):控制端子系統(tǒng)(以下簡稱控制端)、配置端(以下簡稱配置端)與節(jié)點(diǎn)端子系統(tǒng)(以下簡稱節(jié)點(diǎn)端)。在局域網(wǎng)內(nèi)被監(jiān)控的電腦上安裝節(jié)點(diǎn)端,再在任意一臺電腦上安裝控制端和配置端,網(wǎng)絡(luò)管理工作人員便可在安裝了配置端的電腦前對局域網(wǎng)內(nèi)的電腦進(jìn)行監(jiān)視與控制。分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)中相當(dāng)大的一部分工作由節(jié)點(diǎn)端完成。系統(tǒng)的監(jiān)控和管理功能由節(jié)點(diǎn)端和控制端互相配合完成,大大減輕了控制端的工作負(fù)荷。由于是節(jié)點(diǎn)端自己攔截本地網(wǎng)絡(luò)數(shù)據(jù)包,不容易出現(xiàn)丟包情況;控制端主要的作用是信息交互,因此,不容易出現(xiàn)中心管理部分的瓶頸問題。
1 SNMP網(wǎng)絡(luò)管理管理模型
SNMP網(wǎng)絡(luò)管理模型由四部分組成一:
(1)網(wǎng)絡(luò)管理站
(2)被管設(shè)備
(3)管理信息庫(MIB)
(4)管理協(xié)議(SNMF)
SNMP管理模型具有典型的C/S(客戶端服務(wù)器)體系結(jié)構(gòu)。網(wǎng)絡(luò)管理站運(yùn)行SNMP管理軟件的客戶端程序(通常稱為Manager或Client,管理站或管理者),而被管的網(wǎng)絡(luò)設(shè)備運(yùn)行軟件的服務(wù)器端程序(通常稱為Agent,代理或代理服務(wù))。網(wǎng)絡(luò)管理站啟動(dòng)管理器進(jìn)程,監(jiān)視并控制被管設(shè)備的運(yùn)行,而被管設(shè)備上運(yùn)行著代理進(jìn)程,對管理器進(jìn)程發(fā)出的各種請求做出響應(yīng)。管理對象的信息存放在被管設(shè)備的MIB庫中。管理器進(jìn)程將各種操作維護(hù)命令組裝成SNMP報(bào)文,發(fā)送到代理進(jìn)程;代理進(jìn)程通過操作MIB庫響應(yīng)這些請求,并且把結(jié)果送回給管理站進(jìn)程,從而完成管理功能。每個(gè)被管理的SNMP設(shè)備均維護(hù)一個(gè)包含統(tǒng)計(jì)信息及其他數(shù)據(jù)的數(shù)據(jù)庫,稱之為管理信息庫或MIB。MIB的每一項(xiàng)包含一種信息:對象類型、語法、訪問及狀態(tài)等,通常由協(xié)議規(guī)定,并且嚴(yán)格遵守ASN.1(Abstract Syntax Notation One)的語法格式。MIB中的數(shù)據(jù)對象以一種樹狀分層結(jié)構(gòu)加以組織,每個(gè)對象類型被分配一個(gè)整數(shù)形式的對象標(biāo)識符,對象標(biāo)識符和對象實(shí)例標(biāo)識符都按照字典式排序。Mm中的被管理對象是被管理設(shè)備的一個(gè)特定性征,它由二個(gè)或多個(gè)對象實(shí)例組成。對象實(shí)例實(shí)際上就是變量。
SNMP的網(wǎng)絡(luò)管理模型作為網(wǎng)絡(luò)管理模型的一種,也包括四個(gè)關(guān)鍵元素:管理工作站、管理代理、管理信息庫MIB、網(wǎng)絡(luò)管理協(xié)議。圖1顯示了這四個(gè)元素之間的關(guān)系。管理站是一個(gè)分立的單機(jī)設(shè)備或共享網(wǎng)絡(luò)中的一員。網(wǎng)絡(luò)管理站作為網(wǎng)絡(luò)管理員與網(wǎng)絡(luò)管理系統(tǒng)的接口,如圖1所示。網(wǎng)絡(luò)管理站至少應(yīng)滿足下面幾個(gè)條件:①擁有一套數(shù)據(jù)分析、故障發(fā)現(xiàn)等的管理應(yīng)用軟件;②提供網(wǎng)絡(luò)管理員監(jiān)視和控制網(wǎng)絡(luò)的接口;③能夠?qū)⒕W(wǎng)絡(luò)管理員的命令轉(zhuǎn)換成對遠(yuǎn)程網(wǎng)絡(luò)元素的監(jiān)視和控制;④能夠從網(wǎng)上所有被管實(shí)體的MIB中選擇相應(yīng)的資源管理應(yīng)用進(jìn)程。
在過去,局域網(wǎng)內(nèi)的網(wǎng)絡(luò)設(shè)備少,需要管理的設(shè)備類型比較單一,所要采集的網(wǎng)絡(luò)設(shè)備的性能數(shù)據(jù)也比較簡單,因此通常所有的管理工作都交給一臺管理服務(wù)器來完成。隨著現(xiàn)代網(wǎng)絡(luò)規(guī)模越來越大,網(wǎng)絡(luò)管理設(shè)備越來越復(fù)雜,所要采集的網(wǎng)絡(luò)設(shè)備性能數(shù)據(jù)也越來越多,這種傳統(tǒng)的網(wǎng)絡(luò)監(jiān)控結(jié)構(gòu)的弊端也越來越明顯?,F(xiàn)在這種網(wǎng)絡(luò)監(jiān)控結(jié)構(gòu)已經(jīng)不能滿足大型商業(yè)網(wǎng)絡(luò)的需求,分布式、智能化、可遠(yuǎn)程管理的網(wǎng)絡(luò)監(jiān)控結(jié)構(gòu)已成為當(dāng)今網(wǎng)絡(luò)管理軟件的發(fā)展方向。
2 網(wǎng)絡(luò)監(jiān)控系統(tǒng)的結(jié)構(gòu)分析
系統(tǒng)的硬件組成及其分布,可以根據(jù)硬件系統(tǒng)的邏輯功能和地理位置將系統(tǒng)分為三個(gè)層次:應(yīng)用客戶端層,服務(wù)器管理層和采集代理服務(wù)器層。其中,應(yīng)用客戶端程序主要面向網(wǎng)絡(luò)管理人員,提供一個(gè)直觀友好的展示界面,便于他們查看和管理整個(gè)網(wǎng)絡(luò);服務(wù)器管理層是整個(gè)系統(tǒng)的核心部分,它對整個(gè)網(wǎng)絡(luò)的狀態(tài)信息進(jìn)行匯總和分析,將重要的數(shù)據(jù)進(jìn)行入庫操作,并且對網(wǎng)絡(luò)的異常狀況生成相應(yīng)的告警信息;采集代理服務(wù)器的作用是收集需要被監(jiān)控的網(wǎng)絡(luò)設(shè)備的各種信息并存放在相應(yīng)的MIB中。采集服務(wù)器采用中規(guī)模的多臺服務(wù)器形成采集服務(wù)器群,以提高整個(gè)系統(tǒng)的處理能力和可擴(kuò)展性。中心數(shù)據(jù)庫服務(wù)器仍然是系統(tǒng)的中心服務(wù)器。Web服務(wù)器是高性能UNIX服務(wù)器,負(fù)責(zé)運(yùn)行Web服務(wù)器和Web環(huán)境程序。應(yīng)用服務(wù)器負(fù)責(zé)中層消息處理,將承擔(dān)整個(gè)系統(tǒng)最主要的負(fù)荷。
通過對常見的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的硬件結(jié)構(gòu)的分析,可以看出,作為一個(gè)網(wǎng)絡(luò)監(jiān)控系統(tǒng),既應(yīng)該有一個(gè)面向網(wǎng)絡(luò)管理人員的友好的客戶端界面,更需要有一個(gè)功能完善的,能夠?qū)W(wǎng)絡(luò)設(shè)備信息進(jìn)行采集的數(shù)據(jù)采集程序,這是網(wǎng)絡(luò)監(jiān)控的基礎(chǔ)。根據(jù)兩個(gè)基礎(chǔ)模塊的特點(diǎn),我們將本系統(tǒng)設(shè)計(jì)成為客戶端/服務(wù)器模式。除此之外,在數(shù)據(jù)采集程序和客戶端之間還需要有一個(gè)中間件,將采集到的網(wǎng)絡(luò)設(shè)備信息進(jìn)行分析和過濾,然后再將重要的信息轉(zhuǎn)發(fā)給客戶端。這一中間件稱作數(shù)據(jù)監(jiān)控模塊。為了方便日后的查詢和分析,系統(tǒng)中就必須要配有數(shù)據(jù)存儲(chǔ)模塊。也就是通常所說的數(shù)據(jù)庫模塊。于是,本網(wǎng)絡(luò)監(jiān)控系統(tǒng)可以劃分為網(wǎng)絡(luò)監(jiān)控客戶端、數(shù)據(jù)監(jiān)控模塊、數(shù)據(jù)采集模塊以及數(shù)據(jù)庫模塊四大功能模塊,如圖2所示。
(1)監(jiān)控客戶端界面:該模塊用于將網(wǎng)絡(luò)數(shù)據(jù)和告警信息通過界面展現(xiàn)給用戶。
(2)數(shù)據(jù)監(jiān)控模塊:也可以稱之為數(shù)據(jù)處理模塊。它將采集到的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析處理并對網(wǎng)絡(luò)中的異常情況發(fā)出告警,然后將處理后的信息發(fā)送給客戶端。該模塊采用了IBM的Tivoli產(chǎn)品來對采集到的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行處理。IBM Tivoli軟件能讓客戶在診斷問題和部署解決方案上花費(fèi)更少的時(shí)間,以將更多的時(shí)間有效地花在管理自己的業(yè)務(wù)上。
(3)網(wǎng)絡(luò)數(shù)據(jù)采集模塊:該模塊用于采集網(wǎng)絡(luò)中的各項(xiàng)數(shù)據(jù)指標(biāo)。該模塊的功能是由安裝在服務(wù)器端的SNMP采集程序(SnmpDau)和安裝在代理端(通常安裝在被監(jiān)控網(wǎng)絡(luò)主機(jī)上)的SNMP代理程序(snmpAgent,本文中簡稱為Agent)共同來實(shí)現(xiàn)的。以下對每個(gè)接口的設(shè)計(jì)方案進(jìn)行說明:
數(shù)據(jù)庫訪問接口:
該接口為單向只讀接口,用于獲取SnmpDau的工作任務(wù)列表情況,不修改數(shù)據(jù)庫的任何內(nèi)容。
采集入庫文件接口:
用于記錄所有采集到的原始數(shù)據(jù),保存在文件中并傳送給Invoker以待后者統(tǒng)一完成入庫操作。這些Sn(n=l…N)接口為Snmp接口,既是控制通道,也是數(shù)據(jù)通道,通過標(biāo)準(zhǔn)的Snmp協(xié)議實(shí)現(xiàn)數(shù)據(jù)的采集(snmpget/Snmpwalk消息)以及對代理端(snmpAgent代理程序)的控制。
(4)數(shù)據(jù)庫模塊:該模塊具有兩大功能:一、配置管理系統(tǒng)實(shí)現(xiàn)網(wǎng)管數(shù)據(jù)庫的配置、數(shù)據(jù)存儲(chǔ)及處理,管理客戶端模塊所提供的可用信息;二、存儲(chǔ)網(wǎng)絡(luò)數(shù)據(jù)信息,將網(wǎng)絡(luò)數(shù)據(jù)采集模塊采集到的數(shù)據(jù)存儲(chǔ)起來,供分析和客戶端模塊顯示之用。
3 分布式監(jiān)控系統(tǒng)的實(shí)現(xiàn)
多功能網(wǎng)絡(luò)監(jiān)控系統(tǒng)的開發(fā)與網(wǎng)絡(luò)通信以及Windows操作系統(tǒng)的底層操作(例如獲取窗口標(biāo)題、強(qiáng)行關(guān)閉窗口、強(qiáng)行關(guān)閉系統(tǒng)等)密切相關(guān),控制臺系統(tǒng)有時(shí)候需要啟動(dòng)多個(gè)線程以解決同時(shí)與多個(gè)工作站進(jìn)行數(shù)據(jù)通信,因而多功能網(wǎng)絡(luò)監(jiān)控系統(tǒng)開發(fā)選擇C/C++語言比較好,在Windows操作系統(tǒng)中可以選用VC+Winsock模式。圖3所示為本系統(tǒng)客戶端界面。
4 結(jié)束語
本文首先對SNMP協(xié)議和SNMP協(xié)議操作和管理信息庫(MIB)以及相關(guān)的理論和技術(shù)進(jìn)行了分析,在此基礎(chǔ)上設(shè)計(jì)和實(shí)現(xiàn)了基于SNMP協(xié)議的分布式網(wǎng)絡(luò)監(jiān)控管理系統(tǒng)。該網(wǎng)絡(luò)監(jiān)控系統(tǒng)具有較高的安全性能。