日期格式的 grok{} 模式 "dd MMM yyyy HH:mm:ss"

grok{} pattern for date format "dd MMM yyyy HH:mm:ss"

我的日志文件的日期模式是

10 Sep 2014 07:16:33

我在 grok-patterns 中添加了自定义模式

DATE_DMMY %{MONTHDAY} %{MONTH}/%{YEAR}
DATE %{DATE_US}|%{DATE_EU}|%{DATE_YMD}|%{DATE_DMMY}
DATESTAMP %{DATE} %{TIME}

在我的 logstash.conf 中,我按如下方式使用它

filter {

grok {
patterns_dir => "/root/mypatterns"
match => ["message", "%{DATESTAMP:LOG_DATE}"]
}

date {
match => ["LOG_DATE", "dd MMM yyyy HH:mm:ss"]
}

}

但是当我执行时我得到

 [0] "_grokparsefailure"

请告诉我这里有什么问题。谢谢

您正在使用以 DATE 开头的 DATESTAMP。

DATE 是以下之一:

  • DATE_US,即 11/23/2015 或 11-23-2015(与您的输入不符)
  • DATE_EU,即 23/11/2015 或 23.11.2015(与您的输入不符)
  • DATE_YMD,我在任何地方都看不到它的定义
  • DATE_DMMY,即“23 11/2015”(与您的输入不符)

制作一个与您的输入相匹配的图案!此外,您很少需要像这样扩展两个 4 个其他模式的模式。想象一下,如果您将正则表达式应用到通过的每个文档,它会是什么样子。