Rabbitmq 输入插件
编辑Rabbitmq 输入插件
编辑- rabbitmq 集成插件 的一个组件
- 集成版本:v7.4.0
- 发布日期:2024-09-16
- 变更日志
其他版本,请参见 版本化插件文档。
获取帮助
编辑如有关于插件的问题,请在 Discuss 论坛中发起主题讨论。如发现错误或有功能请求,请在 Github 上提交 issue。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
编辑- 值类型为 布尔值
- 默认值为
true
启用消息确认。使用确认,如果 Logstash 关闭,则由 Logstash 获取但尚未发送到 Logstash 管道的消息将由服务器重新排队。但是,确认会影响消息吞吐量。
这只会每 prefetch_count
条消息发送一次确认。批量处理在这里提供了性能提升。
auto_delete
编辑- 值类型为 布尔值
- 默认值为
false
当最后一个消费者断开连接时,是否应删除代理上的队列?如果要使队列保留在代理上,直到有消费者来消费它们为止,请将此选项设置为 false
。
durable
编辑- 值类型为 布尔值
- 默认值为
false
此队列是否持久?(又名;它应该在代理重启后继续存在吗?) 如果直接从队列中消费,则必须将此值设置为与现有队列设置匹配,否则由于参数不一致错误,连接将失败。
host
编辑- 这是必需的设置。
- 值类型为 字符串
- 此设置没有默认值。
rabbitmq 输入/输出的常用功能 RabbitMQ 服务器地址(s) host 可以是单个主机,也可以是主机列表,即 host ⇒ "localhost" 或 host ⇒ ["host01", "host02"]
如果在初始连接和任何后续的恢复尝试中提供多个主机,则会随机选择并连接到主机。请注意,一次只有一个主机连接处于活动状态。
metadata_enabled
编辑- 值类型为 字符串
-
接受的值为:
-
none
:不添加元数据 -
basic
:添加标题和属性 -
extended
:添加标题、属性和原始有效负载 -
false
:none
的已弃用别名 -
true
:basic
的已弃用别名
-
- 默认值为
none
启用有关 RabbitMQ 主题的元数据,将其添加到事件的 @metadata
字段中,以便在管道处理期间可用。通常,大多数输出插件和编解码器不包含 @metadata
字段。这可能会影响内存使用和性能。
元数据映射
编辑类别 | 位置 | type |
---|---|---|
headers |
|
键/值映射 |
properties |
|
键/值映射 |
原始有效负载 |
|
字节序列 |
passive
编辑- 值类型为 布尔值
- 默认值为
false
如果为 true,则队列将被被动声明,这意味着它必须已存在于服务器上。要使 Logstash 创建必要的队列,请将此选项保留为 false。如果主动声明一个已经存在的队列,则此插件的队列选项(持久性等)必须与现有队列的选项匹配。
queue
编辑- 值类型为 字符串
- 默认值为
""
要从每条消息中提取并存储在 @metadata 字段中的属性。
从技术上讲,exchange、redeliver 和 routing-key 属性属于信封而不是消息,但我们在这里忽略了这种区别。但是,即使 header 表从技术上讲是一个消息属性,我们也通过 get_headers 单独提取 header。
冻结所有字符串,以便修改事件 @metadata 字段的代码无法修改它们。
如果更新此列表,请记住也要更新上面的文档。此插件的默认编解码器为 JSON。但是,您可以根据您的特定需求覆盖它。Logstash 将从中消费事件的队列名称。如果留空,将创建一个名称随机选择的临时队列。
ssl
编辑- 值类型为 布尔值
- 此设置没有默认值。
启用或禁用 SSL。请注意,默认情况下远程证书验证是关闭的。如果您需要证书验证,请指定 ssl_certificate_path 和 ssl_certificate_password