我是 snmp 初学者,已经创建了一个自定义 MIB,并通过 pass persist 将其包含在 snmpd.conf 中。
pass_persist .1.3.6.1.4.1.56947.1.1 /usr/bin/env python3 -u my_script.py
虽然我可以成功查询数据,但返回的数据是 OID 和 OID 的文本表示的混合。
就像是
SNMPv2-SMI::enterprises.56947.1.1.1
例如,如果我查询 UCD MIB (.1.3.6.1.4.1.2021),我会得到完整的文本表示,例如UCD-SNMP-MIB::memIndex.0
对应于.1.3.6.1.4.1.2021.4.1
据我所知,UCD Mibs 已合并到 net-snmp 本身,并且可能与我自己的 MIB 工作方式不同。
我的 MIB(为简洁起见省略了一些部分)
MY-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, enterprises, Integer32
FROM SNMPv2-SMI
myMIB MODULE-IDENTITY
-- identify stuff
::= { enterprises 56947 }
product1 OBJECT IDENTIFIER ::= { myMIB 1 }
product1Data OBJECT IDENTIFIER ::= { product1 1 }
objectCount OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "test"
::= { product1Data 1 }
END
但这是设计使然还是我遗漏了什么?
我的期望/愿望是收到类似MY-MIB::objectCount
答案1
我混淆了代理和管理器,并认为这些工具喜欢snmpwalk
并snmptranslate
使用配置/etc/snmp/snmpd.conf
(注意d在最后),但他们使用/etc/snmp/snmp.conf
。我 在管理器机器上
添加了线路,它工作了。
mibs +MY-MIB
/etc/snmp/snmp.conf
同时将您的 mib 文件添加到您的管理器/客户端(我将我的添加到/usr/share/snmp/mibs
)