【发布时间】:2017-02-16 15:20:09
【问题描述】:
我试图弄清楚如何使用 Logstash 读取 JSON 文件,该文件在一行中包含所有事件
示例输入:
{"metadata": {"metadata fields": "metadata data"},"results": [{"events":[{"event fields": "event data"}, {"event fields": "event data"}}],"field": {"more fields": "data"}}
扩展 JSON:
{
"metadata": {
"metadata fields": "metadata data"
},
"results": [{
"events": [{
"event fields": "event data"
}, {
"event fields": "event data"
}
}], "field": {
"more fields": "data"
}
}
我试过只使用 JSON 编解码器,但是当我运行 Logstash 时,它在打印成功启动后挂起。我尝试过的另一件事是在 JSON 末尾添加换行符,但这在生产中不起作用,因为我无法控制日志的来源。
有人对如何通过 Logstash 正确解析这些日志有任何建议吗?下面是我的配置文件。提前致谢!
配置
input {
file {
path => "C:/Folder/*.json"
sincedb_path => "C:\nul"
start_position => "beginning"
codec => "json"
type => "data"
}
}
output {
stdout { codec => rubydebug }
}
【问题讨论】:
-
那不是有效的 JSON。可能是它不起作用的原因。
-
你知道我该如何解析它吗?
-
一些精心设计的
grok过滤器可以完成这项工作。