【发布时间】:2022-07-25 08:08:57
【问题描述】:
我有一个名为“otelpoc”的 AWS Kinesis 数据流。
在 Logstash 中,我使用的是 Kinesis 输入插件 - 请参阅 here。
我的 Logstash 配置如下:
input {
kinesis {
kinesis_stream_name => "otelpoc"
region => "ap-southeast-2"
codec => json { }
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "otelpoc-logstash-%{+YYYY.MM.dd}"
}
}
我可以使用 AWS CLI 将事件发送到 Kinesis,如下所示:
aws kinesis put-record --stream-name otelpoc --data file://payload.json --partition-key 1
payload.json 看起来像这样:
{
"message": "this is a test",
"level": "error"
}
...但是当我这样做时,我在 Logstash 中看到如下错误:
Received an event that has a different character encoding than you configured. {:text=>"\\x99\\xEB,j\\a\\xAD\\x86+\\\"\\xB1\\xAB^\\xB2\\xD9^\\xBD\\xE9^\\xAE\\xBA+", :expected_charset=>"UTF-8"}
有趣的是,消息仍然会输出到 Elastic,我可以在 Kibana 中查看它,如下所示:
不确定我应该对字符编码做什么...我在 Logstash 中尝试了几件事,但没有成功,例如将 kinesis 输入中的编解码器更改为以下内容
codec => plain {
charset => "UTF-8"
}
...但没有运气...我尝试在一些在线解码器中解码编码文本,但不确定我要解码的内容...任何人都可以提供帮助吗?
编辑:使用 ELK 堆栈的 v6.7.1,它已经很老了,但我认为这不是问题......
【问题讨论】:
标签: encoding logstash amazon-kinesis