我在 grok 解析方面遇到问题。在 ElasticSearch/Kibana 中,我匹配的行带有标签 _grokparsefailure。
这是我的logstash配置:
input {
file {
type => logfile
path => ["/var/log/mylog.log"]
}
}
filter {
if [type] == "logfile"
{
mutate {
gsub => ["message","\"","'"]
}
grok
{ match => { "message" => "L %{DATE} - %{TIME}: " } }
}
}
output {
elasticsearch { host => localhost port => 9300 }
}
我正在尝试匹配的线条/模式:L 08/02/2014 - 22:55:49:日志文件已关闭:“完成”
我在http://grokdebug.herokuapp.com/上尝试了调试器,它工作正常,我的模式匹配正确。
我要解析的行可能包含双引号,我已经读过 grok 处理和转义它们的方式可能存在问题。所以我试图改变以用 ' 替换 " 以避免问题但没有运气。
有任何想法吗 ?我该如何调试呢?
谢谢