如何在 pysnmp 代理端的自定义 MIB 文件中设置值?

问题描述

我已经准备了一个 MIB 文件 (MY-SMI.mib),我已经在 SNMP 代理端使用 pysnmp lib 代码成功加载了该 MIB 文件

mibBuilder = snmpContext.getMibInstrum().getMibBuilder()
compiler.addMibCompiler(mibBuilder,sources = ['/home/mib_file/'])
mibBuilder.addMibSources(builder.DirMibSource('/home/mib_file/'))
mibBuilder.loadModules('MY-SMI') # MY-SMI.mib is the mib file pasted below
mibInstrum = snmpContext.getMibInstrum()

但我无法在 snmp 代理端的 mib 结构内为 hrSWOSIndex(1,3,6,1,1),hrSWOSValue(1,2) 设置任何值.

mibInstrum.writeVars(
      (((1,67),((1,2),22)))

调用 writeVars() 出错

"pysnmp.smi.error.NoAccessError: NoAccessError({'idx': 0,'name': (1,1)})"

下面的 MIB 文件是否有问题或

直接使用 OID 调用 writeVars() 时我做错了什么?

我想在加载此 MIB 文件 (MY-SMI.mib) 后设置 hrSWOSIndex 和 hrSWOSValue 的值,以便我可以从 SNMP 管理器端查询这些值。

下面是我的 MIB 文件

MY-SMI DEFinitioNS ::= BEGIN

IMPORTS
    OBJECT-GROUP           FROM SNMPv2-CONF
    MODULE-IDENTITY,enterprises,Integer32 FROM SNMPv2-SMI;
-- the path to the root

org            OBJECT IDENTIFIER ::= { iso 3 }  --  "iso" = 1
dod            OBJECT IDENTIFIER ::= { org 6 }
internet       OBJECT IDENTIFIER ::= { dod 1 }


nets              OBJECT IDENTIFIER ::= {internet 1}
hr                OBJECT IDENTIFIER ::= {internet 2}
-- textual conventions
hrSWOSIndex object-type
    Syntax     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of the hrSWRunIndex for the hrSWRunEntry
        that represents the primary operating system running
        on this host.  This object is useful for quickly and
        uniquely identifying that primary operating system."
    ::= { nets 1 }
        
hrSWOSValue object-type
    Syntax     Integer32
    MAX-ACCESS read-only
    STATUS     current 
    DESCRIPTION
        "The value of the hrSWRunIndex for the hrSWRunEntry
        that represents the primary operating system running
        on this host.  This object is useful for quickly and
        uniquely identifying that primary operating system."
    ::= { nets 2 }

hrSWRunGroup OBJECT-GROUP
    OBJECTS {
        hrSWOSIndex,hrSWOSValue
    }
    STATUS current
    DESCRIPTION
        "The Host Resources Running Software Group."
    ::= { hr 1 }
    
    
END

我使用的是 pysnmp 版本 4.4.12

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)