SNMP學習筆記之iReasoning MIB Browser


 

0x00 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

 

0x01 如何獲取CISCO設備OID值

思科的交換機snmp oid信息查詢  http://tools.cisco.com/Support/SNMP/do/BrowseOID.do

1、通過交換機執行命令“show version”獲取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內存池空閑,內存池總大小=使用+空閑

 

0x02 華為MIB庫

 如何下載華為設備MIB  http://support.huawei.com/huaweiconnect/enterprise/thread-228323.html

操作方法同以上思科

 

 

0x03 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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM