简简单单3步搞定MIB到pysnmp兼容的python模块。Splunk SNMP Module Input的官方文档中,所使用的Mib文本文件转换为pysnmp支持的python脚本的方式相当麻烦且容易出错。虽然在ubuntu中可以直接使用apt install 的方式安装 build-pysnmp-mib的方式安装build-pysnmp-mib工具,但是在使用过程中也会报很多莫名其妙的错误。之所以繁琐,究其原因是build-pysnmp-mib在pysnmp4.2.5之后的版本中就不再维护了。

本文中使用了一种全新python工具pysmi来将mib转换为pysnmp支持的python脚本。

Pysmi简介

PySMI是一个纯Python实现的SNMP SMI MIB解析器。 该工具可以将ASN.1 MIB转换为各种格式。 截至目前,可以从ASN.1 MIB转换成JSON和pysnmp模块。

环境准备

1.准备好一个可以连接互联网的ubuntu虚拟机,本文中使用的是ubuntu 16.04 桌面版(强烈建议使用ubuntu)

2.安装python-pysnmp4

sudo apt install python-pysnmp4

3.下载pysmi,选择一个目录并解压

https://github.com/etingof/pysmi/tree/v0.2.2

此处下载的是pysmi 0.2.2版本,随着版本的更新,可以选择更新的版本。

至此相关的准备工作完成!

转换

1.执行转换

在命令行终端中执行如下命令:

python mibdump.py --generate-mib-texts --destination-directory /home/test/ --destination-format pysnmp /home/test/resources/SESSION-MIB

注释:    midbump.py是执行转换的命令脚本,在pysmi-0.2.2/scripts/目录下

    --generate-mib-texts 生成文本型的文件

    --destion-directory /home/test/pysnmp_des 指定生成的py文件的目标目录,此处是/home/test/pysnmp_dest

    --destination-format pysnmp 指定目标的文件类型,可以是pysnmp(pysnmp兼容的py模块)或者json

    /home/test/resources/SESSION-MIB 待转换的mib文件

在本例中生成的结果如下:

Splunk SNMP Module Input的使用方式改进

2.使用转换后的py模块

将生成的.py文件复制到$SPLUNK_HOME/etc/apps/snmp_ta/bin/mibs目录下即可使用了。

Splunk SNMP Module Input的使用方式改进

总结

    至此一个pysnmp可以使用的模块生成完毕,且不用受pysnmp4.2.5版本的限制。

    剩下的操作就是在Heavy Forwarder上配置snmp采集和相关的sourcetype。

待续!

相关文章:

  • 2021-10-21
  • 2021-12-25
  • 2022-12-23
  • 2021-05-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-11
  • 2021-06-26
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
相关资源
相似解决方案