使用 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 时没有。