安裝
官網:http://www.net-snmp.org/download.html
環境:CentOS 6.6 + python 2.7.10
1、下載安裝包 net-snmp-5.6.2.1.tar.gz,並編譯安裝
tar -xvf net-snmp-5.6.2.1.tar.gz cd net-snmp-5.6.2.1 /configure --with-python-modules --prefix=/usr/local/net-snmp --enable-developer --libdir=/usr/lib64 --enable-shared make make install
2、安裝netsnmp python庫
cd net-snmp-5.6.2.1/python python setup.py install
3、測試
import netsnmp
snmpwalk
snmpwalk是SNMP的一個工具,它使用SNMP的GETNEXT請求查詢指定OID(SNMP協議中的對象標識)入口的所有OID樹信息,並顯示給用戶。通過snmpwalk也可以查看支持SNMP協議(可網管)的設備的一些其他信息,比如cisco交換機或路由器IP地址、內存使用率等,也可用來協助開發SNMP功能。
snmpwalk沒有單獨的安裝包,它被包含在net-snmp軟件包中的,所以我們只需要安裝net-snmp軟件包就可以得到snmpwalk。
snmpwalk使用方法:
snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密碼 IP地址 OID(對象標示符) –v:指定snmp的版本, 1或者2,該參數必須有。 –c:指定連接設備SNMP讀密碼,該參數必須有。 IP:指定要walk的設備的IP地址,該參數必須有。 OID:代表要獲取設備的指標oid,該參數不是必須的。
重要參數介紹:
- –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時才需要。
參考文檔:http://www.ilanni.com/?p=8408
MIB Browser
iReasoning MIB瀏覽器是一個強大和易於使用的工具由iReasoning SNMP API提供支持。 MIB瀏覽器是工程師管理啟用SNMP的網絡設備和應用程序不可或缺的工具。 它允許用戶加載標准的,專有的MIB,甚至一些錯誤的MIB。 它還允許它們發出SNMP請求以檢索代理的數據,或對代理進行更改。 內置陷阱接收器可以根據其規則引擎接收和處理SNMP陷阱。
下載地址:http://www.ireasoning.com/download.shtml
安裝后界面
可以通過官網下載MIB庫文件,導入ireasoning\mibbrowser\mibs目錄下,通過MIB Browser可以查看設備的私有OID
如何獲取Cisco設備OID值
思科的交換機snmp oid信息查詢 http://tools.cisco.com/Support/SNMP/do/BrowseOID.do
1、通過交換機執行命令獲取IOS名稱,如下圖標紅的內容
2、官網頁面查詢
3、點擊search后彈出新頁面,列出這個IOS所有可用的MIB庫,如下圖
4、選擇自己需要的MIB庫,如CISCO環境監視器MIB文件,名稱是CISCO-ENVMON-MIB,點擊V2
我需要查看設備的溫度值,找到具體的OBJECT-TYPE,如下圖的 ciscoEnvMonTemperatureStatusTable
5、根據ciscoEnvMonTemperatureStatusTable 去官網查詢它的OID
6、根據查詢的OID,通過snmpwalk命令進行獲取
7、cpu信息獲取
下表顯示他們替換的新的MIB和他們的對象在舊有MIB旁邊和對象:
# sysDescr CSICO-3560 系統信息 # ifNumber CSICO-3560 接口總數 # ifTable CSICO-3560 接口詳細信息 # .1.3.6.1.4.1.9.9.13.1.3.1.3 CSICO-3560 溫度 # .1.3.6.1.4.1.9.9.13.1.4.1.3 CSICO-3560 風扇狀態 # .1.3.6.1.4.1.9.9.13.1.5.1.3 CSICO-3560 電源狀態 # 1.3.6.1.4.1.9.9.48.1.1.1.1 CSICO-3560內存池名稱,有多個,如Processor、I/O、Driver # 1.3.6.1.4.1.9.9.48.1.1.1.5 CSICO-3560內存池使用 # 1.3.6.1.4.1.9.9.48.1.1.1.6 CSICO-3560內存池空閑,內存池總大小=使用+空閑
華為MIB庫
如何下載華為設備MIB http://support.huawei.com/huaweiconnect/enterprise/thread-228323.html
python代碼實現獲取snmp信息
# -*- coding: utf-8 -*- import netsnmp class SnmpClass(object): """ SNMP """ def __init__(self, oid="sysDescr", version=1, destHost="localhost", community="public"): self.oid = oid self.version = version self.destHost = destHost self.community = community @property def query(self): """ snmpwalk """ try: result = netsnmp.snmpwalk(self.oid, Version=self.version, DestHost=self.destHost, Community=self.community) except Exception, err: print err result = None return result def main(): test_obj = SnmpClass(oid="ifIndex", destHost="192.168.137.11") print test_obj.query if __name__ == '__main__': main()