我将自己的 MIB 模块添加到 net-snmp。
我将我的 Mib txt 文件放在“/usr/local/share/snmp/mibs”下
我发现如果我更改 net-snmp 文件,更改就会反映出来,因此这些 mib 已正确加载。似乎它没有从那里加载我的 MIB 文件。
当我在我的 Mib 上运行 snmptranslate 时,如下所示:
snmptranslate .1.3.6.1.4.1.8077
我得到:
SNMPv2-SMI::enterprises.8077
我的 MIB 定义:
TEST-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, enterprises FROM SNMPv2-SMI;
testMib MODULE-IDENTITY
DESCRIPTION
"First draft"
::= { enterprises 8077}
testMibObject OBJECT IDENTIFIER ::= {testMib 1}
END
答案1
要查找 snmp.conf 的位置,您可以使用:
snmpd -Dread_config -H 2>&1 | grep “配置路径” | sort –u
然后告诉工具加载这个 MIB
(例子)::
snmpwalk -m +MY-MIB .....
(load it for this command only)
or
export MIBS=+MY-MIB
(load it for this session only)
or
echo "mibs +MY-MIB" >> $HOME/.snmp/snmp.conf
(load it every time)
答案2
您可以在这里找到所有情况的参考: 使用和加载 MIBS
我将您的 MIB 保存到文件 TEST-MIB 中,将其放在 /usr/share/snmp/mibs 下,并且snmptranslate
能够找到该testMib
对象,尽管您的 MIB 缺少一些字段以正确符合标准:
$ snmptranslate .1.3.6.1.4.1.8077
No log handling enabled - using stderr logging
Expected LAST-UPDATED (DESCRIPTION): At line 6 in /usr/share/snmp/mibs/TEST-MIB
TEST-MIB::testMib
为了使您的 MIB 符合要求,您可以使用该工具转储,它将告诉您 MIB 缺少的所有内容,以便正确遵守:
$ smidump /usr/share/snmp/mibs/TEST-MIB
/usr/share/snmp/mibs/TEST-MIB:6: syntax error, unexpected DESCRIPTION, expecting LAST_UPDATED
/usr/share/snmp/mibs/TEST-MIB:13: missing MODULE-IDENTITY clause in SMIv2 MIB
/usr/share/snmp/mibs/TEST-MIB:10: unknown object identifier label `testMib'
smidump: module `/usr/share/snmp/mibs/TEST-MIB' contains errors, expect flawed output
smidump: aborting due to severe parsing errors
smidump: use the -k option to force continuation