zoukankan      html  css  js  c++  java
  • 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库文件,导入ireasoningmibbrowsermibs目录下,通过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()
  • 相关阅读:
    Windows SDK编程(Delphi版) 之 应用基础,楔子
    一个小问题引发的论证思考
    Delphi 组件开发教程指南(7)继续模拟动画显示控件
    用PyInstaller将python转成可执行文件exe笔记
    使用 .Net Memory Profiler 诊断 .NET 应用内存泄漏(方法与实践)
    Microsof Office SharePoint 2007 工作流开发环境搭建
    How to monitor Web server performance by using counter logs in System Monitor in IIS
    LINQ之Order By
    window 性能监视器
    内存泄露检测工具
  • 原文地址:https://www.cnblogs.com/JetpropelledSnake/p/9870930.html
Copyright © 2011-2022 走看看