我有一个像这样的日志文件(简化版)
日志行示例
MyLine data={"firstname":"bob","lastname":"the builder"}
我想提取包含在data中的json,并创建两个字段,一个为firstname,一个为last。但是,我得到的输出结果是这样的:
{"message":"Line data={\"firstname\":\"bob\",\"lastname\":\"the builder\"}\r","@version":"1","@timestamp":"2015-11-26T11:38:56.700Z","host":"xxx","path":"C:/logstashold/bin/input.txt","MyWord":"Line","parsedJson":{"firstname":"bob","lastname":"the builder"}}
你可以看到
..."parsedJson":{"firstname":"bob","lastname":"the builder"}}
这不是我需要的,我需要在Kibana中为名字和姓氏创建字段,但是Logstash没有使用Json过滤器提取这些字段。
Logstash配置
input {
file {
path => "C:/logstashold/bin/input.txt"
}
}
filter {
grok {
match => { "message" => "%{WORD:MyWord} data=%{GREEDYDATA:request}"}
}
json{
source => "request"
target => "parsedJson"
remove_field=>["request"]
}
}
output {
file{
path => "C:/logstashold/bin/output.txt"
}
}
任何帮助将不胜感激,我相信我错过了一些简单的东西。谢谢。
%{[parsedJson][firstname]}}"
,这将会使它无法正常工作。 - BornToCode