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()
  • 相关阅读:
    List、Map、set的加载因子,默认初始容量和扩容增量
    spring事务处理
    根据url的属性名来取属性值赋值给js
    XStream JavaBean对象转换成XML!
    【转载:java】详解java中的注解(Annotation)
    Myeclipse修改jdk版本流程
    Bootstrap中文参考手册
    CSS3参考手册
    HTML 5 参考手册
    win7win8一键取得超级管理员权限
  • 原文地址:https://www.cnblogs.com/JetpropelledSnake/p/9870930.html
Copyright © 2011-2022 走看看