SNMP代理的开发包有很多,本人选择了net-snmp-5.4.1,开发过程中所遇到的文档及帮助文件多是unix或linux平台的,因此步步维艰,遇到了不少问题。本人扩展代理的方法是将自定义的mib文件编译到snmpd代理中,编译mib文件的工具是mib2c。以下所列的问题及解决方法有些是共性的,有些是特定条件下产生的,仅供参考。
1) 通过vc运行代理后,DOS窗口一闪就关闭,通过命令行窗口运行,提示信息:
Error opening specified endpoint ""
Server Exiting with code 1
解决:windows系统的snmp服务需要关闭,因为UDP端口已经被占用。代理默认的端口都是162,也可以通过配置进行修改。
2) 启动snmpd代理如下C:/usr/bin>snmpd -f -Le –d,出现以下内容:
netsnmp_assert x failed C:/net-snmp-5.4.1/net-snmp-5.4.1/agent/agent_registry.c: 535
netsnmp_assert x failed C:/net-snmp-5.4.1/net-snmp-5.4.1/agent/agent_registry.c: 535
netsnmp_assert x failed C:/net-snmp-5.4.1/net-snmp-5.4.1/agent/agent_registry.c: 535
NET-SNMP version 5.4.1
但不影响使用。
解决:这是开发包中的一个bug,agent_registry.c中第535行代码存在问题,官方补丁代码方法:
a) 将/agent/agent_registry.c文件中从第535行
netsnmp_assert(!"registration != duplicate"); /* always false */
修改为:
if (new_sub->namelen != 1) /* ignore root OID dups */
&

本文详细记录了在Windows系统下使用net-snmp-5.4.1扩展SNMP代理时遇到的各种问题,包括端口冲突、代码bug、编译错误、mib2c工具使用误区以及SNMP查询工具的错误响应等,并提供了相应的解决方案。通过解决这些问题,成功实现了SNMP代理的自定义扩展。
最低0.47元/天 解锁文章
2505

被折叠的 条评论
为什么被折叠?



