Rabbitmq 输入插件编辑

有关其他版本,请参阅 版本化插件文档

获取帮助编辑

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

描述编辑

RabbitMQ 队列中拉取事件。

默认设置将创建一个完全临时的队列,并默认监听所有消息。如果您需要持久性或任何其他高级设置,请设置相应的选项

此插件使用 March Hare 库与 RabbitMQ 服务器进行交互。大多数配置选项直接映射到标准 RabbitMQ 和 AMQP 概念。 AMQP 0-9-1 参考指南 和 RabbitMQ 文档的其他部分有助于更深入地理解。

如果启用了 @metadata_enabled 设置,则接收到的消息的属性将存储在 [@metadata][rabbitmq_properties] 字段中。请注意,存储元数据可能会降低性能。以下属性可能可用(在大多数情况下取决于发送者是否设置了它们)

  • app-id
  • cluster-id
  • consumer-tag
  • content-encoding
  • content-type
  • correlation-id
  • delivery-mode
  • exchange
  • expiration
  • message-id
  • priority
  • redeliver
  • reply-to
  • routing-key
  • timestamp
  • type
  • user-id

例如,要将 RabbitMQ 消息的时间戳属性获取到 Logstash 事件的 @timestamp 字段中,请使用日期过滤器解析 [@metadata][rabbitmq_properties][timestamp] 字段

    filter {
      if [@metadata][rabbitmq_properties][timestamp] {
        date {
          match => ["[@metadata][rabbitmq_properties][timestamp]", "UNIX"]
        }
      }
    }

此外,任何消息头都将保存在 [@metadata][rabbitmq_headers] 字段中。

Rabbitmq 输入配置选项编辑

此插件支持以下配置选项以及后面描述的 通用选项

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

 

ack编辑

启用消息确认。使用确认,Logstash 获取但尚未发送到 Logstash 管道的消息将在 Logstash 关闭时由服务器重新排队。但是,确认会影响消息吞吐量。

这只会每 prefetch_count 条消息发送一次确认。分批处理在这里提供了性能提升。

arguments编辑

  • 值类型为 数组
  • 默认值为 {}

可选队列参数作为数组。

相关的 RabbitMQ 文档指南

auto_delete编辑

当最后一个消费者断开连接时,是否应该删除代理上的队列?如果希望队列保留在代理上,请将此选项设置为 false,直到有消费者来消费它们为止。

automatic_recovery编辑

将此设置为 自动恢复 来自断开的连接。您几乎肯定不想覆盖它!

connect_retry_interval编辑

  • 值类型为 数字
  • 默认值为 1

重试连接之前等待的时间(以秒为单位)

connection_timeout编辑

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

默认连接超时时间(以毫秒为单位)。如果未指定,则超时时间为无限。

durable编辑

此队列是否持久?(即;它是否应该在代理重启后存活?) 如果直接从队列中消费,则必须将此值设置为与现有队列设置匹配,否则连接将因不匹配的参数错误而失败。

exchange编辑

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

要将队列绑定到的交换机的名称。还要指定 exchange_type 来声明交换机(如果它不存在)

exchange_type编辑

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

要绑定到的交换机的类型。指定此选项将导致此插件声明交换机(如果它不存在)。

exclusive编辑

队列是否排他?排他队列只能由声明它们的连接使用,并在连接关闭时(例如,由于 Logstash 重启)被删除。

heartbeat编辑

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

心跳超时 (以秒为单位)。如果未指定,则将使用 60 秒的心跳超时时间。

host编辑

  • 这是一个必需的设置。
  • 值类型为 字符串
  • 此设置没有默认值。

