10,431
社区成员




当前我有一条数据链路:
Filebeat -> Logstash -> Kafka -> Logstash -> Elasticsearch
原本没有什么问题,也不会出现中文乱码的现象。
后来,由于业务需求,我需要增加持久化队列,数据链路就变成了:
Filebeat -> Logstash(持久化队列) -> Kafka -> Logstash -> Elasticsearch
此时的数据链路,数据传输一切正常,但是存储到 Elasticsearch 当中的中文出现了乱码。
为了排查原因,我就重新搭建了几条数据链路:
(1)Filebeat -> Logstash(持久化队列) -> 控制台输出
(2)Filebeat -> Logstash(持久化队列) -> Kafka -> Kafka消费者
(3)Filebeat -> Logstash(持久化队列) -> Kafka -> Logstash -> 控制台输出
(4)Filebeat -> Logstash(持久化队列) -> Kafka -> Logstash -> Elasticsearch
(5)Filebeat -> Logstash(持久化队列) -> Logstash -> 控制台输出
(6)Filebeat -> Logstash(持久化队列) -> Logstash -> Elasticsearch
(7)Filebeat -> Logstash(持久化队列) -> Elasticsearch
后面进行测试,除了(7)这条数据链路,中文没有出现乱码,其它数据链路都出现了乱码。
因为增加持久化队列,Logstash目录下的data文件夹会多出一个checkpoint.head文件和page.X文件,所以我就觉得,会不会是page.X文件编码的问题。
后面查看源码,好像也不能指定持久化队列的编码格式,所以不知道怎么解决这个问题。
谢谢各位了!