歡迎您光臨本站 註冊首頁

SNMP 診斷方法

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

SNMP 診斷方法

已有超過4000台伺服器在使用監控寶的SNMP性能監控,為了幫助大家更加方便的診斷伺服器SNMP開啟狀況,我們編寫了SNMP診斷教程.

伺服器本機SNMP診斷

首先建議您在伺服器本機測試SNMP服務是否正常,我們根據不同操作系統來分別詳細介紹.

Linux SNMP

如果您的伺服器操作系統是 Linux 系統,請首先按照我們的指引正確安裝SNMP代理程序.可以參考:

在Linux伺服器上開啟SNMP

接下來,您可以通過SSH登錄到伺服器上,通過SNMP自帶的命令行工具來測試是否可以本地獲取SNMP數據.在示例中我們假設SNMP安裝路徑為 /usr/local/snmp,均採用默認的161 UDP埠.

如果您在SNMP中採用的是v2c驗證方式,並且community字元串假設為“public”,那麼測試方法為:

   $ /usr/local/snmp/bin/snmpwalk -v 2c -c public 127.0.0.1:161 sysDescr

如果您的SNMP中採用的v3驗證方式,用戶名為“user”,密碼為“pass”,加密方式為“MD5”,那麼測試方法為:

   $ /usr/local/snmp/bin/snmpwalk -v 3 -l authNoPriv -a MD5 -u user -A pass 127.0.0.1:161 sysDescr

在命令行輸入這些語句后,如果伺服器SNMP正常開啟的話,您應該可以獲得以下類似的反饋:

   $ SNMPv2-MIB::sysDescr.0 = STRING: Linux host1 2.6.27.19-5-default #1 SMP 2009-02-28 04:40:21  0100 x86_64

如果本機測試中無法獲得類似的正確反饋,則說明SNMP安裝或者設置存在問題,您可以參考隨後的錯誤信息分析.

Windows SNMP

如果您的伺服器操作系統是 Windows 系統,請首先按照我們的指引正確安裝SNMP服務.可以參考:

在Windows伺服器上開啟SNMP服務

接下來您可以遠程連接到Windows伺服器上,開始測試本機的SNMP服務是否正常開啟,這裡我們需要下載SNMP的測試工具.

訪問以下地址: http://www.elifulkerson.com/articles/net-snmp-windows-binary-unofficial.php

下載以下兩個文件:

   http://www.elifulkerson.com/projects/downloads/net-snmp-5.4-win32-unofficial/mibs.zip   http://www.elifulkerson.com/projects/downloads/net-snmp-5.4-win32-unofficial/snmpwalk.exe

其中 mibs.zip 解壓縮后得到:

  • COPYING 版權文件
  • mibs 包含一系列 .txt 後綴的MIB文件

接下來新建一個測試目錄,比如 c:snmptest,把前面得到的 snmpwalk.exe 文件和 mibs 子目錄都拷貝到該目錄下,最終的目錄結構如下:

   c:snmptest        |-- snmpwalk.exe        |-- mibs   

然後通過“運行”菜單輸入“cmd”,打開命令行窗口,並切換到測試目錄.DOS命令如下:

cd c:snmptest

現在就可以開始測試了.如果您在SNMP中採用的是v2c驗證方式,並且community字元串假設為“public”,那麼測試方法為:

   snmpwalk.exe -M mibs -v 2c -c public 127.0.0.1:161 sysDescr

如果您的SNMP中採用的v3驗證方式,用戶名為“user”,密碼為“pass”,加密方式為“MD5”,那麼測試方法為:

   snmpwalk.exe -M mibs -v 3 -l authNoPriv -a MD5 -u user -A pass 127.0.0.1:161 sysDescr

在命令行輸入這些語句后,如果伺服器SNMP服務正常工作的話,您應該可以獲得以下類似的反饋:

   SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 6 Model 23 Stepping 10 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Multiprocessor Free)        

如果本機測試中無法獲得類似的正確反饋,則說明SNMP安裝或者設置存在問題,您可以參考隨後的錯誤信息分析.

遠程SNMP診斷

當本機SNMP測試通過後,則說明伺服器的SNMP已經開始正常工作,如果還是無法通過監控寶獲取SNMP數據,那麼可能是防火牆、IP授權或者其它網路原因,為此我們推出了遠程SNMP診斷工具,它通過SNMP採集點伺服器上的snmpwalk遠程請求您的伺服器SNMP服務,進一步您了解更多信息.

SNMP遠程診斷工具

常見錯誤信息分析

Timeout: No Response from X.X.X.X

通常使用SNMP協議版本v2c時會遇到這類錯誤,可能的原因有:

  • community字元串填寫錯誤?請仔細核對 -c 參數后的值,比如是不是1和l、0和O寫混了,大小寫弄錯了等.
  • IP地址訪問不到?您可以使用 ping, traceroute/tracert 測試該IP.
  • 埠訪問不到? 您可以 netstat 查看該埠是否正常監聽, Linux下 ps 查看 snmpd 進程是否運行, windows 下看服務是否開啟
  • 防火牆沒有開放該埠?嘗試關掉防火牆試試,如果關掉防火牆能成功,則說明是防火牆的問題,具體防火牆配置的方法請查詢防火牆相關資料.

備註:Linux下查看snmpd進程是否運行,可以通過以下命令:

   $ ps afx | grep snmpd$    4889 ?        S     42:44 /usr/local/snmp/sbin/snmpd

Windows下查看SNMP服務是否運行,可以在“運行”菜單中輸入“services.msc”,找到“SNMP Service”,應該是“啟動”的狀態.

snmpwalk: Timeout (Sub-id not found: (top) -> sysDescr)

通常使用SNMP協議版本v3時會遇到這類錯誤,可能的原因有:

  • IP地址訪問不到?您可以使用 ping, traceroute/tracert 測試該IP.
  • 埠訪問不到? 您可以 netstat 查看該埠是否正常監聽, Linux下 ps 查看 snmpd 進程是否允許, windows 下看服務是否開啟.
  • 防火牆沒有開放該埠?嘗試關掉防火牆試試,如果關掉防火牆能成功,則說明是防火牆的問題,具體防火牆配置的方法請查詢防火牆相關資

snmpwalk: Authentication failure (incorrect password, community or key) (Sub-id not found: (top) -> sysDescr)

通常使用SNMP協議版本v3時會遇到這類錯誤,可能的原因有:

  • 密碼填寫錯誤?
  • 加密方法 (MD5/SHA) 填寫錯誤?

snmpwalk: Unknown user name (Sub-id not found: (top) -> sysDescr)

通常使用SNMP協議版本v3時會遇到這類錯誤,可能的原因有:

  • 用戶名填寫錯誤

其它

在本機測試中,如果您需要更詳細的信息,在前面的 snmpwalk 測試命令中可以加上 -d 選項,打開 debug 信息,這樣您可以看到收發的數據包.

本文出自 「Holy」 博客,請務必保留此出處http://holy2010.blog.51cto.com/1086044/425451


[火星人 ] SNMP 診斷方法已經有3350次圍觀

http://coctec.com/docs/linux/show-post-49697.html