權(quán)鵬
摘要隨著科技的迅猛發(fā)展,各個廠商在其工業(yè)生產(chǎn)線上都采用了自動化控制技術(shù),某些生產(chǎn)線還會處在一些比較特殊的環(huán)境中,比如高溫、極低溫、粉塵比較大、震動的環(huán)境等。而當設(shè)備在生產(chǎn)線上運行的過程中,通過網(wǎng)絡(luò)在遠端對生產(chǎn)線上的設(shè)備進行管理就顯得尤為重要。SNMP是當前最為流行的網(wǎng)絡(luò)管理解決方案,文章采用Qt編程技術(shù),同時采用開源軟件開發(fā)包Net-SNMP,實現(xiàn)基于SNMP的遠程設(shè)備監(jiān)控模塊,對遠程設(shè)備的溫度、CPU、內(nèi)存、硬盤等信息進行實時的監(jiān)控。
關(guān)鍵詞設(shè)備監(jiān)控;SNMP;遠程監(jiān)控;MIB
中圖分類號:TP319 文獻標識碼:A 文章編號:1671-7597(2014)11-0019-02
SNMP協(xié)議是已經(jīng)被廣泛接受并投入使用的工業(yè)標準,它的作用是保證管理及監(jiān)控信息在代理端和管理端之間進行傳送[1],這樣非常有利于網(wǎng)管人員對MIB(Management Information Base,管理信息庫)[2]中的任何節(jié)點進行檢索以便查找出所檢索節(jié)點的信息狀況,這樣更有利于網(wǎng)絡(luò)管理員檢測設(shè)備上的故障;并實時的給出故障診斷,并及時修復(fù)故障。它采用的是輪詢的機制,提供最基本的功能集。最適合小型,快速,低價格的環(huán)境使用。它底層采用的是無證實的傳輸層協(xié)議UDP,目前很多遠程設(shè)備監(jiān)控系統(tǒng)都是基于SNMP協(xié)議開發(fā)實現(xiàn)的。
1SNMP概述
SNMP簡單網(wǎng)絡(luò)管理協(xié)議是為網(wǎng)絡(luò)管理而定義的應(yīng)用層服務(wù),SNMP協(xié)議實際上是網(wǎng)絡(luò)管理的一系列標準。SNMP簡單網(wǎng)絡(luò)管理協(xié)議是基于TCP/IP協(xié)議的,SNMP簡單網(wǎng)絡(luò)管理協(xié)議工作在傳輸層之上,與底層的傳輸機制是完全分離的,SNMP簡單網(wǎng)絡(luò)管理協(xié)議采用的模型是“管理端——代理端”的模型來監(jiān)控和管理各個與互聯(lián)網(wǎng)連接設(shè)備,SNMP簡單網(wǎng)絡(luò)管理協(xié)議底層采用的是面向無連接的UDP協(xié)議在管理端和代理端之間進行數(shù)據(jù)的傳遞。SNMP簡單網(wǎng)絡(luò)管理協(xié)議包含一個應(yīng)用層協(xié)議——application layer protocol、數(shù)據(jù)庫模型——database schema和一組資料物件。SNMP簡單網(wǎng)絡(luò)管理協(xié)議是Internet工作任務(wù)組——IETF定義的internet協(xié)議簇的一部分。
2系統(tǒng)需求分析
2.1 功能需求
基于SNMP的遠程設(shè)備監(jiān)控系統(tǒng)共分兩個部分:
1)代理端,即數(shù)據(jù)采集模塊,通過數(shù)據(jù)采集部分獲取到設(shè)備的CPU溫度、CPU使用情況、內(nèi)存使用情況、硬盤使用情況,并通過SNMP協(xié)議發(fā)送給管理端。
2)管理端,即面向用戶的部分,通過Qt[4]設(shè)計的UI界面來顯示代理端發(fā)送來的需要監(jiān)控的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)。
2.2 系統(tǒng)性能需求
根據(jù)需求分析我們可以歸納系統(tǒng)所應(yīng)要求的性能:
1)系統(tǒng)響應(yīng)時間:實時,對遠端需要監(jiān)控的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)要實時的獲取,實時的發(fā)送,實時的更新,保證用戶可以實時的了解遠端設(shè)備當前的狀態(tài),以便對遠端的設(shè)備達到有效的監(jiān)控。
2)系統(tǒng)對網(wǎng)絡(luò)的要求:該系統(tǒng)在監(jiān)控遠端設(shè)備的過程中,必須保證網(wǎng)絡(luò)一直處于連接狀態(tài)。
3)系統(tǒng)獲取數(shù)據(jù)的準確性:由于系統(tǒng)對遠端的設(shè)備在進行實時的監(jiān)控,那么獲取到的遠端的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)就是用戶參考的唯一標準,這時保證獲取到的數(shù)據(jù)的準確性就顯得尤為重要。
2.3 功能模塊需求
1)代理端功能模塊需求。代理端在整個遠程設(shè)備監(jiān)控系統(tǒng)中擔(dān)任著一個非常重要的角色,代理端主要完成的任務(wù)就是對遠程的設(shè)備進行監(jiān)控數(shù)據(jù)的采集,當管理端向代理端發(fā)起請求需要獲取監(jiān)控數(shù)據(jù)時,代理端便會將所有的數(shù)據(jù)發(fā)送給管理端。在代理端通過安裝和配置基于C語言的SNMP協(xié)議的開發(fā)包Net-SNMP[3]以及硬件監(jiān)控的開源軟件lm_sensors,通過調(diào)用Net-SNMP的接口來配置MIB信息庫并開啟SNMP服務(wù)來獲取被監(jiān)控設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)。
2)管理端功能模塊需求。管理端是設(shè)備監(jiān)控系統(tǒng)的管理者,主要負責(zé)對被監(jiān)控設(shè)備的實時監(jiān)控,向SNMP代理端發(fā)送請求獲取設(shè)備的實時數(shù)據(jù)。如果管理端接受到異常的數(shù)據(jù),便向管理人員發(fā)出報警信息。在管理端安裝和配置基于C語言的SNMP協(xié)議的開發(fā)包Net-SNMP,通過調(diào)用接口開啟SNMP服務(wù)。通過編寫Qt程序來獲取代理端設(shè)備的實時信息,并及時的呈現(xiàn)給管理員,這樣管理員就可以對遠程設(shè)備進行實時的監(jiān)控了,同時當設(shè)備被監(jiān)控的數(shù)據(jù)出現(xiàn)異常時就會向管理員報警。
2.4 非功能性需求
1)性能需求。監(jiān)控系統(tǒng)獲得監(jiān)控數(shù)據(jù)的準確性以及監(jiān)控系統(tǒng)的實時性和穩(wěn)定性是系統(tǒng)的必要性能。
2)可擴展性。當前的監(jiān)控系統(tǒng)只支持部分設(shè)備,并且只能運行于Linux操作系統(tǒng)環(huán)境下,未來可以完善該系統(tǒng)支持更多的設(shè)備以及可以運行于各種版本的操作系統(tǒng)環(huán)境。
3)可用性。對于監(jiān)控系統(tǒng)的穩(wěn)定要求是非常高的,所以必須保證監(jiān)控系統(tǒng)長時間的處于正常的運行狀態(tài)下。
4)易用性。監(jiān)控系統(tǒng)界面友好,讓用戶在使用該監(jiān)控系統(tǒng)的時候可以很容易熟悉里面每項操作,很容易上手操作。
3基于SNMP遠程設(shè)備監(jiān)控系統(tǒng)設(shè)計
3.1 系統(tǒng)開發(fā)軟件環(huán)境
開發(fā)平臺:Qt Creator;操作系統(tǒng):Fedora 17;開源軟件:Net-SNMP;lm_sensors。
3.2 系統(tǒng)設(shè)計目標
系統(tǒng)設(shè)計的主要目標是對遠程網(wǎng)絡(luò)上的設(shè)備的各項參數(shù)進行監(jiān)控,以便網(wǎng)絡(luò)管理人員可以有效的對遠程的設(shè)備進行管理,及時的發(fā)現(xiàn)異常并做出迅速響應(yīng)。
3.3 系統(tǒng)主要任務(wù)
1)對遠程設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)進行實時的采集。
2)對代理端獲取到的數(shù)據(jù)進行處理、輸出。
3)在程序中對需要監(jiān)控的各項參數(shù)設(shè)置上限值,對采集的數(shù)據(jù)進行判斷,當超過上限值時,會彈出Warning對話框報警。
4)提供有效的IP地址檢查功能,檢測IP地址格式是不是正確,網(wǎng)絡(luò)是是不是處于連接狀態(tài)。
3.4 系統(tǒng)功能模塊的劃分
該遠程設(shè)備監(jiān)控系統(tǒng)主要分為兩個功能模塊:代理端功能模塊、管理端功能模塊。
代理端主要就是實現(xiàn)數(shù)據(jù)采集模塊。
管理端分為IP地址檢測模塊,設(shè)置閾值模塊,監(jiān)控模塊。
遠程設(shè)備監(jiān)控系統(tǒng)總體功能結(jié)構(gòu)如圖1所示。
圖1遠程設(shè)備監(jiān)控系統(tǒng)總體功能結(jié)構(gòu)圖
遠程設(shè)備監(jiān)控系統(tǒng)的總體設(shè)計如圖1,首先要在被監(jiān)控的設(shè)備上設(shè)置好SNMP代理端,然后由監(jiān)控系統(tǒng)代理端的數(shù)據(jù)采集模塊去負責(zé)采集監(jiān)控數(shù)據(jù),相應(yīng)的參數(shù)在MIB信息庫中都會有對應(yīng)的OID值。當管理端發(fā)起請求獲取代理端的數(shù)據(jù)的時候,代理端將數(shù)據(jù)通過SNMP協(xié)議發(fā)送給管理端,管理端對數(shù)據(jù)進行處理,最后將監(jiān)控結(jié)果顯示在Qt UI界面上,通過運行監(jiān)控系統(tǒng)輸入需要監(jiān)控的設(shè)備的IP地址就可以迅速得到網(wǎng)絡(luò)設(shè)備中不同設(shè)備的相關(guān)監(jiān)控參數(shù),采集到的數(shù)據(jù)梅5秒鐘更新一次,系統(tǒng)中設(shè)置了各項參數(shù)的狀態(tài)數(shù)據(jù)的閾值,超過閾值就會彈出一個Waring窗體報警。
4結(jié)論
本文設(shè)計實現(xiàn)了基于SNMP的遠程設(shè)備監(jiān)控系統(tǒng),通過該系統(tǒng)來監(jiān)控遠程設(shè)備的CPU溫度、利用率,內(nèi)存的使用情況以及硬盤的各種參數(shù)及利用率,避免由于CPU溫度過高,或者內(nèi)存和硬盤的可使用空間不足而造成的設(shè)備無法工作的情況的發(fā)生。這樣,網(wǎng)絡(luò)管理人員就可以通過設(shè)備管理系統(tǒng)及時的發(fā)現(xiàn)問題,解決問題,提高了工作效率,同時也將企業(yè)的損失降到了最低。
參考文獻
[1]孫志,趙宏強.基于SNMP的網(wǎng)絡(luò)實時監(jiān)控技術(shù)研究[J].電子世界,2013(10):151-152.
[2]區(qū)海平,壽國礎(chǔ).基于MIB定義的SNMP分析系統(tǒng)及實現(xiàn)[J].計算機應(yīng)用,2009(01):38-41.
[3]葛化敏,楊利青,鄭靜.基于NET-SNMP的嵌入式網(wǎng)絡(luò)管理代理的開發(fā)[J].通信技術(shù),2009(11):138-140.
[4]朱吉佳,蔡家麟.基于Qt的業(yè)務(wù)監(jiān)控系統(tǒng)界面設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2008(03):236-239.
endprint
摘要隨著科技的迅猛發(fā)展,各個廠商在其工業(yè)生產(chǎn)線上都采用了自動化控制技術(shù),某些生產(chǎn)線還會處在一些比較特殊的環(huán)境中,比如高溫、極低溫、粉塵比較大、震動的環(huán)境等。而當設(shè)備在生產(chǎn)線上運行的過程中,通過網(wǎng)絡(luò)在遠端對生產(chǎn)線上的設(shè)備進行管理就顯得尤為重要。SNMP是當前最為流行的網(wǎng)絡(luò)管理解決方案,文章采用Qt編程技術(shù),同時采用開源軟件開發(fā)包Net-SNMP,實現(xiàn)基于SNMP的遠程設(shè)備監(jiān)控模塊,對遠程設(shè)備的溫度、CPU、內(nèi)存、硬盤等信息進行實時的監(jiān)控。
關(guān)鍵詞設(shè)備監(jiān)控;SNMP;遠程監(jiān)控;MIB
中圖分類號:TP319 文獻標識碼:A 文章編號:1671-7597(2014)11-0019-02
SNMP協(xié)議是已經(jīng)被廣泛接受并投入使用的工業(yè)標準,它的作用是保證管理及監(jiān)控信息在代理端和管理端之間進行傳送[1],這樣非常有利于網(wǎng)管人員對MIB(Management Information Base,管理信息庫)[2]中的任何節(jié)點進行檢索以便查找出所檢索節(jié)點的信息狀況,這樣更有利于網(wǎng)絡(luò)管理員檢測設(shè)備上的故障;并實時的給出故障診斷,并及時修復(fù)故障。它采用的是輪詢的機制,提供最基本的功能集。最適合小型,快速,低價格的環(huán)境使用。它底層采用的是無證實的傳輸層協(xié)議UDP,目前很多遠程設(shè)備監(jiān)控系統(tǒng)都是基于SNMP協(xié)議開發(fā)實現(xiàn)的。
1SNMP概述
SNMP簡單網(wǎng)絡(luò)管理協(xié)議是為網(wǎng)絡(luò)管理而定義的應(yīng)用層服務(wù),SNMP協(xié)議實際上是網(wǎng)絡(luò)管理的一系列標準。SNMP簡單網(wǎng)絡(luò)管理協(xié)議是基于TCP/IP協(xié)議的,SNMP簡單網(wǎng)絡(luò)管理協(xié)議工作在傳輸層之上,與底層的傳輸機制是完全分離的,SNMP簡單網(wǎng)絡(luò)管理協(xié)議采用的模型是“管理端——代理端”的模型來監(jiān)控和管理各個與互聯(lián)網(wǎng)連接設(shè)備,SNMP簡單網(wǎng)絡(luò)管理協(xié)議底層采用的是面向無連接的UDP協(xié)議在管理端和代理端之間進行數(shù)據(jù)的傳遞。SNMP簡單網(wǎng)絡(luò)管理協(xié)議包含一個應(yīng)用層協(xié)議——application layer protocol、數(shù)據(jù)庫模型——database schema和一組資料物件。SNMP簡單網(wǎng)絡(luò)管理協(xié)議是Internet工作任務(wù)組——IETF定義的internet協(xié)議簇的一部分。
2系統(tǒng)需求分析
2.1 功能需求
基于SNMP的遠程設(shè)備監(jiān)控系統(tǒng)共分兩個部分:
1)代理端,即數(shù)據(jù)采集模塊,通過數(shù)據(jù)采集部分獲取到設(shè)備的CPU溫度、CPU使用情況、內(nèi)存使用情況、硬盤使用情況,并通過SNMP協(xié)議發(fā)送給管理端。
2)管理端,即面向用戶的部分,通過Qt[4]設(shè)計的UI界面來顯示代理端發(fā)送來的需要監(jiān)控的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)。
2.2 系統(tǒng)性能需求
根據(jù)需求分析我們可以歸納系統(tǒng)所應(yīng)要求的性能:
1)系統(tǒng)響應(yīng)時間:實時,對遠端需要監(jiān)控的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)要實時的獲取,實時的發(fā)送,實時的更新,保證用戶可以實時的了解遠端設(shè)備當前的狀態(tài),以便對遠端的設(shè)備達到有效的監(jiān)控。
2)系統(tǒng)對網(wǎng)絡(luò)的要求:該系統(tǒng)在監(jiān)控遠端設(shè)備的過程中,必須保證網(wǎng)絡(luò)一直處于連接狀態(tài)。
3)系統(tǒng)獲取數(shù)據(jù)的準確性:由于系統(tǒng)對遠端的設(shè)備在進行實時的監(jiān)控,那么獲取到的遠端的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)就是用戶參考的唯一標準,這時保證獲取到的數(shù)據(jù)的準確性就顯得尤為重要。
2.3 功能模塊需求
1)代理端功能模塊需求。代理端在整個遠程設(shè)備監(jiān)控系統(tǒng)中擔(dān)任著一個非常重要的角色,代理端主要完成的任務(wù)就是對遠程的設(shè)備進行監(jiān)控數(shù)據(jù)的采集,當管理端向代理端發(fā)起請求需要獲取監(jiān)控數(shù)據(jù)時,代理端便會將所有的數(shù)據(jù)發(fā)送給管理端。在代理端通過安裝和配置基于C語言的SNMP協(xié)議的開發(fā)包Net-SNMP[3]以及硬件監(jiān)控的開源軟件lm_sensors,通過調(diào)用Net-SNMP的接口來配置MIB信息庫并開啟SNMP服務(wù)來獲取被監(jiān)控設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)。
2)管理端功能模塊需求。管理端是設(shè)備監(jiān)控系統(tǒng)的管理者,主要負責(zé)對被監(jiān)控設(shè)備的實時監(jiān)控,向SNMP代理端發(fā)送請求獲取設(shè)備的實時數(shù)據(jù)。如果管理端接受到異常的數(shù)據(jù),便向管理人員發(fā)出報警信息。在管理端安裝和配置基于C語言的SNMP協(xié)議的開發(fā)包Net-SNMP,通過調(diào)用接口開啟SNMP服務(wù)。通過編寫Qt程序來獲取代理端設(shè)備的實時信息,并及時的呈現(xiàn)給管理員,這樣管理員就可以對遠程設(shè)備進行實時的監(jiān)控了,同時當設(shè)備被監(jiān)控的數(shù)據(jù)出現(xiàn)異常時就會向管理員報警。
2.4 非功能性需求
1)性能需求。監(jiān)控系統(tǒng)獲得監(jiān)控數(shù)據(jù)的準確性以及監(jiān)控系統(tǒng)的實時性和穩(wěn)定性是系統(tǒng)的必要性能。
2)可擴展性。當前的監(jiān)控系統(tǒng)只支持部分設(shè)備,并且只能運行于Linux操作系統(tǒng)環(huán)境下,未來可以完善該系統(tǒng)支持更多的設(shè)備以及可以運行于各種版本的操作系統(tǒng)環(huán)境。
3)可用性。對于監(jiān)控系統(tǒng)的穩(wěn)定要求是非常高的,所以必須保證監(jiān)控系統(tǒng)長時間的處于正常的運行狀態(tài)下。
4)易用性。監(jiān)控系統(tǒng)界面友好,讓用戶在使用該監(jiān)控系統(tǒng)的時候可以很容易熟悉里面每項操作,很容易上手操作。
3基于SNMP遠程設(shè)備監(jiān)控系統(tǒng)設(shè)計
3.1 系統(tǒng)開發(fā)軟件環(huán)境
開發(fā)平臺:Qt Creator;操作系統(tǒng):Fedora 17;開源軟件:Net-SNMP;lm_sensors。
3.2 系統(tǒng)設(shè)計目標
系統(tǒng)設(shè)計的主要目標是對遠程網(wǎng)絡(luò)上的設(shè)備的各項參數(shù)進行監(jiān)控,以便網(wǎng)絡(luò)管理人員可以有效的對遠程的設(shè)備進行管理,及時的發(fā)現(xiàn)異常并做出迅速響應(yīng)。
3.3 系統(tǒng)主要任務(wù)
1)對遠程設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)進行實時的采集。
2)對代理端獲取到的數(shù)據(jù)進行處理、輸出。
3)在程序中對需要監(jiān)控的各項參數(shù)設(shè)置上限值,對采集的數(shù)據(jù)進行判斷,當超過上限值時,會彈出Warning對話框報警。
4)提供有效的IP地址檢查功能,檢測IP地址格式是不是正確,網(wǎng)絡(luò)是是不是處于連接狀態(tài)。
3.4 系統(tǒng)功能模塊的劃分
該遠程設(shè)備監(jiān)控系統(tǒng)主要分為兩個功能模塊:代理端功能模塊、管理端功能模塊。
代理端主要就是實現(xiàn)數(shù)據(jù)采集模塊。
管理端分為IP地址檢測模塊,設(shè)置閾值模塊,監(jiān)控模塊。
遠程設(shè)備監(jiān)控系統(tǒng)總體功能結(jié)構(gòu)如圖1所示。
圖1遠程設(shè)備監(jiān)控系統(tǒng)總體功能結(jié)構(gòu)圖
遠程設(shè)備監(jiān)控系統(tǒng)的總體設(shè)計如圖1,首先要在被監(jiān)控的設(shè)備上設(shè)置好SNMP代理端,然后由監(jiān)控系統(tǒng)代理端的數(shù)據(jù)采集模塊去負責(zé)采集監(jiān)控數(shù)據(jù),相應(yīng)的參數(shù)在MIB信息庫中都會有對應(yīng)的OID值。當管理端發(fā)起請求獲取代理端的數(shù)據(jù)的時候,代理端將數(shù)據(jù)通過SNMP協(xié)議發(fā)送給管理端,管理端對數(shù)據(jù)進行處理,最后將監(jiān)控結(jié)果顯示在Qt UI界面上,通過運行監(jiān)控系統(tǒng)輸入需要監(jiān)控的設(shè)備的IP地址就可以迅速得到網(wǎng)絡(luò)設(shè)備中不同設(shè)備的相關(guān)監(jiān)控參數(shù),采集到的數(shù)據(jù)梅5秒鐘更新一次,系統(tǒng)中設(shè)置了各項參數(shù)的狀態(tài)數(shù)據(jù)的閾值,超過閾值就會彈出一個Waring窗體報警。
4結(jié)論
本文設(shè)計實現(xiàn)了基于SNMP的遠程設(shè)備監(jiān)控系統(tǒng),通過該系統(tǒng)來監(jiān)控遠程設(shè)備的CPU溫度、利用率,內(nèi)存的使用情況以及硬盤的各種參數(shù)及利用率,避免由于CPU溫度過高,或者內(nèi)存和硬盤的可使用空間不足而造成的設(shè)備無法工作的情況的發(fā)生。這樣,網(wǎng)絡(luò)管理人員就可以通過設(shè)備管理系統(tǒng)及時的發(fā)現(xiàn)問題,解決問題,提高了工作效率,同時也將企業(yè)的損失降到了最低。
參考文獻
[1]孫志,趙宏強.基于SNMP的網(wǎng)絡(luò)實時監(jiān)控技術(shù)研究[J].電子世界,2013(10):151-152.
[2]區(qū)海平,壽國礎(chǔ).基于MIB定義的SNMP分析系統(tǒng)及實現(xiàn)[J].計算機應(yīng)用,2009(01):38-41.
[3]葛化敏,楊利青,鄭靜.基于NET-SNMP的嵌入式網(wǎng)絡(luò)管理代理的開發(fā)[J].通信技術(shù),2009(11):138-140.
[4]朱吉佳,蔡家麟.基于Qt的業(yè)務(wù)監(jiān)控系統(tǒng)界面設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2008(03):236-239.
endprint
摘要隨著科技的迅猛發(fā)展,各個廠商在其工業(yè)生產(chǎn)線上都采用了自動化控制技術(shù),某些生產(chǎn)線還會處在一些比較特殊的環(huán)境中,比如高溫、極低溫、粉塵比較大、震動的環(huán)境等。而當設(shè)備在生產(chǎn)線上運行的過程中,通過網(wǎng)絡(luò)在遠端對生產(chǎn)線上的設(shè)備進行管理就顯得尤為重要。SNMP是當前最為流行的網(wǎng)絡(luò)管理解決方案,文章采用Qt編程技術(shù),同時采用開源軟件開發(fā)包Net-SNMP,實現(xiàn)基于SNMP的遠程設(shè)備監(jiān)控模塊,對遠程設(shè)備的溫度、CPU、內(nèi)存、硬盤等信息進行實時的監(jiān)控。
關(guān)鍵詞設(shè)備監(jiān)控;SNMP;遠程監(jiān)控;MIB
中圖分類號:TP319 文獻標識碼:A 文章編號:1671-7597(2014)11-0019-02
SNMP協(xié)議是已經(jīng)被廣泛接受并投入使用的工業(yè)標準,它的作用是保證管理及監(jiān)控信息在代理端和管理端之間進行傳送[1],這樣非常有利于網(wǎng)管人員對MIB(Management Information Base,管理信息庫)[2]中的任何節(jié)點進行檢索以便查找出所檢索節(jié)點的信息狀況,這樣更有利于網(wǎng)絡(luò)管理員檢測設(shè)備上的故障;并實時的給出故障診斷,并及時修復(fù)故障。它采用的是輪詢的機制,提供最基本的功能集。最適合小型,快速,低價格的環(huán)境使用。它底層采用的是無證實的傳輸層協(xié)議UDP,目前很多遠程設(shè)備監(jiān)控系統(tǒng)都是基于SNMP協(xié)議開發(fā)實現(xiàn)的。
1SNMP概述
SNMP簡單網(wǎng)絡(luò)管理協(xié)議是為網(wǎng)絡(luò)管理而定義的應(yīng)用層服務(wù),SNMP協(xié)議實際上是網(wǎng)絡(luò)管理的一系列標準。SNMP簡單網(wǎng)絡(luò)管理協(xié)議是基于TCP/IP協(xié)議的,SNMP簡單網(wǎng)絡(luò)管理協(xié)議工作在傳輸層之上,與底層的傳輸機制是完全分離的,SNMP簡單網(wǎng)絡(luò)管理協(xié)議采用的模型是“管理端——代理端”的模型來監(jiān)控和管理各個與互聯(lián)網(wǎng)連接設(shè)備,SNMP簡單網(wǎng)絡(luò)管理協(xié)議底層采用的是面向無連接的UDP協(xié)議在管理端和代理端之間進行數(shù)據(jù)的傳遞。SNMP簡單網(wǎng)絡(luò)管理協(xié)議包含一個應(yīng)用層協(xié)議——application layer protocol、數(shù)據(jù)庫模型——database schema和一組資料物件。SNMP簡單網(wǎng)絡(luò)管理協(xié)議是Internet工作任務(wù)組——IETF定義的internet協(xié)議簇的一部分。
2系統(tǒng)需求分析
2.1 功能需求
基于SNMP的遠程設(shè)備監(jiān)控系統(tǒng)共分兩個部分:
1)代理端,即數(shù)據(jù)采集模塊,通過數(shù)據(jù)采集部分獲取到設(shè)備的CPU溫度、CPU使用情況、內(nèi)存使用情況、硬盤使用情況,并通過SNMP協(xié)議發(fā)送給管理端。
2)管理端,即面向用戶的部分,通過Qt[4]設(shè)計的UI界面來顯示代理端發(fā)送來的需要監(jiān)控的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)。
2.2 系統(tǒng)性能需求
根據(jù)需求分析我們可以歸納系統(tǒng)所應(yīng)要求的性能:
1)系統(tǒng)響應(yīng)時間:實時,對遠端需要監(jiān)控的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)要實時的獲取,實時的發(fā)送,實時的更新,保證用戶可以實時的了解遠端設(shè)備當前的狀態(tài),以便對遠端的設(shè)備達到有效的監(jiān)控。
2)系統(tǒng)對網(wǎng)絡(luò)的要求:該系統(tǒng)在監(jiān)控遠端設(shè)備的過程中,必須保證網(wǎng)絡(luò)一直處于連接狀態(tài)。
3)系統(tǒng)獲取數(shù)據(jù)的準確性:由于系統(tǒng)對遠端的設(shè)備在進行實時的監(jiān)控,那么獲取到的遠端的設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)就是用戶參考的唯一標準,這時保證獲取到的數(shù)據(jù)的準確性就顯得尤為重要。
2.3 功能模塊需求
1)代理端功能模塊需求。代理端在整個遠程設(shè)備監(jiān)控系統(tǒng)中擔(dān)任著一個非常重要的角色,代理端主要完成的任務(wù)就是對遠程的設(shè)備進行監(jiān)控數(shù)據(jù)的采集,當管理端向代理端發(fā)起請求需要獲取監(jiān)控數(shù)據(jù)時,代理端便會將所有的數(shù)據(jù)發(fā)送給管理端。在代理端通過安裝和配置基于C語言的SNMP協(xié)議的開發(fā)包Net-SNMP[3]以及硬件監(jiān)控的開源軟件lm_sensors,通過調(diào)用Net-SNMP的接口來配置MIB信息庫并開啟SNMP服務(wù)來獲取被監(jiān)控設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)。
2)管理端功能模塊需求。管理端是設(shè)備監(jiān)控系統(tǒng)的管理者,主要負責(zé)對被監(jiān)控設(shè)備的實時監(jiān)控,向SNMP代理端發(fā)送請求獲取設(shè)備的實時數(shù)據(jù)。如果管理端接受到異常的數(shù)據(jù),便向管理人員發(fā)出報警信息。在管理端安裝和配置基于C語言的SNMP協(xié)議的開發(fā)包Net-SNMP,通過調(diào)用接口開啟SNMP服務(wù)。通過編寫Qt程序來獲取代理端設(shè)備的實時信息,并及時的呈現(xiàn)給管理員,這樣管理員就可以對遠程設(shè)備進行實時的監(jiān)控了,同時當設(shè)備被監(jiān)控的數(shù)據(jù)出現(xiàn)異常時就會向管理員報警。
2.4 非功能性需求
1)性能需求。監(jiān)控系統(tǒng)獲得監(jiān)控數(shù)據(jù)的準確性以及監(jiān)控系統(tǒng)的實時性和穩(wěn)定性是系統(tǒng)的必要性能。
2)可擴展性。當前的監(jiān)控系統(tǒng)只支持部分設(shè)備,并且只能運行于Linux操作系統(tǒng)環(huán)境下,未來可以完善該系統(tǒng)支持更多的設(shè)備以及可以運行于各種版本的操作系統(tǒng)環(huán)境。
3)可用性。對于監(jiān)控系統(tǒng)的穩(wěn)定要求是非常高的,所以必須保證監(jiān)控系統(tǒng)長時間的處于正常的運行狀態(tài)下。
4)易用性。監(jiān)控系統(tǒng)界面友好,讓用戶在使用該監(jiān)控系統(tǒng)的時候可以很容易熟悉里面每項操作,很容易上手操作。
3基于SNMP遠程設(shè)備監(jiān)控系統(tǒng)設(shè)計
3.1 系統(tǒng)開發(fā)軟件環(huán)境
開發(fā)平臺:Qt Creator;操作系統(tǒng):Fedora 17;開源軟件:Net-SNMP;lm_sensors。
3.2 系統(tǒng)設(shè)計目標
系統(tǒng)設(shè)計的主要目標是對遠程網(wǎng)絡(luò)上的設(shè)備的各項參數(shù)進行監(jiān)控,以便網(wǎng)絡(luò)管理人員可以有效的對遠程的設(shè)備進行管理,及時的發(fā)現(xiàn)異常并做出迅速響應(yīng)。
3.3 系統(tǒng)主要任務(wù)
1)對遠程設(shè)備的各項參數(shù)的狀態(tài)數(shù)據(jù)進行實時的采集。
2)對代理端獲取到的數(shù)據(jù)進行處理、輸出。
3)在程序中對需要監(jiān)控的各項參數(shù)設(shè)置上限值,對采集的數(shù)據(jù)進行判斷,當超過上限值時,會彈出Warning對話框報警。
4)提供有效的IP地址檢查功能,檢測IP地址格式是不是正確,網(wǎng)絡(luò)是是不是處于連接狀態(tài)。
3.4 系統(tǒng)功能模塊的劃分
該遠程設(shè)備監(jiān)控系統(tǒng)主要分為兩個功能模塊:代理端功能模塊、管理端功能模塊。
代理端主要就是實現(xiàn)數(shù)據(jù)采集模塊。
管理端分為IP地址檢測模塊,設(shè)置閾值模塊,監(jiān)控模塊。
遠程設(shè)備監(jiān)控系統(tǒng)總體功能結(jié)構(gòu)如圖1所示。
圖1遠程設(shè)備監(jiān)控系統(tǒng)總體功能結(jié)構(gòu)圖
遠程設(shè)備監(jiān)控系統(tǒng)的總體設(shè)計如圖1,首先要在被監(jiān)控的設(shè)備上設(shè)置好SNMP代理端,然后由監(jiān)控系統(tǒng)代理端的數(shù)據(jù)采集模塊去負責(zé)采集監(jiān)控數(shù)據(jù),相應(yīng)的參數(shù)在MIB信息庫中都會有對應(yīng)的OID值。當管理端發(fā)起請求獲取代理端的數(shù)據(jù)的時候,代理端將數(shù)據(jù)通過SNMP協(xié)議發(fā)送給管理端,管理端對數(shù)據(jù)進行處理,最后將監(jiān)控結(jié)果顯示在Qt UI界面上,通過運行監(jiān)控系統(tǒng)輸入需要監(jiān)控的設(shè)備的IP地址就可以迅速得到網(wǎng)絡(luò)設(shè)備中不同設(shè)備的相關(guān)監(jiān)控參數(shù),采集到的數(shù)據(jù)梅5秒鐘更新一次,系統(tǒng)中設(shè)置了各項參數(shù)的狀態(tài)數(shù)據(jù)的閾值,超過閾值就會彈出一個Waring窗體報警。
4結(jié)論
本文設(shè)計實現(xiàn)了基于SNMP的遠程設(shè)備監(jiān)控系統(tǒng),通過該系統(tǒng)來監(jiān)控遠程設(shè)備的CPU溫度、利用率,內(nèi)存的使用情況以及硬盤的各種參數(shù)及利用率,避免由于CPU溫度過高,或者內(nèi)存和硬盤的可使用空間不足而造成的設(shè)備無法工作的情況的發(fā)生。這樣,網(wǎng)絡(luò)管理人員就可以通過設(shè)備管理系統(tǒng)及時的發(fā)現(xiàn)問題,解決問題,提高了工作效率,同時也將企業(yè)的損失降到了最低。
參考文獻
[1]孫志,趙宏強.基于SNMP的網(wǎng)絡(luò)實時監(jiān)控技術(shù)研究[J].電子世界,2013(10):151-152.
[2]區(qū)海平,壽國礎(chǔ).基于MIB定義的SNMP分析系統(tǒng)及實現(xiàn)[J].計算機應(yīng)用,2009(01):38-41.
[3]葛化敏,楊利青,鄭靜.基于NET-SNMP的嵌入式網(wǎng)絡(luò)管理代理的開發(fā)[J].通信技術(shù),2009(11):138-140.
[4]朱吉佳,蔡家麟.基于Qt的業(yè)務(wù)監(jiān)控系統(tǒng)界面設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2008(03):236-239.
endprint