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