使用 logstash 处理大型 json - 不工作且不打印任何错误
Processing large json's using logstash - Not working and not printing any error
我开始使用 logstash
( 在 windows),当时我的主要使用原因是通过 logstash
一个大的 json (10 mb),以某种方式过滤 json
并将其写到 elastic search
.
至于现在,我不太关心 json
过滤(我会在我让它工作后关心)。我不希望文件通过 logstash
到达我的 elastic search
.
为 logstash
提供数据的客户端使用 tcp
连接。
我的 logstash
简单配置文件如下所示:
input
{
tcp
{
port=>7788
codec=>"json"
}
}
output
{
elasticsearch
{
hosts=>"localhost:9200"
codec=>"json"
}
stdout
{
codec=>rubydebug
}
}
这个 对我有用 小 json
输入像:
{"foo":"bar", "bar": "foo"}
我看到 logstash
正在工作并将数据传递给 elastic search
并且
一切正常.
此外,当使用默认编解码器 ("text") 时,它工作正常,但不如预期。
当输入很大时,我的问题就开始了 jsons
。
假设我有一个 10 MB json
- 我需要用它做什么,这样 logstash
就可以 tcp
作为 json
处理它?文件是否应该缩进?在将它转换为字节之前我应该使用什么编码?我的 logstash 应该有什么 codec\settings?
顺便说一句,当我使用 curl 并通过大 json
直接进行弹性搜索时 - 它有效 - 所以 json
.
没有问题
有什么方法可以让我更好地追踪或至少知道我失败的原因?
我发现问题不是长度而是缺少换行符 - 所以我需要做的就是在我的日志文件中添加一个换行符。
顺便说一句,没有 4K 长度限制 - 至少在使用 TCP 时没有。
我开始使用 logstash
( 在 windows),当时我的主要使用原因是通过 logstash
一个大的 json (10 mb),以某种方式过滤 json
并将其写到 elastic search
.
至于现在,我不太关心 json
过滤(我会在我让它工作后关心)。我不希望文件通过 logstash
到达我的 elastic search
.
为 logstash
提供数据的客户端使用 tcp
连接。
我的 logstash
简单配置文件如下所示:
input
{
tcp
{
port=>7788
codec=>"json"
}
}
output
{
elasticsearch
{
hosts=>"localhost:9200"
codec=>"json"
}
stdout
{
codec=>rubydebug
}
}
这个 对我有用 小 json
输入像:
{"foo":"bar", "bar": "foo"}
我看到 logstash
正在工作并将数据传递给 elastic search
并且
一切正常.
此外,当使用默认编解码器 ("text") 时,它工作正常,但不如预期。
当输入很大时,我的问题就开始了 jsons
。
假设我有一个 10 MB json
- 我需要用它做什么,这样 logstash
就可以 tcp
作为 json
处理它?文件是否应该缩进?在将它转换为字节之前我应该使用什么编码?我的 logstash 应该有什么 codec\settings?
顺便说一句,当我使用 curl 并通过大 json
直接进行弹性搜索时 - 它有效 - 所以 json
.
有什么方法可以让我更好地追踪或至少知道我失败的原因?
我发现问题不是长度而是缺少换行符 - 所以我需要做的就是在我的日志文件中添加一个换行符。
顺便说一句,没有 4K 长度限制 - 至少在使用 TCP 时没有。