时间戳的 Grok 模式

Grok patterns for timestamp

是否有 grok 模式可以从该字符串中提取时间戳和日期。

21:11:51:569/UTC(11/5/2015)

?

我可以分别使用 grok 模式 DATE_US 和 TIME。但不在一起(即)

以下模式有效。

%{TIME:time} -- 21:11:51:569/UTC
%{DATE_US:date} -- (11/5/2015)

但是完整的字符串 21:11:51:569/UTC(11/5/2015) 没有用 %{TIME:time}|%{DATE_US:date}

求值

我想你问了大约 6 个问题;我们看看我能不能把它们都拿下来...

  1. 没有与您的日期时间格式匹配的内置模式。
  2. %{TIME} 将匹配您的“21:11:51:569”(尽管我无法想象 "seconds" 需要“51:569”)。
  3. %{TIME} 与您的时区信息不匹配。
  4. %{DATE_US} 将匹配您的“11/5/2015”。
  5. 在正则表达式中说 "foo|bar" 旨在匹配 "foo" "bar"。您的“%{TIME}|%{DATE}”模式与时间匹配,然后停止。
  6. 像这样的模式将匹配两个片段:%{TIME}/UTC\(%{DATE_US}\)
  7. 用户可以使用 %{TZ} 模式来匹配时区。

所以,尽管如此,请尝试:

%{TIME:time}/%{TZ:tz}\(%{DATE_US:date}\)