引言
SNMP(Simple Network Management Protocol),即簡單網絡管理協議,同它定義的MIB(Management Information Base,管理信息庫)一道提供了一種系統地監控和管理計算機網絡的方法。隨著因特網的迅速發展,作為因特網的主要管理模型,SNMP已經成為網絡管理技術的事實標準。它管理局域網和廣域網中的各種網絡設備,包括路由器、UNIX工作站和PC機。為了解決集中式網絡監控系統的種種問題,本文采用基于SNMP協議的分布式網絡監控系統設計了三個子系統:控制端子系統(以下簡稱控制端)、配置端(以下簡稱配置端)與節點端子系統(以下簡稱節點端)。在局域網內被監控的電腦上安裝節點端,再在任意一臺電腦上安裝控制端和配置端,網絡管理工作人員便可在安裝了配置端的電腦前對局域網內的電腦進行監視與控制。分布式網絡監控系統中相當大的一部分工作由節點端完成。系統的監控和管理功能由節點端和控制端互相配合完成,大大減輕了控制端的工作負荷。由于是節點端自己攔截本地網絡數據包,不容易出現丟包情況;控制端主要的作用是信息交互,因此,不容易出現中心管理部分的瓶頸問題。
1 SNMP網絡管理管理模型
SNMP網絡管理模型由四部分組成一:
(1)網絡管理站
(2)被管設備
(3)管理信息庫(MIB)
(4)管理協議(SNMF)
SNMP管理模型具有典型的C/S(客戶端服務器)體系結構。網絡管理站運行SNMP管理軟件的客戶端程序(通常稱為Manager或Client,管理站或管理者),而被管的網絡設備運行軟件的服務器端程序(通常稱為Agent,代理或代理服務)。網絡管理站啟動管理器進程,監視并控制被管設備的運行,而被管設備上運行著代理進程,對管理器進程發出的各種請求做出響應。管理對象的信息存放在被管設備的MIB庫中。管理器進程將各種操作維護命令組裝成SNMP報文,發送到代理進程;代理進程通過操作MIB庫響應這些請求,并且把結果送回給管理站進程,從而完成管理功能。每個被管理的SNMP設備均維護一個包含統計信息及其他數據的數據庫,稱之為管理信息庫或MIB。MIB的每一項包含一種信息:對象類型、語法、訪問及狀態等,通常由協議規定,并且嚴格遵守ASN.1(Abstract Syntax Notation One)的語法格式。MIB中的數據對象以一種樹狀分層結構加以組織,每個對象類型被分配一個整數形式的對象標識符,對象標識符和對象實例標識符都按照字典式排序。Mm中的被管理對象是被管理設備的一個特定性征,它由二個或多個對象實例組成。對象實例實際上就是變量。
SNMP的網絡管理模型作為網絡管理模型的一種,也包括四個關鍵元素:管理工作站、管理代理、管理信息庫MIB、網絡管理協議。圖1顯示了這四個元素之間的關系。管理站是一個分立的單機設備或共享網絡中的一員。網絡管理站作為網絡管理員與網絡管理系統的接口,如圖1所示。網絡管理站至少應滿足下面幾個條件:①擁有一套數據分析、故障發現等的管理應用軟件;②提供網絡管理員監視和控制網絡的接口;③能夠將網絡管理員的命令轉換成對遠程網絡元素的監視和控制;④能夠從網上所有被管實體的MIB中選擇相應的資源管理應用進程。
在過去,局域網內的網絡設備少,需要管理的設備類型比較單一,所要采集的網絡設備的性能數據也比較簡單,因此通常所有的管理工作都交給一臺管理服務器來完成。隨著現代網絡規模越來越大,網絡管理設備越來越復雜,所要采集的網絡設備性能數據也越來越多,這種傳統的網絡監控結構的弊端也越來越明顯。現在這種網絡監控結構已經不能滿足大型商業網絡的需求,分布式、智能化、可遠程管理的網絡監控結構已成為當今網絡管理軟件的發展方向。

