Grok patternN表示带时区的时间戳



我在Logstash中收到syslog消息,时间戳如下:

Jan 11 17:02:09+01:00

我想知道我应该使用哪种Grok模式来解析它。

我试过使用%{SYSLOGTIMESTAMP:syslog_timestamp},但它不起作用。我是Logstash的新手,不知道如何处理时区部分。

您可以定义一个扩展SYSLOGTIMESTAMP的自定义模式。

grok {
pattern_definitions => { "TIMESTAMPWITHTZ" => "%{SYSLOGTIMESTAMP}[-+]d{2}:d{2}" }
match => { "message" => "%{TIMESTAMPWITHTZ:[@metadata][timestamp]}" }
}
date { match => [ "[@metadata][timestamp]", "MMM dd HH:mm:ssZZ", "MMM  d HH:mm:ssZZ" ] }

请注意,syslog时间戳不包括年份。logstash有解决这个问题的启发式方法(例如,如果当前日期在1月,日志条目来自12月,则假设它来自前一年(。启发式方法并不完美,有时会指定错误的年份。

相关内容

  • 没有找到相关文章

最新更新