Avro 编解码器插件

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

对于其他版本,请参阅 版本化插件文档

获取帮助

编辑

如有关于插件的问题,请在 Discuss 论坛中发起主题讨论。如发现错误或有功能请求,请在 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

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

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

示例

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