将 pysnmp 用于 Juniper OID(带八位字节)
Using pysnmp for Juniper OIDs (with octets)
Juniper knowledge base 说你可以点击 jnxOperatingCPU.x.x.x.x
来获取设备的内存使用情况,x.x.x.x
是 "the last 4 octets",在我的例子中是“9.1 .0.0".
我似乎无法使用 pysnmp 的 getCmd() 方法获得这样的结果。我有 JUNIPER-MIB,但是脚本 returns:
No symbol JUNIPER-MIB::jnxOperatingCPU.9.1.0.0 at < pysnmp.smi.builder.MibBuilder object at 0x198b810>
我有另一个可以访问此 OID 的 SNMP 监视工具,因此我知道它在此设备上有效。我也可以使用完整的数字 OID 来获取值,但我更愿意使用漂亮的名称。
有人可以举例说明如何将这样的 OID 与 pysnmp.hlapi 一起使用吗?
从错误消息来看,您似乎错误地使用了 ObjectIdentity
class(尽管粘贴代码片段会有所帮助)。
根据 JUNIPER-MIB,jnxOperatingCPU
对象属于具有这些索引的 jnxOperatingTable
table:
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
class 上的 documentation。
Juniper knowledge base 说你可以点击 jnxOperatingCPU.x.x.x.x
来获取设备的内存使用情况,x.x.x.x
是 "the last 4 octets",在我的例子中是“9.1 .0.0".
我似乎无法使用 pysnmp 的 getCmd() 方法获得这样的结果。我有 JUNIPER-MIB,但是脚本 returns:
No symbol JUNIPER-MIB::jnxOperatingCPU.9.1.0.0 at < pysnmp.smi.builder.MibBuilder object at 0x198b810>
我有另一个可以访问此 OID 的 SNMP 监视工具,因此我知道它在此设备上有效。我也可以使用完整的数字 OID 来获取值,但我更愿意使用漂亮的名称。
有人可以举例说明如何将这样的 OID 与 pysnmp.hlapi 一起使用吗?
从错误消息来看,您似乎错误地使用了 ObjectIdentity
class(尽管粘贴代码片段会有所帮助)。
根据 JUNIPER-MIB,jnxOperatingCPU
对象属于具有这些索引的 jnxOperatingTable
table:
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
class 上的 documentation。