我在Logstash中收到带有如下时间戳的系统日志消息:1月11日17:02:09+01:00我想知道应该使用哪个Grok模式来解析它。我试过%{SYSLOGTIMESTAMP:syslog_timestamp},但是不起作用。我是Logstash的新手,不知道如何处理时区部分。
%{SYSLOGTIMESTAMP:syslog_timestamp}
jqjz2hbq1#
您可以定义扩展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" ] }
请注意,系统日志时间戳不包括年份。logstash有一些启发式方法可以解决这个问题(例如,如果当前日期是1月,日志条目是12月的,则假定它是上一年的)。这些启发式方法并不完美,有时会分配错误的年份。
1条答案
按热度按时间jqjz2hbq1#
您可以定义扩展SYSLOGTIMESTAMP的自定义模式。
请注意,系统日志时间戳不包括年份。logstash有一些启发式方法可以解决这个问题(例如,如果当前日期是1月,日志条目是12月的,则假定它是上一年的)。这些启发式方法并不完美,有时会分配错误的年份。