2 網絡監控系統的結構分析
系統的硬件組成及其分布,可以根據硬件系統的邏輯功能和地理位置將系統分為三個層次:應用客戶端層,服務器管理層和采集代理服務器層。其中,應用客戶端程序主要面向網絡管理人員,提供一個直觀友好的展示界面,便于他們查看和管理整個網絡;服務器管理層是整個系統的核心部分,它對整個網絡的狀態信息進行匯總和分析,將重要的數據進行入庫操作,并且對網絡的異常狀況生成相應的告警信息;采集代理服務器的作用是收集需要被監控的網絡設備的各種信息并存放在相應的MIB中。采集服務器采用中規模的多臺服務器形成采集服務器群,以提高整個系統的處理能力和可擴展性。中心數據庫服務器仍然是系統的中心服務器。Web服務器是高性能UNIX服務器,負責運行Web服務器和Web環境程序。應用服務器負責中層消息處理,將承擔整個系統最主要的負荷。
通過對常見的網絡監控系統的硬件結構的分析,可以看出,作為一個網絡監控系統,既應該有一個面向網絡管理人員的友好的客戶端界面,更需要有一個功能完善的,能夠對網絡設備信息進行采集的數據采集程序,這是網絡監控的基礎。根據兩個基礎模塊的特點,我們將本系統設計成為客戶端/服務器模式。除此之外,在數據采集程序和客戶端之間還需要有一個中間件,將采集到的網絡設備信息進行分析和過濾,然后再將重要的信息轉發給客戶端。這一中間件稱作數據監控模塊。為了方便日后的查詢和分析,系統中就必須要配有數據存儲模塊。也就是通常所說的數據庫模塊。于是,本網絡監控系統可以劃分為網絡監控客戶端、數據監控模塊、數據采集模塊以及數據庫模塊四大功能模塊,如圖2所示。
(1)監控客戶端界面:該模塊用于將網絡數據和告警信息通過界面展現給用戶。
(2)數據監控模塊:也可以稱之為數據處理模塊。它將采集到的網絡數據進行分析處理并對網絡中的異常情況發出告警,然后將處理后的信息發送給客戶端。該模塊采用了IBM的Tivoli產品來對采集到的網絡數據進行處理。IBM Tivoli軟件能讓客戶在診斷問題和部署解決方案上花費更少的時間,以將更多的時間有效地花在管理自己的業務上。
(3)網絡數據采集模塊:該模塊用于采集網絡中的各項數據指標。該模塊的功能是由安裝在服務器端的SNMP采集程序(SnmpDau)和安裝在代理端(通常安裝在被監控網絡主機上)的SNMP代理程序(snmpAgent,本文中簡稱為Agent)共同來實現的。以下對每個接口的設計方案進行說明:
數據庫訪問接口:
該接口為單向只讀接口,用于獲取SnmpDau的工作任務列表情況,不修改數據庫的任何內容。
采集入庫文件接口:
用于記錄所有采集到的原始數據,保存在文件中并傳送給Invoker以待后者統一完成入庫操作。這些Sn(n=l…N)接口為Snmp接口,既是控制通道,也是數據通道,通過標準的Snmp協議實現數據的采集(snmpget/Snmpwalk消息)以及對代理端(snmpAgent代理程序)的控制。
(4)數據庫模塊:該模塊具有兩大功能:一、配置管理系統實現網管數據庫的配置、數據存儲及處理,管理客戶端模塊所提供的可用信息;二、存儲網絡數據信息,將網絡數據采集模塊采集到的數據存儲起來,供分析和客戶端模塊顯示之用。
3 分布式監控系統的實現
多功能網絡監控系統的開發與網絡通信以及Windows操作系統的底層操作(例如獲取窗口標題、強行關閉窗口、強行關閉系統等)密切相關,控制臺系統有時候需要啟動多個線程以解決同時與多個工作站進行數據通信,因而多功能網絡監控系統開發選擇C/C++語言比較好,在Windows操作系統中可以選用VC+Winsock模式。圖3所示為本系統客戶端界面。

4 結束語
本文首先對SNMP協議和SNMP協議操作和管理信息庫(MIB)以及相關的理論和技術進行了分析,在此基礎上設計和實現了基于SNMP協議的分布式網絡監控管理系統。該網絡監控系統具有較高的安全性能。