rabbitmq 输入/输出的通用功能 RabbitMQ 服务器地址(es) host 可以是单个主机,也可以是主机列表,例如 host ⇒ "localhost" 或 host ⇒ ["host01", "host02]

如果在初始连接和任何后续恢复尝试中提供了多个主机,则会随机选择主机并连接到它。请注意,一次只激活一个主机连接。

key编辑

  • 值类型为 字符串
  • 默认值为 "logstash"

将队列绑定到交换机时要使用的路由键。这仅与直接或主题交换机相关。

  • 路由键在扇出交换机上被忽略。
  • 直接交换机上无效通配符。

metadata_enabled编辑

  • 值类型为 字符串
  • 接受的值为

    • none: 不添加元数据
    • basic: 添加头和属性
    • extended: 添加头、属性和原始有效负载
    • false: none 的弃用别名
    • true: basic 的弃用别名
  • 默认值为 none

启用有关 RabbitMQ 主题的元数据,以便将其添加到事件的 @metadata 字段中,以便在管道处理期间可用。通常,大多数输出插件和编解码器不包含 @metadata 字段。这可能会影响内存使用和性能。

元数据映射edit
类别 位置 type

标题

[@metadata][rabbitmq_headers]

键值映射

属性

[@metadata][rabbitmq_properties]

键值映射

原始有效负载

[@metadata][rabbitmq_payload]

字节序列

passiveedit

如果为 true,则队列将被被动声明,这意味着它必须已存在于服务器上。要让 Logstash 在必要时创建队列,请将此选项保留为 false。如果主动声明一个已存在的队列,则此插件的队列选项(持久化等)必须与现有队列的选项匹配。

passwordedit

  • 值类型为 password
  • 默认值为 "guest"

RabbitMQ 密码

portedit

  • 值类型为 数字
  • 默认值为 5672

要连接的 RabbitMQ 端口

prefetch_countedit

  • 值类型为 数字
  • 默认值为 256

预取计数。如果使用 ack 选项启用确认,则指定允许的未确认消息数量。

queueedit

要从每条消息中提取并存储在 @metadata 字段中的属性。

从技术上讲,交换、重新传递和路由键属性属于信封而不是消息,但我们在这里忽略了这种区别。但是,我们通过 get_headers 单独提取标题,即使标题表从技术上讲是消息属性。

冻结所有字符串,以便修改事件的 @metadata 字段的代码无法触碰它们。

如果更新此列表,请记住也要更新上面的文档。此插件的默认编解码器为 JSON。但是,您可以根据自己的特定需求覆盖它。Logstash 将从中消费事件的队列的名称。如果留空,将创建一个具有随机选择的名称的瞬态队列。

ssledit

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

启用或禁用 SSL。请注意,默认情况下,远程证书验证已关闭。如果您需要证书验证,请指定 ssl_certificate_path 和 ssl_certificate_password

ssl_certificate_passwordedit

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

在 ssl_certificate_path 中指定的加密 PKCS12 (.p12) 证书文件的密码

ssl_certificate_pathedit

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

用于验证远程主机的 PKCS12 (.p12) 格式的 SSL 证书的路径

ssl_versionedit

  • 值类型为 字符串
  • 默认值为 "TLSv1.2"

要使用的 SSL 协议版本。

subscription_retry_interval_secondsedit

  • 这是一个必需的设置。
  • 值类型为 数字
  • 默认值为 5

订阅请求失败后等待重试的时间(以秒为单位)。如果服务器消失然后恢复,则订阅可能会失败。

threadsedit

  • 值类型为 数字
  • 默认值为 1

useredit

  • 值类型为 字符串
  • 默认值为 "guest"

RabbitMQ 用户名

vhostedit

要使用的 vhost(虚拟主机)。如果您不知道这是什么,请保留默认值。除了默认 vhost(“/”)之外,vhost 的名称不应以斜杠开头。

通用选项edit

以下配置选项受所有输入插件支持

设置 输入类型 必需

add_field

hash

enable_metric

布尔值

id

字符串

tags

数组

type

字符串

详情edit

 

add_fieldedit

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

向事件添加字段

enable_metricedit

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

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

idedit

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

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

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

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

tagsedit

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

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

这可以帮助以后的处理。

typeedit

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

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

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

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

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