我有一个带有时间戳的日志文件,如下所示
Tue Oct 24 20:44:51 GMT+02:00 2017
我们可以使用以下grok模式作为带时区的时间戳
%{DATESTAMP_OTHER: timestamp} // work for "Tue Oct 24 20:44:51 UTC 2017"
但它表示不符合GMT格式。
什么是Gork模式" Tue Oct 24 20:44:51 GMT + 02:00 2017"?
答案 0 :(得分:0)
您可以使用
(?<TIMESTAMP_GMT>%{DAY} %{MONTH} %{MONTHDAY} %{TIME} (?<TZ>GMT(?<DIFF>\+[0-9:.]+)|[PMCE][SD]T|UTC) %{YEAR})
此处,DATESTAMP_OTHER
模式的主要组成部分相同,仅TZ
替换为匹配的(?<TZ>GMT(?<DIFF>\+[0-9:.]+)|[PMCE][SD]T|UTC)
GMT(?<DIFF>\+[0-9:.]+)
- GMT
后跟+
,然后是一位或多位数,.
或/和.
|
- 或[PMCE][SD]T
- P
,M
,C
或E
后跟S
或D
,然后{{1 }} T
- 或|
- UTC
UTC
部分可以更准确地编写,例如,(?<DIFF>\+[0-9:.]+)
或通过在结尾添加(?<DIFF>\+\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)
使其成为可选项,这取决于您必须处理的自定义日期格式