使用GMT字创建grok时间戳模式

时间:2017-10-30 12:03:30

标签: regex logstash-grok grok

我有一个带有时间戳的日志文件,如下所示

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"?

1 个答案:

答案 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 - PMCE后跟SD,然后{{1 }}
  • T - 或
  • | - UTC

UTC部分可以更准确地编写,例如,(?<DIFF>\+[0-9:.]+)或通过在结尾添加(?<DIFF>\+\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)使其成为可选项,这取决于您必须处理的自定义日期格式