net-snmp snptranslate 不适用于我的 MIB(snmpget 可以工作)

net-snmp snptranslate 不适用于我的 MIB(snmpget 可以工作)

我将自己的 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

相关内容