SNMP 陷阱输入插件

编辑

对于其他版本,请参阅 版本化插件文档

获取帮助

编辑

有关插件的问题,请在 Discuss 论坛中发起主题。对于错误或功能请求,请在 Github 中提交问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵

描述

编辑

logstash-input-snmptrap 插件将 SNMP 陷阱消息读取为事件。

生成的 message 字段类似于

{"agent_addr":"192.168.1.40", "generic_trap":6, "specific_trap":15511, "enterprise":"1.3.6.1.2.1.1.1", "variable_bindings":{"1.3.6.1.2.1.1.2.0":"test one", "1.3.6.1.2.1.1.1.0":"test two"}, "type":"V1TRAP", "community":"public", "version":1, "timestamp":1500}

事件元数据和 Elastic 通用模式 (ECS)

编辑

由于 SNMP 数据基于 OID 具有特定的字段名称,因此我们建议设置 target。源主机字段根据 ecs_compatibility 更改。

ECS 已禁用

ECS v1、v8

可用性

描述

[host]

[host][ip]

始终

主机的 IP 地址,例如“192.168.1.11”

此插件还会将陷阱 PDU 元数据添加到每个事件中。该值存储在 @metadata 中,管道中的其他插件可以使用它。

ECS 已禁用、v1、v8

可用性

描述

[@metadata][input][snmptrap][pdu][agent_addr]

SNMPv1

生成陷阱的对象的网络地址

[@metadata][input][snmptrap][pdu][community]

SNMPv1 SNMPv2c

SNMP 社区

[@metadata][input][snmptrap][pdu][enterprise]

SNMPv1

生成陷阱的对象类型

[@metadata][input][snmptrap][pdu][error_index]

SNMPv2c SNMPv3

通过识别列表中导致错误的哪个变量绑定来提供其他信息

[@metadata][input][snmptrap][pdu][error_status]

SNMPv2c SNMPv3

错误状态代码

[@metadata][input][snmptrap][pdu][error_status_text]

SNMPv2c SNMPv3

错误状态代码描述

[@metadata][input][snmptrap][pdu][generic_trap]

SNMPv1

通用陷阱类型

[@metadata][input][snmptrap][pdu][request_id]

SNMPv2c SNMPv3

请求 ID

[@metadata][input][snmptrap][pdu][specific_trap]

SNMPv1

特定代码,即使通用陷阱不是特定于企业的,也会显示

[@metadata][input][snmptrap][pdu][timestamp]

SNMPv1

网络实体上次(重新)初始化与生成陷阱之间经过的时间

[@metadata][input][snmptrap][pdu][type]

始终

PDU 类型

[@metadata][input][snmptrap][pdu][variable_bindings]

始终

SNMP 变量绑定值

[@metadata][input][snmptrap][pdu][version]

始终

SNMP 版本

导入 MIB

编辑

此插件已包含 IETF MIB(管理信息库),您无需导入它们。如果您需要其他 MIB,则需要导入它们。查看 导入 MIB 以获取信息。

SNMP 陷阱输入配置选项

编辑

此插件支持以下配置选项以及稍后描述的 常见选项

SNMPv3 身份验证选项

编辑

此插件支持以下 SNMPv3 身份验证选项。

设置 输入类型 必需

auth_pass

密码

auth_protocol

字符串["md5", "sha", "sha2", "hmac128sha224", "hmac192sha256", "hmac256sha384", "hmac384sha512"] 中的一个

priv_pass

密码

priv_protocol

字符串["des", "3des", "aes", "aes128", "aes192", "aes256"] 中的一个

security_level

字符串["noAuthNoPriv", "authNoPriv", "authPriv"] 中的一个

security_name

字符串

SNMP 陷阱输入配置选项

编辑

另请参阅 常见选项,了解所有输入插件支持的选项列表。

community

编辑
  • 值类型为 数组
  • 默认值为 ["public"]

要侦听的 SNMPv1 和 SNMPv2c 社区。要允许任何社区,请将此配置值设置为空的 community => []

示例

侦听 publicguest 社区

input {
  snmptrap {
    community => ["public", "guest"]
  }
}

侦听所有社区

input {
  snmptrap {
    community => []
  }
}

ecs_compatibility

