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
字段,请使用 date 过滤器解析 [@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
此队列是否持久?(又名;它是否应在代理重新启动后保留?)如果直接从队列中消费,则必须将此值设置为与现有队列设置匹配,否则连接将因不相等的 arg 错误而失败。
host
编辑- 这是一个必需设置。
- 值类型为字符串
- 此设置没有默认值。
rabbitmq 输入/输出 RabbitMQ 服务器地址的常用功能,主机可以是单个主机,也可以是主机列表,例如 host ⇒ "localhost" 或 host ⇒ ["host01", "host02"]
如果初始连接上提供了多个主机,并且任何后续恢复尝试的主机都是随机选择并连接的。请注意,一次只有一个主机连接处于活动状态。
key
编辑- 值类型为字符串
- 默认值为
"logstash"
将队列绑定到交换机时使用的路由密钥。这仅与 direct 或 topic 交换机相关。
- 路由密钥在 fanout 交换机上被忽略。
- 通配符在 direct 交换机上无效。
metadata_enabled
编辑- 值类型为字符串
-
接受的值为
-
none
:不添加元数据 -
basic
:添加标头和属性 -
extended
:添加标头、属性和原始有效负载 -
false
:none
的已弃用别名 -
true
:basic
的已弃用别名
-
- 默认值为
none
启用关于 RabbitMQ 主题的元数据,以添加到事件的 @metadata
字段,以便在管道处理期间可用。一般来说,大多数输出插件和编解码器不包括 @metadata
字段。这可能会影响内存使用和性能。
元数据映射
编辑类别 | 位置 | type |
---|---|---|
标头 |
|
键/值映射 |
属性 |
|
键/值映射 |
原始有效负载 |
|
字节序列 |
passive
编辑- 值类型为布尔值
- 默认值为
false
如果为 true,则将被动声明队列,这意味着它必须已存在于服务器上。要让 Logstash 在必要时创建队列,请将此选项保留为 false。如果主动声明已存在的队列,则此插件的队列选项(durable 等)必须与现有队列的选项匹配。
queue
编辑- 值类型为字符串
- 默认值为
""
要从每条消息中提取并存储在 @metadata 字段中的属性。
从技术上讲,交换机、重新传递和路由密钥属性属于信封而不是消息,但我们在此忽略了这种区别。但是,我们通过 get_headers 单独提取标头,即使标头表在技术上是消息属性。
冻结所有字符串,以便修改事件 @metadata 字段的代码无法触及它们。
如果更新此列表,请记住也更新上面的文档。此插件的默认编解码器是 JSON。您可以根据您的特定需求覆盖此设置。Logstash 将从中消费事件的队列的名称。如果留空,将创建一个具有随机选择名称的瞬态队列。
ssl
编辑- 值类型为布尔值
- 此设置没有默认值。
启用或禁用 SSL。请注意,默认情况下,远程证书验证是关闭的。如果需要证书验证,请指定 ssl_certificate_path 和 ssl_certificate_password。