将pysnmp用于Juniper OID(带八位字节)

时间:2018-02-22 01:01:08

标签: pysnmp

Juniper knowledge base表示你可以点击jnxOperatingCPU.x.x.x.x来获取设备的内存使用量,x.x.x.x是“最后4个八位字节”,在我的情况下是“9.1”。 0.0" 。

我似乎无法使用pysnmp的getCmd()方法获得这样的结果。我有JUNIPER-MIB,但脚本返回:

  

没有符号JUNIPER-MIB :: jnxOperatingCPU.9.1.0.0 at< pysnmp.smi.builder.MibBuilder对象位于0x198b810>

我有另一个可以到达此OID的SNMP监控工具,所以我知道它在此设备上有效。我也可以使用完整的数字OID来获取值,但我宁愿拥有漂亮的名字。

可能有人在pysnmp.hlapi中使用这样的OID吗?

1 个答案:

答案 0 :(得分:1)

从错误消息中看起来您错误地使用了ObjectIdentity类(虽然粘贴代码片段会有所帮助)。

根据JUNIPER-MIBjnxOperatingCPU对象属于具有以下索引的jnxOperatingTable表:

jnxOperatingEntry OBJECT-TYPE
    SYNTAX      JnxOperatingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of operating status table."
    INDEX   { jnxOperatingContentsIndex,
              jnxOperatingL1Index,
              jnxOperatingL2Index,
              jnxOperatingL3Index }
    ::= { jnxOperatingTable 1 }

所有四个索引都是Integer32类型。

因此请尝试:

ObjectIdentity('JUNIPER-MIB', 'jnxOperatingCPU', 9, 1, 0, 0)

以下是ObjectIdentity类的documentation