Avro 编解码器插件编辑

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

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

获取帮助编辑

如果您对插件有任何疑问,请在 讨论 论坛中发布主题。对于错误或功能请求,请在 Github 中创建问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵.

描述编辑

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

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

事件元数据和 Elastic 通用模式 (ECS)编辑

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

编码编辑

此编解码器用于将单个 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 通用模式兼容行为([event][original] 也将被添加)

控制此插件与 Elastic 通用模式 (ECS) 的兼容性。

encoding编辑

  • 值可以是以下任何一个:binarybase64
  • 默认值为 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编辑

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

定义用于放置值的 target 字段。如果未设置此设置,则 Avro 数据将存储在事件的根(顶层)位置。

示例

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