json输入文件

时间:2015-07-15 02:36:36

标签: elasticsearch logstash

我在文件中有以下json -

{
"foo":"bar",
"spam" : "eggs"
},
{
"css":"ddq",
"eeqw": "fewq"
}

以及以下conf文件 -

input { 
file
{ 
   path => "/opt/logstash-1.4.2/bin/sam.json"
   type => "json"
   codec => json_lines
   start_position =>"beginning"
 }
}
output { stdout {  codec => json  } }

但是当我跑步时

./logstash -f sample.conf

我没有在stdout中获得任何输出。

但是当我不给json作为编解码器并给出type => “core2”然后它似乎工作。 任何人都知道如何修复它以适用于json类型。

另一个问题是它在给stdout -

时给出了以下输出
{"message":"{","@version":"1","@timestamp":"2015-07-15T02:02:02.653Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"\"foo\":\"bar\", ","@version":"1","@timestamp":"2015-07-15T02:02:02.654Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"\"spam\" : \"eggs\" ","@version":"1","@timestamp":"2015-07-15T02:02:02.655Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"},","@version":"1","@timestamp":"2015-07-15T02:02:02.655Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"{ ","@version":"1","@timestamp":"2015-07-15T02:02:02.655Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"\"css\":\"ddq\", ","@version":"1","@timestamp":"2015-07-15T02:02:02.656Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"\"eeqw\": \"fewq\"","@version":"1","@timestamp":"2015-07-15T02:02:02.656Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"}","@version":"1","@timestamp":"2015-07-15T02:02:02.656Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}{"message":"","@version":"1","@timestamp":"2015-07-15T02:02:02.656Z","type":"core2","host":"sjagannath","path":"/opt/logstash-1.4.2/bin/sam.json"}

我想知道如何使用输入文件中的键值对以正确的方式解析

1 个答案:

答案 0 :(得分:0)

根据我的理解,如果你想使用json_lines编解码器,你想把你的完整儿子文档放在一行:

{"foo":"bar","spam" : "eggs"}
{"css":"ddq","eeqw": "fewq"}

在您的情况下,您遇到结构问题,因为您在子对象之间也有','。不是最简单的方法来处理它。如果可能,请将源更改为我的示例。如果不可能,多线方法可能对您有所帮助。检查以供参考: input json to logstash - config issues?