0

有一组 snmp 陷阱 OID,来自不同的供应商设备,如 Cisco/Juniper/Arista 等...

例如:1.3.6.1.4.1.6101.1.8.8.2.1

我们想知道每个 OID 的陷阱名称。有超过 300 个 OID。


以编程方式,我们使用 python 将所有陷阱 OID 存储在集合中。

检索陷阱名称的最佳方法是什么?是否有任何公共存储库提供陷阱 OID 到陷阱名称的映射?

4

2 回答 2

1

您可以在所有 MIB 上运行mibbuild.py --destination-format json工具。您将为每个 MIB 文件获得一个 JSON 文档。JSON 文档将如下所示

"coldStart": {
  "name": "coldStart", 
  "oid": "1.3.6.1.6.3.1.1.5.1", 
  "class": "notificationtype", 
  "status": "current"
}, 

从这里您可以将 JSON 加载到 Python 中,创建一个新的dict类似{json[key]['oid']: key for key in json}对象,您可以使用它来按 OID 查找 TRAP 名称。

如果您的 MIB 集合正在更改并且需要不断更新,您可以通过调用pysmi函数将上述过程构建到您的应用程序中。

编辑:

如果您需要将任何 TRAP OID 解析为其 MIB 名称,您可以在 Internet 上获取尽可能多的 MIB,并在它们上运行上述过程。但是,您仍然可能无法解析在野外遇到的所有 TRAP OID。更典型的做法是为您的软件管理的所有设备配备 MIB。

mibdump工具的默认设置是从http://mibs.snmplabs.com/asn1/站点提取请求的 MIB。

于 2018-08-02T06:20:02.557 回答
0

1.3.6.1.4.1.6101.1.8.8.2.1==>

1.3.6.1.4.1。== ...私营企业(值得记住)

6101 == Trend Micro Inc. 的 private.enterprise 编号,这些编号保存在https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers

1.8.8.2.1 == 将需要获取 MIB,最好直接从 Trend Micro, Inc. 获取。

--显然,您需要加载所有需要解码的 MIB 才能使 python 工作。MIB 也可以引用其他 MIB,因此会变得混乱。我一直只是手动完成,所以我不能谈论任何工具来做到这一点。但我不需要对 SNMP 做太多事情。你的情况可能会有所不同。

于 2021-08-06T00:04:14.070 回答