python netsnmp_python net-snmp使用
安裝
環境: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時才需要。
MIB Browser
iReasoning MIB瀏覽器是一個強大和易于使用的工具由iReasoning SNMP API提供支持。 MIB瀏覽器是工程師管理啟用SNMP的網絡設備和應用程序不可或缺的工具。 它允許用戶加載標準的,專有的MIB,甚至一些錯誤的MIB。 它還允許它們發出SNMP請求以檢索代理的數據,或對代理進行更改。 內置陷阱接收器可以根據其規則引擎接收和處理SNMP陷阱。
安裝后界面
可以通過官網下載MIB庫文件,導入ireasoning\mibbrowser\mibs目錄下,通過MIB Browser可以查看設備的私有OID
如何獲取Cisco設備OID值
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庫
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()
總結
以上是生活随笔為你收集整理的python netsnmp_python net-snmp使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸿蒙和安卓,到底有什么区别?
- 下一篇: 怎样下载安装python_Windows