我正在关注instructions on the net-snmp website以向主代理添加我自己的MIB支持。
这是我做的:
我完全按照教程所说,我可以在snmpget
示例上运行snmpset
和NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject
。
请帮助我理解我在这里错过的内容。
答案 0 :(得分:7)
“此OID上此代理上没有此类对象”表示,就netsnmpd而言,其树中没有相应的OID。
不要对snmptranslate
的成功感到困惑。 Snmptranslate仅在MIB文件本身上运行,根本不需要访问snmp服务器。因此,snmptranslate正确显示您的MIB详细信息这一事实只表明您的mib已正确复制到$MIBDIRS
或.snmp/snmp.conf
文件中列出的目录(等)。
假设您正在学习本教程,那么您实现的mib提供了一个标量变量。标量变量的索引(即后缀)为.0
。尝试运行以下任一命令:
snmpget -v2c -c public MY-MIB-FILE::myVariable.0
或者:
snmpwalk -v2c -c public MY-MIB-FILE::myVariable
后者将为您提供该OID下所有MIB叶的列表,其中(在您的情况下)将包含.0
节点。
如果失败,则值得确保您的代码正在编译并正在正确执行。
首先,请检查./configure
步骤末尾的详细信息,以确保摘要中包含您的mib。例如。 (来自./configure --with-mib-modules =“nstAgentModuleObject”的结果):
---------------------------------------------------------
Net-SNMP configuration summary:
---------------------------------------------------------
SNMP Versions Supported: 1 2c 3
Net-SNMP Version: 5.4.1
Building for: linux
snip
Agent MIB code: nstAgentModuleObject default_modules => snmpv3mibs mibII ucd_snmp notification notification-log-mib target agent_mibs agentx disman/event disman/schedule utilities host
snip
---------------------------------------------------------
对于前者,您可以在 snmpd可执行文件 nm
文件上运行agent/.libs/libnetsnmpmibs.so
,并确保存在与您的MIB对应的init_X()
函数。同样值得确保init_nstAgentModuleObject()
函数存在。如果您在测试之前运行make install
,则值得确保(使用ldd
)正在使用的libnetsnmpmibs.so库是您刚刚构建的库,而您不是有路径问题。
您可以在DEBUGMSGTL()
功能中添加init_X()
次呼叫,以使用内置的调试消息系统。要查看调试消息,请在snmpd命令行中添加-DALL
选项。
答案 1 :(得分:2)
当代理根本不支持所请求的MIB对象或未指定索引或实例变量时,会出现消息No Such Object available on this agent at this OID
。
从您链接到的教程中,您是否添加了相关配置 社区字符串公开?
E.g
按详细here运行snmpconf。
另请参阅初学者和调试技巧部分here中提到的配置更改。
您似乎也没有为您的变量指定索引或实例,它应该像
snmpget -v2c -c public MY-MIB-FILE::myVariable.0
。
您可能还想尝试显式指定主代理运行的主机和端口,以防它不在snmpd.conf
中。
答案 2 :(得分:2)
尝试从构建目录启动代理。 NET-SNMP-X.X.X /剂。
./snmpd -f -L -d -c /usr/local/etc/snmpd.conf
并停止所有其他SNMP代理。
在我的情况下如果我跑
snmpd -f -Le -d -c snmpd.conf &
此命令启动预先安装的snmp守护程序。
答案 3 :(得分:1)
ldd
值得一试,在我的情况下,snmpd
与标准的Ubuntu libnetsnmpmibs.so
动态链接,但我没有获得自定义的MIB支持,但也遵循相同的教程。
修复动态链接的东西,一切顺利!
答案 4 :(得分:-1)
snmpd.conf
view systemonly included .1.3.6.1.4.1.8072.2.4.1.1.1