我想从管理器拥有的 MIB 文件中读取所有对象。
我开发了一种工具来从支持 SNMP 的代理获取一些数据。我想通过显示经理的 MIB 文件中的所有 OID 来增强该工具。
我正在使用 NET-SNMP 库。
我看到了以下内容:
/usr/local/share/snmp/mibs/
文件夹中包含许多 MIB 文件,但是我如何形成它所具有的 OID 列表?
我浏览了 MIB 并看到了结构,但是如何获取 MIB 文件中提到的每个对象的 OID?
我想列出所有OID,如下所示:
SNMPv2-MIB::sysDescr.0 = .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysObjectID.0 = .1.3.6.1.2.1.1.2.0
...等等我想扫描所有 MIB 文件并从文件中找到所有 OID。
我该怎么做?
使用
snmptranslate
库中的 net-snmp
命令。尝试使用以下参数:
-M "directory containing your MIB file"
-m ALL
-Pu
-Tso
遇到一些问题后,我设法使用以下命令生成 OID。
snmptranslate -Pu -Tz -M ~/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp:`pwd` -m module_name_NOT_file_name > module_name.oid
要从正在运行的
OID
服务器中提取 SNMP
,您可能需要使用工具 snmpwalk
使用 -Ci
选项。该工具附带 Net-SNMP
。
另外两个 SO QA 展示了如何在不运行正在运行的系统的情况下做到这一点:
“net-snmp 示例代码解析 MIB 文件并从中提取陷阱相关信息”:答案显示了基于 Net-SNMP 库顶部的 C 解析器的顶层框架。
更新:另一个不错的工具是封装在 SNMP::MIB::Compiler 中的 perl SNMP 编译器。使用 Perl 中的脚本,您可以将所有 MIB 元素/组件提取到内部数据结构中,并且可以通过查看结构树或转储树并对转储进行后解析来从中选取任何信息。
评论 puis-je avoir cela?