打算開始學習有關監控方面的知識,但是現在很多監控系統都是根據snmp進行的。而snmp監控的性能名額很多都是通過snmpwalk采集裝置的oid資訊得到的,是以今天就來先介紹下,如何通過snmpwalk來采集裝置的oid資訊。
要使用snmpwalk采集裝置的oid資訊,需要以下幾個步驟:
1、 了解snmpwalk的原理
2、 安裝snmpwalk
3、 snmpwalk參數說明
4、 snmpwalk的使用方法
5、 使用snmpwalk采集裝置oid資訊
6、 生産環境中裝置oid資訊注意事項
<b>一、了解snmpwalk的原理</b>
snmpwalk是snmp的一個工具,它使用snmp的getnext請求查詢指定oid(snmp協定中的對象辨別)入口的所有oid樹資訊,并顯示給使用者。通過snmpwalk也可以檢視支援snmp協定(可網管)的裝置的一些其他資訊,比如cisco交換機或路由器ip位址、記憶體使用率等,也可用來協助開發snmp功能。
<b>二、安裝snmpwalk</b>
要使用snmpwalk,我們首先要安裝snmpwalk。snmpwalk沒有單獨的安裝包,它被包含在net-snmp軟體包中的,是以我們隻需要安裝net-snmp軟體包就可以得到snmpwalk。而net-snmp的安裝又分為linux環境和windows環境,下面我們來一一進行介紹。
<b>2.1 linux</b><b>下安裝net-snmp</b>
在linux下使用snmpwalk工具,我們必須要安裝net-snmp-utils這個軟體包。
<b>注意:如果linux隻安裝net-snmp的話,則不包含snmpwalk工具,如下:</b>
yum -y install net-snmp-utils
snmpwalk -h
<b>2.2 windows</b><b>安裝下net-snmp</b>
windows下安裝net-snmp,我們可以去net-snmp官網進行下載下傳。
現在我們安裝的是net-snmp-5.6.1.1-1.x86.exe這個軟體包。如下:
以上是一種方法,還有另外一種方法就是直接使用,已經制作好的免安裝包。
免安裝包的制作很簡單,就是先在本地安裝net-snmp軟體包,然後把安裝目錄下的bin目錄複制到其他伺服器就可以正常了。如下:
這樣就可以把bin目錄,複制到其他機器上使用。注意在使用的過程中為了更友善的使用snmpwalk工具,我們可以把該目錄所在的路徑加入系統的環境變量中,如下:
<b>三、snmpwalk參數說明</b>
snmpwalk的用法,我們可以通過幫助資訊進行檢視,如下:
通過上圖,我們可以看到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時才需要。
<b>四、snmpwalk的使用方法及執行個體</b>
snmpwalk使用方法很簡單,如下:
snmpwalk -v 1或2c(代表snmp版本) -c snmp密碼 ip位址 oid(對象标示符)
–v:指定snmp的版本, 1或者2,該參數必須有。
–c:指定連接配接裝置snmp讀密碼,該參數必須有。
ip:指定要walk的裝置的ip位址,該參數必須有。
oid:代表要擷取裝置的名額oid,該參數不是必須的。
<b>五、使用snmpwalk擷取裝置oid資訊</b>
下面我們開始使用snmpwalk開始擷取裝置的一些oid資訊,注意現在擷取的都是windows系統,沒有涉及到linux系統。
<b>注意:在此我們還使用了ireasoning mib browser這個mib浏覽軟體以配合我們的實驗。</b>
<b>5.1</b><b>擷取windows系統程序數</b>
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。
<b>5.2</b><b>擷取windows系統使用者數</b>
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1.5
我們也可以通過以下指令獲得:
snmpwalk -v 1 -c public 192.168.1.200 hrsystemnumusers
<b>注意:hrsystemnumusers與.1.3.6.1.2.1.25.1.5是等效的。</b>
5.1和5.2其實我們完全可以通過一條指令獲得,如下:
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.1
擷取的資訊中包含系統的運作時間、系統的使用者數、系統的程序數、系統目前的時間。
<b>5.3</b><b>擷取windows系統總記憶體</b>
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.25.2.2
<b>5.4</b><b>擷取windows系統的ip位址</b>
snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.4.20.1.1
<b>5.5</b><b>擷取windows系統資訊</b>
snmpwalk -v 1 -c public 192.168.1.200 system
<b>5.6</b><b>擷取windows系統的網卡資訊</b>
snmpwalk -v 1 192.168.1.200 -c public ifdescr
<b>六、</b><b>生産環境中裝置oid資訊注意事項</b>
<b>6.1</b><b>擷取的目标與儲存說明</b>
針對研發需要裝置mib資訊進行調試的情況,一般需要裝置的完整mib(包含公有oid和私有oid),是以在進行裝置的mib擷取時,使用使用.1作為目标mib分支(即完整mib檔案)。并且一般需要将輸出使用>重定向符,輸出到一個指定的檔案中,以友善傳輸。
<b>6.2</b><b>參數選項說明</b>
一般需要使用-cc,來指定允許oid不重複。
如果裝置較容易逾時,需要使用-t與-r參數,來指定逾時時間與重試次數。
<b>6.3 mib</b><b>資訊的完整性</b>
完整walk到一個mib,在mib末尾,都會輸出“end of mib”的字樣。否則可能為response timeout等錯誤,此時請根據錯誤消息及時調整參數。
一般來說使用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一同發給研發。
<b>小結:所謂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資訊(該部分資訊可有可無,目前暫時未用到)。</b>