【发布时间】:2018-04-17 04:26:54
【问题描述】:
我想获取给定 MIB 的顶部“OID”。即;
CISCO-SMI = 1.3.6.1.4.1.9
CISCO-PROCESS-MIB = 1.3.6.1.4.1.9.9.109
我可以通过谷歌搜索轻松获取此信息,但我需要从系统中获取此信息,最好使用本机 SNMP 命令。我不能走路的设备。我可以做一个 snmptranslate,它将为我提供该 MIB 的所有 OID,但我只想要标识 MIB 的 OID;
snmptranslate -Tso -m /usr/share/snmp/mibs/CISCO-PROCESS-MIB.txt
.1.3 .iso.org
...
.1.3.6.1.4.1.9 .iso.org.dod.internet.private.enterprises.cisco
...
.1.3.6.1.4.1.9.9.109 .iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoProcessMIB
所以我需要能够说 CISCO-PROCESS-MIB = .1.3.6.1.4.1.9.9.109
我已经做了很多 google-fu,但没有想出任何能给我上述信息的东西。是否可以不用外接mib浏览工具?
【问题讨论】:
-
MIB 文档可以没有这样的“顶级”OID 并且仍然有效(阅读 SMI 规范),因此依赖它通常是个坏主意。你为什么要这么做?
-
我想编写一个脚本来确定与 MIB 相关的 OID。更好的方法可能是解释可由给定 MIB 翻译的“最高级别”OID。
-
MIB 编译器/解析器很容易分辨出哪个 OID 属于哪个 MIB 文档,因此您的“破解”毫无意义。只有某些 MIB 文档遵循您喜欢的约定,以便您可能找到“顶级”OID,而其他 MIB 文档不遵循该约定,它们可以定义任何他们喜欢的 OID 模式。如果您不喜欢“外部 MIB 浏览工具”,那么您的脚本必须做完全相同的工作,我想知道您是否比任何供应商更有能力(免责声明:我是供应商之一)。跨度>