王強(qiáng)
(許昌職業(yè)技術(shù)學(xué)院,河南許昌461000)
在網(wǎng)絡(luò)中,有一些主機(jī)提供服務(wù),比如www服務(wù),ftp服務(wù),這些服務(wù)給人們的生活帶來(lái)便利。因而,這些服務(wù)器的故障將嚴(yán)重影響網(wǎng)絡(luò)的可用性。接下來(lái),我們就利用SNMP協(xié)議,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中重要的應(yīng)用程序的運(yùn)行狀況的監(jiān)控,并保存搜集的信息。在服務(wù)器端,提供web接口,這樣,無(wú)論網(wǎng)絡(luò)管理員身在何方,只要有可以上網(wǎng)的計(jì)算機(jī),就可以查看被監(jiān)控程序的運(yùn)行狀態(tài)。通過(guò)嚴(yán)密監(jiān)視網(wǎng)絡(luò)中提供重要服務(wù)的軟件,來(lái)保證網(wǎng)絡(luò)穩(wěn)定運(yùn)行。
下面介紹如何通過(guò)陷阱(trap)實(shí)現(xiàn)對(duì)客戶端某些程序的開(kāi)啟和關(guān)閉的監(jiān)控。借助瀏覽器,網(wǎng)絡(luò)管理員可以隨時(shí)查看網(wǎng)絡(luò)運(yùn)行狀態(tài)和歷史歷史記錄。
(1)web服務(wù)器:Tomcat6.0
(2)服務(wù)器端數(shù)據(jù)庫(kù):MySQL5.1
(3)服務(wù)器端編程語(yǔ)言:JAVA,JSP
(4)客戶端編程語(yǔ)言:JAVA
對(duì)于基于Web的管理系統(tǒng),其服務(wù)器端承擔(dān)了大量的工作,包括收集信息、處理信息、提供web接口等。
在服務(wù)器端,運(yùn)用SNMP4J包編寫(xiě)程序,隨web服務(wù)器一起啟動(dòng),監(jiān)視系統(tǒng)的162端口,等待代理發(fā)送trap消息。接收到消息后,再消息進(jìn)行處理,主要是提取trap消息中的信息,并改寫(xiě)和更新數(shù)據(jù)庫(kù)中的表單。
SNMP4J是一個(gè)商業(yè)類庫(kù),而且開(kāi)源免費(fèi),它也是一個(gè)有著高技術(shù)的SNMP執(zhí)行能力的類庫(kù),支持J2SE1.4或更高的版本。SNMP4J支持指令發(fā)生器(管理器),就像指令回應(yīng)(代理)一樣。它從SNMP++(支持SNMPv1/v2/v3的C++應(yīng)用程序接口)獲得靈感,具有清晰的對(duì)象導(dǎo)向。
SNMP4J的重要部分包括:SNMP、Target、PDU。
通常傳遞SNMP PDU報(bào)文是以同步或者異步的方式。SNMP4J的主要功能是收發(fā)SNMP PDUs。
SNMP采用獨(dú)立的傳輸協(xié)議,通過(guò)Transport Mapping接口調(diào)用add Transport Mapping方法或者采用默認(rèn)的構(gòu)造函數(shù)來(lái)實(shí)現(xiàn)傳輸映射,以此來(lái)實(shí)現(xiàn)信息的傳輸。
PDU類產(chǎn)生SNMP協(xié)議數(shù)據(jù)單元,可以將提供的數(shù)據(jù)組裝成SNMP PDU。并提供了各種方法設(shè)置PDU的屬性。
另外,用JSP語(yǔ)言編寫(xiě)動(dòng)態(tài)網(wǎng)頁(yè),提供信息查詢界面。網(wǎng)頁(yè)通過(guò)數(shù)據(jù)庫(kù)和監(jiān)控程序共享收集到的數(shù)據(jù)。
當(dāng)陷阱報(bào)文到達(dá)時(shí),SNMP4J通常采用Command Responder協(xié)議,由process Pdu()實(shí)現(xiàn),整個(gè)過(guò)程自動(dòng)完成。下面是對(duì)trap處理的步驟:
(1)創(chuàng)建Snmp;
(2)調(diào)用listen()使套接字處于網(wǎng)絡(luò)監(jiān)聽(tīng)狀態(tài);
(3)實(shí)現(xiàn)Command Responder接口的監(jiān)聽(tīng)器,并且調(diào)用Snmp.add Command Responder(Command Responder)注冊(cè)監(jiān)聽(tīng)器。
Web服務(wù)器通過(guò)數(shù)據(jù)庫(kù)和監(jiān)控程序共享信息。JSP動(dòng)態(tài)語(yǔ)言支持網(wǎng)頁(yè)動(dòng)態(tài)的鏈接數(shù)據(jù)庫(kù)讀取信息。JSP以Java為腳本,Java通過(guò)JDBC操作數(shù)據(jù)庫(kù)。
JDBC(Java Data Base Connectivity,Java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用純Java API編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序,有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。
JDBC的主要功能是:與數(shù)據(jù)庫(kù)建立連接;發(fā)送;利用數(shù)據(jù)庫(kù)處理。
目前,互聯(lián)網(wǎng)規(guī)模空前龐大,網(wǎng)絡(luò)管理也面臨著巨大的壓力。盡管現(xiàn)在的網(wǎng)絡(luò)設(shè)備都支持SNMP。但仍然有不少的網(wǎng)絡(luò)問(wèn)題不能解決。網(wǎng)絡(luò)管理者需要借助不同的網(wǎng)絡(luò)管理工具,來(lái)確保網(wǎng)絡(luò)正常運(yùn)行。
[1]郭軍.網(wǎng)絡(luò)管理(第二版)[M].北京:郵電大學(xué)出版社,2001.
[2]雷震甲.計(jì)算機(jī)網(wǎng)絡(luò)管理[M].西安:電子科技大學(xué)出版社,2006.
[3]張鵬.基于多A g e n t的分布式網(wǎng)絡(luò)管理技術(shù)及其在性能管理中的研究與實(shí)踐[D].西安交通大學(xué)博士論文,2001.