SNMP 诊断方法
目錄
- SNMP 診斷方法
- 服務器本機SNMP診斷
- Linux SNMP
- Windows SNMP
- 遠程SNMP診斷
- 常見錯誤信息分析
- 服務器本機SNMP診斷
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.3.1/mibs.zip http://www.elifulkerson.com/projects/downloads/net-snmp/5.3.1/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/snmpdWindows下查看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 信息,這樣您可以看到收發的數據包。
文檔/snmp診斷.txt · 最后更改: 2013-02-26 14:18 (外部編輯)轉載于:https://blog.51cto.com/jkenyen/1162561
總結