2017-04-03 157 views
1

我需要解析日志中的日期和时间戳以显示在@timestamp字段中。我能够解析时间戳,但没有日期。在logstash中使用grok过滤器解析日期时出错

输入登录:

"2010-08-18","00:01:55","text" 

我的筛选:

grok { 
    match => { "message" => '"(%{DATE})","(%{TIME})","(%{GREEDYDATA:message3})"’} 
} 

这里DATE抛出grokparsefailure。 也不知道如何更新@timestamp字段。

感谢您的帮助。

回答

0

%{DATE}模式不是你想要的。它正在寻找M/D/Y,M-D-Y,D-M-Y或D/M/Y格式的东西。

对于这样一个文件,你可以考虑使用CSV过滤器:

filter { 
    csv { 
    columns => ["date","time","message3"] 
    add_filed => { 
     "date_time" => "%{date} %{time}" 
    } 
    } 
    date { 
    match => [ "date_time", "yyyy-MM-dd HH:mm:ss" ] 
    remove_field => ["date", "time", "date_time" ] 
    } 
} 

这将处理情况message3已经嵌入已逃过它的报价情况。