我已经与IANA注册了自己的oid。 对于这篇文章,我们将其称为99999。
所以在我的snmpd.conf文件(Ubuntu 14)
我添加了以下行
extend .1.3.6.1.4.1.99999.1 test /bin/echo hello
当我用oid .1.3.6.1.4.1.99999.1得到一个snmpget的时候,期待hello的回复,我找不到。
于是决定从.1.3.6.1.4.19999开始做一个snmpwalk,我得到了以下结果
.1.3.6.1.4.1.99999.1.1.0 = 1 .1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116 = /bin/echo .1.3.6.1.4.1.99999.1.2.1.3.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.2.1.4.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.2.1.5.4.116.101.115.116 = 5 .1.3.6.1.4.1.99999.1.2.1.6.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.2.1.7.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.2.1.20.4.116.101.115.116 = 4 .1.3.6.1.4.1.99999.1.2.1.21.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.3.1.2.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.3.1.3.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.3.1.4.4.116.101.115.116 = 0 .1.3.6.1.4.1.99999.1.4.1.2.4.116.101.115.116 = hello
好吧,这不是我所期待的。 在我的旧的Ubuntu 8服务器上,我会得到一个来自oid .1.3.6.1.4.1.99999.1的回复
所以问题是我的oid之后是什么东西? (.2.1.2.4.116.101.115.116等)
我假设“我的”oid后面的数字有某种意义/逻辑。
这是在snmpget中使用的正确的oid来获取“hello”
任何指针都是有用的。
提前谢谢了。
*在我原来的post后添加评论*
好吧,我已经制定了一些添加到我的oid号码。
查看oid .1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116
最后一部分是ascii 116.101.115.116等于“testing”
那么中间是什么东西?
2.1.2.4 2.1.3.4 2.1.4.4 2.1.5.4 and so on...
我仍然困惑,为什么这一切都被添加到我的OID摆在首位。
在我的旧版Ubuntu 8 SNMP上,我可以简单地在oid号码(.1.3.6.1.4.1.99999.1)上做一个snmpget。我在snmpd.conf exec行中进行了testing,并得到结果'hello'
随着所有这些添加到旧的数字我怎么知道什么oid我需要去snmpget?
同样地,如何创build一个完整的MIB文件来匹配它呢?
哎呀! SNMP过载….
帮帮我!!!
这可能是一个古老的问题,但是那里的文档并不是非常接近,为什么SNMP的行为是这样的,我一直在这个混乱一阵子挣扎,所以这里。
扩展段在您指定的OID处创build新的MIB结构,并从NET-SNMP-EXTEND-MIB附加一些值,然后根据extend指令中指定的名称附加更多值。
在你的例子中,基础的OID是.1.3.6.1.4.1.99999.1
。 SNMPd复制来自NET-SNMP-EXTEND-MIB的MIB结构并将其附加到该OID。 我已经复制下面的基本MIB树,完整的MIB可以在http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-EXTEND-MIB.txt
.1: nsExtendNumEntries .2: nsExtendConfigTable .1: nsExtendConfigEntry .1: nsExtendToken .2: nsExtendCommand .3: nsExtendArgs .4: nsExtendInput .5: nsExtendCacheTime .6: nsExtendExecType .7: nsExtendRunType .20: nsExtendStorage .21: nsExtendStatus .3: nsExtendOutput1Table .1: nsExtendOutput1Entry .1: nsExtendOutput1Line .2: nsExtendOutputFull .3: nsExtendOutNumLines .4: nsExtendResult .4: nsExtendOutput2Table .1: nsExtendOutput2Entry .2: nsExtendOutput2Entry
名称的字符长度被附加,然后名称被转换为ASCII并附加为十进制值。
所以OID响应的细分.1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = hello
如下:
.1.3.6.1.4.1.99999.1 : base OID .3 : nsExtendOutput1Table .1 : nsExtendOutput1Entry .1 : nsExtendOutput1Line .4 : Length of name ("test" in this case) .116 : ASCII t .101 : ASCII e .115 : ASCII s .116 : ASCII t
并且由于这个OID是nsExtendOutput1Line值,它返回命令输出的第一行,值是“hello”。