编辑
  • 值类型为 字符串
  • 支持的值为

    • disabled:不使用兼容 ECS 的字段名称(字段可能设置在事件的根目录)
    • v1v8:避免可能与 Elastic 通用模式 (ECS) 冲突的字段名称(例如,host 字段)
  • 默认值取决于正在运行的 Logstash 版本

    • 当 Logstash 提供 pipeline.ecs_compatibility 设置时,其值将用作默认值
    • 否则,默认值为 disabled

控制此插件与 Elastic 通用模式 (ECS) 的兼容性。

host

编辑
  • 值类型为 字符串
  • 默认值为 "0.0.0.0"

要侦听的地址。

mib_paths

编辑
  • 值类型为 路径
  • 此设置没有默认值

mib_paths 选项指定一个或多个导入的 MIB 文件的位置。该值可以是包含导入的 MIB(.dic.yaml)文件的目录路径,也可以是单个 MIB 文件的文件路径。

oid_mapping_format

编辑
  • 值可以是以下任何一个:defaultruby_snmpdotted_string
  • 默认值为 "default"

定义 Logstash 事件中 OID 的映射文本表示形式:* default 使用 MIB 解析的名称翻译每个标识符,并用点分隔。例如:1.3.6.1.2.1.1.2.0 映射为 iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0 * ruby_snmp 生成以 MIB 模块名称为前缀的字段名称,后跟最新解析的标识符名称和未知值。例如:1.3.6.1.2.1.1.2.0 映射为 SNMPv2-MIB::sysObjectID.0。* dotted_string 使用标准点分隔字符串表示形式映射字段,例如:1.3.6.1.2.1.1.2.0 映射为 1.3.6.1.2.1.1.2.0

oid_map_field_values

编辑

定义 Logstash 事件字段值(类型为 OID)是否使用 oid_mapping_format 选项上配置的 OID 文本表示形式进行映射。

oid_root_skip

编辑
  • 值类型为 数字
  • 默认值为 0

oid_root_skip 选项指定要忽略事件字段名称中 OID 根数字的数量。例如,在像“1.3.6.1.2.1.1.1.0”这样的数字 OID 中,可以通过设置 oid_root_skip => 5 来忽略前 5 位数字,这将导致字段名称为“1.1.1.0”。类似地,当使用 MIB 时,OID“1.3.6.1.2.mib-2.system.sysDescr.0”将变为“mib-2.system.sysDescr.0”

oid_path_length

编辑
  • 值类型为 数字
  • 默认值为 0

选项 oid_path_length 指定在事件字段名称中保留的 OID 根数字的数量。例如,在像 "1.3.6.1.2.1.1.1.0" 这样的数字 OID 中,可以通过设置 oid_path_length => 2 来保留最后两位数字,这将导致字段名称为 "1.0"。类似地,当使用 MIB 时,像 "1.3.6.1.2.mib-2.system.sysDescr.0" 这样的 OID 将变为 "sysDescr.0"

port

编辑
  • 值类型为 数字
  • 默认值为 1062

要监听的端口。请记住,小于 1024 的端口(特权端口)可能需要 root 权限才能使用。因此默认值为 1062。

supported_transports

编辑
  • 值类型为 字符串
  • 允许的值为:tcpudp
  • 默认值为 ["udp"]

要监听的支持的传输协议。

SNMP 最初设计为使用 UDP 作为传输协议,并且是官方推荐。TCP 是一种可选的传输映射,如果需要可以启用。有关通过 TCP 使用 SNMP 的更多详细信息,请参阅 RFC-3430

supported_versions

编辑
  • 值类型为 字符串
  • 允许的值为:12c3
  • 默认值为 ["1", "2c"]

要监听的支持的 SNMP 协议版本。不支持和/或禁用的版本的 SNMP 消息将自动丢弃。

target

编辑
  • 值类型为 字符串
  • 此设置没有默认值

分配 SNMP 负载的字段名称。如果未指定,数据将存储在事件的根目录中。

当启用 ecs_compatibility 时,建议设置目标。

threads

编辑
  • 值类型为 数字
  • 默认值为 CPU 核心数的 75%

用于处理接收到的 SNMP 陷阱消息的线程数。

use_provided_mibs

编辑

