Avro 编解码器插件

编辑
  • 插件版本: v3.4.1
  • 发布日期: 2023-10-16
  • 更新日志

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

获取帮助

编辑

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

描述

编辑

将序列化的 Avro 记录读取为 Logstash 事件

此插件用于将 Logstash 事件序列化为 Avro 数据,以及将 Avro 数据反序列化为 Logstash 事件。

事件元数据和 Elastic Common Schema (ECS)

编辑

该插件的行为与 ECS 兼容性无关,只是将原始消息添加到 [event][original] 中。

编码

编辑

此编解码器用于将单个 Logstash 事件序列化为 Avro 数据,这些数据是 Avro 二进制 blob。它不会将 Logstash 事件编码为 Avro 文件。

解码

编辑

此编解码器用于反序列化单个 Avro 记录。它不用于读取 Avro 文件。Avro 文件具有必须在输入时处理的独特格式。

部分反序列化

已知 Avro 格式支持任意字段的部分反序列化,提供一个包含用于序列化数据的模式子集的模式。此编解码器不支持任意字段的部分反序列化。只有在提供包含用于序列化数据的模式的前 N 个字段(且顺序相同)的模式时,部分反序列化可能才会起作用。

用法

编辑

使用 Kafka 输入的示例用法。

input {
  kafka {
    codec => avro {
        schema_uri => "/tmp/schema.avsc"
    }
  }
}
filter {
  ...
}
output {
  ...
}

Avro 编解码器配置选项

编辑
设置 输入类型 必需

ecs_compatibility

字符串

encoding

字符串, ["binary", "base64"] 中的一个

schema_uri

字符串

tag_on_failure

布尔值

target

字符串

 

ecs_compatibility

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

    • disabled:在根级别添加 Avro 数据
    • v1, v8:符合 Elastic Common Schema 的行为(还会添加 [event][original]

控制此插件与Elastic Common Schema (ECS)的兼容性。

encoding

编辑
  • 值可以是以下任何一个:binary, base64
  • 默认值为 base64

设置 Avro 有效负载的编码。使用 base64(默认)表示此编解码器发送或期望接收 base64 编码的字节。

将此选项设置为 binary 表示此编解码器发送或期望接收二进制 Avro 数据。

schema_uri

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

用于从中获取模式的模式路径。这可以是 httpfile 方案 URI,例如

  • http - http://example.com/schema.avsc
  • file - /path/to/schema.avsc

tag_on_failure

编辑

解码失败时用 _avroparsefailure 标记事件

target

编辑
  • 值类型为 字符串
  • 此设置没有默认值。
  • 这仅在将数据解码到事件中时相关

定义放置值的目标字段。如果未设置此设置,则 Avro 数据将存储在事件的根(顶层)级别。

示例

input {
  kafka {
    codec => avro {
        schema_uri => "/tmp/schema.avsc"
        target => "[document]"
    }
  }
}