snmpget错误:“此OID上的此代理上没有此类对象”

我想创build我自己的MIB。 我几个星期以来一直在努力。 我遵循本教程,并使用net-snmp 5.7.3 。 我正在做的是:

我的设置:我有两个虚拟机,都是Ubuntu 16 ,一个是IP:192.168.5.20的snmp-server ,另一个是IP:192.168.5.21的snmp-agent 。 我写了一个MIB,编译好没有任何错误( 这个编译只在代理系统,而不是在服务器上 )。 我已经这样做了:

 root@snmp-agent:# MIBS=+MAJOR-MIB root@snmp-agent:# MIBS=+DEPENDENT-MIB root@snmp-agent:# export MIBS root@snmp-agent:# MIBS=ALL 

我的MIB文件在这个path中: /usr/share/snmp/mibs这是默认的searchpath。 我已经编译了它,并使用以下命令成功生成了.c和.h文件: mib2c -c mib2c.int_watch.conf objectName 。 而不是像这样configurationsnmp:

 root@snmp-agent:# ./configure --with-mib-modules="objectName" root@snmp-agent:# make root@snmp-agent:# make install 

一切正常。 在此之后,当我(代理) snmptranslate我得到的输出为:

 root@snmp-agent:snmptranslate -IR objectName.0 MAJOR-MIB::objectName.0 

并使用命令snmptranslate -On objectName.0我得到的输出为:

 root@snmp-agent:# snmptranslate -On MAJOR-MIB::objectName.0 .1.3.6.1.4.1.4331.2.1.0 

所以,我在代理系统上得到预期的输出。 现在我的问题是我不知道如何从我的服务器获得相同的值!

当我运行snmpget ,从服务器,我得到这个错误:

 root@snmp-server:# snmpget -v2c -c public 192.168.5.21 MAJOR-MIB::objectName.0 MAJOR-MIB::objectName.0 = No Such Instance currently exists at this OID 

指定OID时输出:

 root@snmp-server:# snmpget -v2c -c public 192.168.5.21 .1.3.6.1.4.1.4331.2.1 SNMPv2-SMI::enterprises.4331.2.1 = No Such Instance currently exists at this OID 

输出时,我这样做:

 root@snmp-server:# snmpget -v2c -c public 192.168.5.21 sysDescr.0 SNMPv2-MIB::sysDescr.0 = STRING: Linux snmp-agent 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 root@snmp-server:# snmpwalk -v2c -c public 192.168.5.21 .1.3.6.1.4.1.4331.2.1 SNMPv2-SMI::enterprises.4331.2.1 = No more variables left in this MIB View (It is past the end of the MIB tree) 

我搜查了它,仍然search,但没有运气。 我该怎么办? 我应该如何使用我的服务器上的snmpget在我自己的MIB? 我的意思是像我从我的服务器sysDescr.0做。

我想这样做: snmpget 192.168.5.21 myObjectName.0并获取值。

编辑:我已经看到了这些答案,但没有奏效。 snmp扩展不工作 , snmp没有这样的对象…

更新2:

当我在服务器上进行snmpwalk时:

 snmp-server:# snmpwalk -v 2c -c ncs -m DISMAN-PING-MIB 192.168.5.21 .1.3.6.1.2.1.80 DISMAN-PING-MIB::pingObjects.0 = INTEGER: 1 DISMAN-PING-MIB::pingFullCompliance.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = STRING: "/bin/echo" DISMAN-PING-MIB::pingMinimumCompliance.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = "" DISMAN-PING-MIB::pingCompliances.4.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = "" DISMAN-PING-MIB::pingCompliances.5.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = INTEGER: 5 DISMAN-PING-MIB::pingCompliances.6.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = INTEGER: 1 DISMAN-PING-MIB::pingCompliances.7.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = INTEGER: 1 DISMAN-PING-MIB::pingCompliances.20.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = INTEGER: 4 DISMAN-PING-MIB::pingCompliances.21.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = INTEGER: 1 DISMAN-PING-MIB::pingIcmpEcho.1.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = "" DISMAN-PING-MIB::pingIcmpEcho.2.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = "" DISMAN-PING-MIB::pingIcmpEcho.3.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = INTEGER: 1 DISMAN-PING-MIB::pingIcmpEcho.4.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = INTEGER: 0 DISMAN-PING-MIB::pingMIB.4.1.2.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48.1 = "" 

当我使用pingFullCompliance.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48进行snmpget时:

 root@snmp-server:# snmpget 192.168.5.21 DISMAN-PING-MIB::pingFullCompliance.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 DISMAN-PING-MIB::pingFullCompliance.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 = Wrong Type (should be INTEGER): STRING: "/bin/echo" 

那么我哪里错了? 什么是pingFullCompliance.15.46.49.46.51.46.54.46.49.46.50.46.49.46.56.48 ? 为什么这么长的OID?

我哪里错了? 任何人都可以指向正确的方向吗? 任何build议,非常感谢。