如何避免重复:
"message": [
"clientErrorHandler: Erro não previsto ou mapeado durante chamada dos serviços.",
" Erro não previsto ou mapeado durante chamada dos serviços."
],
我做错了什么(可能是从Grok的角度来看,每条消息中都有两行)?
logstash.conf:
input {
file {
path => "/.../logsreais.log"
start_position => "beginning"
codec => "json"
}
}
filter {
grok {
match => { "message" => "%{DATA:class}:%{GREEDYDATA:message}" }
}
}
output {
stdout {
# This codec gives your more details about the event.
codec => rubydebug
}
elasticsearch {
hosts => "http://127.0.0.1:9200"
index => "indice"
}
}
logsreais.log
{"meta":"","level":"error","message":"clientErrorHandler: Erro não previsto ou mapeado durante chamada dos serviços.","timestamp":"2017-04-06T16:08:37.861Z"}
{"meta":"","level":"error","message":"clientErrorHandler: Erro não previsto ou mapeado durante chamada dos serviços.","timestamp":"2017-04-06T19:40:17.682Z"}
Kibana Sense查询:
{
"_index": "indice170410g",
"_type": "logs",
"_id": "AVtZeRktljzknEE8qoSv",
"_score": 1,
"_source": {
"path": "/.../logsreais.log",
"@timestamp": "2017-04-10T20:06:00.203Z",
"level": "error",
"meta": "",
"@version": "1",
"host": "nodejs",
"message": [
"clientErrorHandler: Erro não previsto ou mapeado durante chamada dos serviços.",
" Erro não previsto ou mapeado durante chamada dos serviços."
],
"class": "clientErrorHandler",
"timestamp": "2017-04-06T16:08:37.861Z"
}
}
答案 0 :(得分:0)
您应该将grok
过滤器设置为覆盖message
字段,因为默认情况下它会附加数据(如您的情况所示)。
grok {
match => { "message" => "%{DATA:class}:%{GREEDYDATA:message}" }
overwrite => ["message"]
}