此插件提供所有 IETF MIB(管理信息库),可在 libsmi 版本 0.5.0 中公开获取。启用后,它会自动加载捆绑的 MIB,并在生成的事件中提供数字 OID 到 MIB 字段名称的映射。

yamlmibdir

编辑

在 4.0.0 中已弃用。

替换为 mib_paths

  • 值类型为 字符串
  • 此设置没有默认值。

YAML MIB 映射的目录(与 ruby-snmp 使用的格式相同)

SNMPv3 身份验证选项

编辑

可以配置一个 单个用户。如果需要多个 SNMPv3 用户,则需要多个 snmptrap 输入声明。仅当您使用 SNMPv3 时,才需要这些选项。

auth_pass

编辑
  • 值类型为 password
  • 此设置没有默认值

选项 auth_pass 指定 SNMPv3 身份验证密码短语或密码。

auth_protocol

编辑

选项 auth_protocol 指定 SNMPv3 身份验证协议或类型

  • 值可以是以下任何一个:md5shasha2hmac128sha224hmac192sha256hmac256sha384hmac384sha512
  • 请注意,sha2hmac192sha256 是等效的
  • 此设置没有默认值

priv_pass

编辑
  • 值类型为 password
  • 此设置没有默认值

选项 priv_pass 指定 SNMPv3 加密密码。

priv_protocol

编辑
  • 值可以是以下任何一个:des3desaesaes128aes192aes256
  • 请注意,aesaes128 是等效的
  • 此设置没有默认值

选项 priv_protocol 指定 SNMPv3 隐私/加密协议。

security_level

编辑
  • 值可以是以下任何一个:noAuthNoPrivauthNoPrivauthPriv
  • 此设置没有默认值

选项 security_level 指定 SNMPv3 安全级别,包括身份验证、无隐私;身份验证、隐私;或无身份验证、无隐私。

security_name

编辑
  • 值类型为 字符串
  • 此设置没有默认值

选项 security_name 指定 SNMPv3 安全名称或用户名。

配置示例

编辑

指定 SNMPv3 陷阱设置

input {
  snmptrap {
    supported_versions => ['3']
    security_name => "mySecurityName"
    auth_protocol => "sha"
    auth_pass => "ShaPassword"
    priv_protocol => "aes"
    priv_pass => "AesPasword"
    security_level => "authPriv"
  }
}

通用选项

编辑

所有输入插件都支持这些配置选项

设置 输入类型 必需

add_field

hash

codec

codec

enable_metric

布尔值

id

字符串

tags

数组

type

字符串

add_field

编辑
  • 值类型为 hash
  • 默认值为 {}

向事件添加字段

codec

编辑
  • 值类型为 codec
  • 默认值为 "plain"

用于输入数据的编解码器。输入编解码器是在数据进入输入之前对其进行解码的便捷方法,无需在 Logstash 管道中使用单独的过滤器。

enable_metric

编辑
  • 值类型为 boolean
  • 默认值为 true

禁用或启用此特定插件实例的指标日志记录,默认情况下我们会记录所有可能的指标,但您可以禁用特定插件的指标收集。

  • 值类型为 string
  • 此设置没有默认值。

向插件配置添加唯一的 ID。如果未指定 ID,Logstash 将生成一个。强烈建议在您的配置中设置此 ID。当您有两个或多个相同类型的插件时,这尤其有用,例如,如果您有两个 snmptrap 输入。在这种情况下,添加一个命名 ID 将有助于在使用监控 API 时监控 Logstash。

input {
  snmptrap {
    id => "my_plugin_id"
  }
}

字段 id 中的变量替换仅支持环境变量,不支持使用密钥存储中的值。

tags

编辑
  • 值类型为 array
  • 此设置没有默认值。

向您的事件添加任意数量的标签。

这可以帮助以后进行处理。

type

编辑
  • 值类型为 string
  • 此设置没有默认值。

向此输入处理的所有事件添加 type 字段。

类型主要用于过滤器激活。

类型存储为事件本身的一部分,因此您也可以使用类型在 Kibana 中搜索它。

如果您尝试在已经具有类型的事件上设置类型(例如,当您从发件人发送事件到索引器时),那么新的输入将不会覆盖现有类型。在发件人处设置的类型会一直保留在该事件中,即使发送到另一个 Logstash 服务器也是如此。