SNMP 集成插件
编辑SNMP 集成插件
编辑- 插件版本:v4.0.4
- 发布日期:2024-07-08
- 变更日志
其他版本,请参见 版本化插件文档。
获取帮助
编辑如有任何关于插件的问题,请在 Discuss 论坛中发帖。如有错误或功能请求,请在 Github 中提交问题。如需查看 Elastic 支持的插件列表,请查阅 Elastic 支持矩阵。
描述
编辑SNMP 集成插件包括:
新的 logstash-integration-snmp
插件将 logstash-input-snmp
和 logstash-input-snmptrap
插件合并到一个集成插件中,包含了这两个插件的功能。这个集成的插件包提供了更好的 SNMP 处理一致性、更好的资源管理、更轻松的包维护以及更小的安装占用空间。
在本节中,我们将介绍:
从单个插件迁移到 logstash-integration-snmp
编辑您将保留并扩展现有独立插件的功能,但采用更紧凑、集成的包。在本节中,我们将说明映射和行为更改,并解释如何在需要时保留现有行为。
迁移说明:logstash-input-snmp
编辑作为新的 logstash-integration-snmp
插件的一个组件,logstash-input-snmp
插件提供了与独立的 logstash-input-snmp 相同的功能。
根据用例以及通过管道处理摄取数据的方式,您可能需要解决一些行为变化。
映射和错误日志记录的更改:logstash-input-snmp
编辑-
不存在此实例错误 将映射为
error: no such instance currently exists at this OID string
,而不是noSuchInstance
。 -
不存在此对象错误 将映射为
error: no such object currently exists at this OID string
,而不是noSuchObject
。 -
MIB 视图结尾错误 将映射为
error: end of MIB view
,而不是endOfMibView
。 - 一个未知变量类型将回退到
string
表示,而不是像在独立的logstash-input-snmp
中那样记录错误。此更改不应影响现有管道,除非它们具有依赖于特定错误消息的自定义错误处理程序。
迁移说明:logstash-input-snmptrap
编辑作为新的 logstash-integration-snmp
插件的一个组件,logstash-input-snmptrap
插件提供了与独立的 logstash-input-snmp 插件 *几乎相同* 的功能。
根据您的用例以及通过管道处理摄取数据的方式,您可能需要解决一些行为变化。
映射和错误日志记录的更改:logstash-input-snmptrap
编辑- PDU 变量绑定 使用定义的数据类型映射到 Logstash 事件。默认情况下,独立的
logstash-input-snmptrap
插件会将所有数据转换为string
,忽略原始类型。如果这不符合您的预期,您可以使用过滤器来保留原始类型。 -
SNMP
TimeTicks
变量 将映射为Long
时间戳,而不是格式化的日期字符串(%d days, %02d:%02d:%02d.%02d
)。 -
null
变量值 使用字符串null
进行映射,而不是Null
(大写 N)。 -
不存在此实例错误 将映射为
error: no such instance currently exists at this OID string
,而不是noSuchInstance
。 -
不存在此对象错误 将映射为
error: no such object currently exists at this OID string
,而不是noSuchObject
。 -
MIB 视图结尾错误 将映射为
error: end of MIB view
,而不是endOfMibView
。 -
上一代(独立)input-snmptrap 插件将
message
字段 格式化为 ruby-snmpSNMP::SNMPv1_Trap
对象表示。<SNMP::SNMPv1_Trap:0x6f1a7a4 @varbind_list=[#<SNMP::VarBind:0x2d7bcd8f @value="teststring", @name=[1.11.12.13.14.15]>], @timestamp=#<SNMP::TimeTicks:0x1af47e9d @value=55>, @generic_trap=6, @enterprise=[1.2.3.4.5.6], @source_ip="127.0.0.1", @agent_addr=#<SNMP::IpAddress:0x29a4833e @value="test">, @specific_trap=99>
新的集成
input-snmptrap
插件使用 JSON 格式化message
字段。{"error_index":0, "variable_bindings":{"1.3.6.1.6.3.1.1.4.1.0":"SNMPv2-MIB::coldStart", "1.3.6.1.2.1.1.3.0":0}, "error_status":0, "type":"TRAP", "error_status_text":"Success", "community":"public", "version":"2c", "request_id":1436216872}
保持与先前实现的最大兼容性
编辑如果需要,您可以配置新的 logstash-integration-snmp
插件以保持与先前(独立)版本的 input-snmp 插件的最大兼容性。
input { snmptrap { use_provided_mibs => false oid_mapping_format => 'ruby_snmp' oid_map_field_values => true } }
导入 MIB
编辑SNMP 插件已包含 IETF MIB(管理信息库),无需导入。要禁用捆绑的 MIB,请将 use_provided_mibs
选项设置为 false
。
任何其他 MIB 都需要手动导入,以便在生成的事件中将数字 OID 映射到 MIB 字段名。
要导入 MIB,需要 OSS libsmi 库。libsmi 可在大多数操作系统上使用和安装。
要导入 MIB,您首先需要使用 libsmi smidump
命令行实用程序将 ASN.1 MIB 文件转换为 .dic
文件。
示例(使用 RFC1213-MIB
文件)
$ smidump --level=1 -k -f python RFC1213-MIB > RFC1213-MIB.dic
请注意,smidump
输出的结果文件必须具有 .dic
扩展名。
防止出现 failed to locate MIB module
错误
编辑smidump
函数在其预配置的路径列表中查找 MIB 依赖项。为避免出现 failed to locate MIB module
错误,您可能需要在您的特定环境中提供 MIB 位置。
提供附加路径配置的推荐方法是:
- 环境变量,或
- 配置文件以提供附加路径配置。
有关详细信息,请参见 smi_config 文档 的“模块位置”部分。
选项 1:使用环境变量
编辑使用 MIB 的路径设置 SMIPATH
环境变量。请务必在路径前添加冒号(:
)。
选项 2:提供配置文件
编辑另一种方法是使用 path
选项创建一个配置文件。例如,您可以创建一个名为 smi.conf
的文件
path :/path/to/mibs/
并使用该配置与 smidump
$ smidump -c smi.conf -k -f python CISCO-PROCESS-MIB.mib > CISCO-PROCESS-MIB_my.dic