爛泥:使用snmpwalk採集設備的OID信息

本文首發於爛泥行天下

打算開始學習有關監控方面的知識,但是現在很多監控系統都是根據SNMP進行的。而SNMP監控的性能指標很多都是通過snmpwalk採集設備的OID信息得到的,所以今天就來先介紹下,如何通過snmpwalk來採集設備的OID信息。

要使用snmpwalk採集設備的OID信息,需要以下幾個步驟:

1、 理解snmpwalk的原理

2、 安裝snmpwalk

3、 snmpwalk參數說明

4、 snmpwalk的使用方法

5、 使用snmpwalk採集設備OID信息

6、 生產環境中設備OID信息注意事項

一、理解snmpwalk的原理

snmpwalk是SNMP的一個工具,它使用SNMP的GETNEXT請求查詢指定OID(SNMP協議中的對象標識)入口的所有OID樹信息,並顯示給用戶。通過snmpwalk也可以查看支持SNMP協議(可網管)的設備的一些其他信息,比如cisco交換機或路由器IP地址、內存使用率等,也可用來協助開發SNMP功能。

二、安裝snmpwalk

要使用snmpwalk,我們首先要安裝snmpwalk。snmpwalk沒有單獨的安裝包,它被包含在net-snmp軟件包中的,所以我們只需要安裝net-snmp軟件包就可以得到snmpwalk。而net-snmp的安裝又分爲linux環境和windows環境,下面我們來一一進行介紹。

2.1 linux下安裝net-snmp

在linux下使用snmpwalk工具,我們必須要安裝net-snmp-utils這個軟件包。

注意:如果linux只安裝net-snmp的話,則不包含snmpwalk工具,如下:

yum -y install net-snmp-utils

snmpwalk -h

clip_p_w_picpath001

clip_p_w_picpath002

2.2 windows安裝下net-snmp

windows下安裝net-snmp,我們可以去net-snmp官網進行下載。

現在我們安裝的是net-snmp-5.6.1.1-1.x86.exe這個軟件包。如下:

clip_p_w_picpath003

clip_p_w_picpath004

以上是一種方法,還有另外一種方法就是直接使用,已經製作好的免安裝包。

免安裝包的製作很簡單,就是先在本地安裝net-snmp軟件包,然後把安裝目錄下的bin目錄複製到其他服務器就可以正常了。如下:

clip_p_w_picpath005

這樣就可以把bin目錄,複製到其他機器上使用。注意在使用的過程中爲了更方便的使用snmpwalk工具,我們可以把該目錄所在的路徑加入系統的環境變量中,如下:

clip_p_w_picpath006

clip_p_w_picpath007

clip_p_w_picpath008

clip_p_w_picpath009

這樣我們就把net-snmp安裝完畢。關於snmpwalk免安裝包可以在這個地址下載《爛泥snmpwalk5.6.1.1免安裝包》。

三、snmpwalk參數說明

snmpwalk的用法,我們可以通過幫助信息進行查看,如下:

snmpwalk -h

clip_p_w_picpath010

通過上圖,我們可以看到snmpwalk的參數比較多,但是我們比較常用的就只有-v和-c參數。如下:

–h:顯示幫助。

–v:指定snmp的版本, 1或者2c或者3。

–c:指定連接設備SNMP密碼。

–V:顯示當前snmpwalk命令行版本。

–r:指定重試次數,默認爲0次。

–t:指定每次請求的等待超時時間,單爲秒,默認爲3秒。

–l:指定安全級別:noAuthNoPriv|authNoPriv|authPriv。

–a:驗證協議:MD5|SHA。只有-l指定爲authNoPriv或authPriv時才需要。

–A:驗證字符串。只有-l指定爲authNoPriv或authPriv時才需要。

–x:加密協議:DES。只有-l指定爲authPriv時才需要。

–X:加密字符串。只有-l指定爲authPriv時才需要。

四、snmpwalk的使用方法及實例

snmpwalk使用方法很簡單,如下:

snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密碼 IP地址 OID(對象標示符)

–v:指定snmp的版本, 1或者2,該參數必須有。

–c:指定連接設備SNMP讀密碼,該參數必須有。

IP:指定要walk的設備的IP地址,該參數必須有。

OID:代表要獲取設備的指標oid,該參數不是必須的。

五、使用snmpwalk獲取設備OID信息

下面我們開始使用snmpwalk開始獲取設備的一些OID信息,注意現在獲取的都是windows系統,沒有涉及到linux系統。

注意:在此我們還使用了iReasoning MIB Browser這個MIB瀏覽軟件以配合我們的實驗。

5.1獲取windows系統進程數

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1.6

這條命令的意思是:使用v1版本,共同體爲public,來對192.168.1.200的.1.3.6.1.2.1.25.1.6分支進行walk。

clip_p_w_picpath011

5.2獲取windows系統用戶數

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1.5

clip_p_w_picpath012

我們也可以通過以下命令獲得:

snmpwalk -v 1 -c public 192.168.1.200 hrSystemNumUsers

clip_p_w_picpath013

注意:hrSystemNumUsers與.1.3.6.1.2.1.25.1.5是等效的。

5.1和5.2其實我們完全可以通過一條命令獲得,如下:

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1

clip_p_w_picpath014

獲取的信息中包含系統的運行時間、系統的用戶數、系統的進程數、系統當前的時間。

5.3獲取windows系統總內存

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.2.2

clip_p_w_picpath015

5.4獲取windows系統的IP地址

snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.4.20.1.1

clip_p_w_picpath016

5.5獲取windows系統信息

snmpwalk -v 1 -c public 192.168.1.200 system

clip_p_w_picpath017

5.6獲取windows系統的網卡信息

snmpwalk -v 1 192.168.1.200 -c public ifDescr

clip_p_w_picpath018

六、生產環境中設備OID信息注意事項

6.1獲取的目標與保存說明

針對研發需要設備MIB信息進行調試的情況,一般需要設備的完整MIB(包含公有OID和私有OID),因此在進行設備的MIB獲取時,使用使用.1作爲目標mib分支(即完整mib文件)。並且一般需要將輸出使用>重定向符,輸出到一個指定的文件中,以方便傳輸。

6.2參數選項說明

一般需要使用-Cc,來指定允許OID不重複。

如果設備較容易超時,需要使用-t與-r參數,來指定超時時間與重試次數。

6.3 MIB信息的完整性

完整walk到一個MIB,在MIB末尾,都會輸出“End Of Mib”的字樣。否則可能爲Response timeout等錯誤,此時請根據錯誤消息及時調整參數。

clip_p_w_picpath019

一般來說使用snmpwalk -v 1/2c -c community IP .1>IP.mib命令採集設備MIB信息後,文件IP.mib應該包含該設備的所有MIB信息。

但是從實際反應的情況來看,某些設備產商由於SNMP實現支持不是很標準,故存在只能獲取到公有MIB信息(即1.3.6.1.2.1開頭的信息)的情況,此時請再使用命令snmpwalk -v 1/2c -c community IP .1.3.6.1.4.1>IP.private.mib採集設備私有MIB信息,並和前面採集到的IP.mib一同發給研發。

小結:所謂MIB信息的完整性,即判斷snmpwalk命令輸出的文件信息中是否包含iso.3.6.1.2.1開頭的OID信息(公有MIB信息),又是否包含iso.3.6.1.4.1開頭的OID信息(私有MIB信息),甚至還可能包含iso.3.6.1.6.1開頭的OID信息(該部分信息可有可無,目前暫時未用到)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章