尝试通过Logstash传递二进制文件

杰伊

我的Kafka二进制文件中产生了一些过程(从Java到字节数组)。

我正在尝试使用Logstash从Kafka消费文件并将文件上传到s3。

我的管道:

input {
  kafka {
    bootstrap_servers => "my-broker:9092"
    topic => "my-topic"
    partition_assignment_strategy => "org.apache.kafka.clients.consumer.StickyAssignor"
    value_deserializer_class => "org.apache.kafka.common.serialization.ByteArrayDeserializer"
  }
}
filter {
  mutate {
    remove_field => ["@timestamp", "host"]
  }
}
output {
  s3 {
    region => "eu-west-1"
    bucket => "my_bucket"
    time_file => 1
    prefix => "files/"
    rotation_strategy => "time"
  }
}

如您所见,我使用了另一个反序列化器类。但是,似乎Logstash默认使用一种将字节数组转换为字符串的编码。我的目标是将文件原样上传到s3。是否有已知的编解码器不对输入数据做任何事情并按原样上传它?

现在,文件已上传到s3,但我看不到它们或打开它们。Logstash破坏了二进制内容。例如,我尝试发送一个内部包含多个文件的gzip,之后我无法在s3中打开它。

我在Logstash上收到的警告:

0-06-02T10:49:29,149][WARN ][logstash.codecs.plain    ][my_pipeline] Received an event that has a different character encoding than you configured. {:text=>"7z\\xBC\\xAF'\\u001C\\u0000\\u0002\\xA6j<........more binary data", :expected_charset=>"UTF-8"}
杰伊

我不确定Logstash是否最适合传递二进制数据,我最终实现了Java使用者,但是以下解决方案对我来说适用于Logstash:

  1. 发送到Kafka的数据可以序列化为二进制数据。例如,我使用filebeat发送二进制数据,因此,如果Kafka的输出模块中有一个名为“ value_serializer”的参数,则应将其设置为“ org.apache.kafka.common.serialization.ByteArraySerializer”
  2. 在Logstash设置(kafka输入)中,将value_deserializer_class定义为“ org.apache.kafka.common.serialization.ByteArrayDeserializer”,就像我在帖子中所做的那样
  3. 您在logstash中的输出可以是任何可以获取二进制数据的资源。

请注意,输出将获得二进制数据,并且您需要对其进行反序列化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试通过XCode上传二进制文件时出现“无效的图像路径”错误

来自分类Dev

尝试通过 $.ajax 发送二进制数据

来自分类Dev

将输出重定向到stdout并通过管道传递给二进制文件

来自分类Dev

C通过二进制文件生成头文件

来自分类Dev

二进制文件如何“二进制”?

来自分类Dev

通过RabbitMQ发送二进制文件

来自分类Dev

通过TCP / IP连接发送二进制文件

来自分类Dev

如何通过ssh尾随二进制文件?

来自分类Dev

通过串行终端发送二进制文件

来自分类Dev

通过RabbitMQ发送二进制文件

来自分类Dev

通过TCP / IP连接发送二进制文件

来自分类Dev

在SFTP中通过二进制模式传输文件

来自分类Dev

通过串行终端发送二进制文件

来自分类Dev

通过 systemctl 运行二进制文件

来自分类Dev

无法通过二进制文件使 Gdal 1.11.2 工作

来自分类Dev

通过 C++ 读取二进制文件的问题

来自分类Dev

通过 Flask 发送二进制文件列表

来自分类Dev

大块读取二进制文件

来自分类Dev

搜索二进制文件C ++

来自分类Dev

杀死Haskell二进制文件

来自分类Dev

从二进制文件读取

来自分类常见问题

从OKHTTP下载二进制文件

来自分类Dev

Powershell二进制文件比较

来自分类Dev

二进制文件的图形直方图

来自分类Dev

Shellcode和二进制文件

来自分类Dev

C ++二进制文件构造

来自分类Dev

从二进制文件读取char *

来自分类Dev

写入二进制文件块

来自分类Dev

理解二进制文件