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

时间:2015-11-24 07:23:30

标签: date pattern-matching logstash grok

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

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"

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

1 个答案:

答案 0 :(得分:0)

你正在使用DATESTAMP,它以DATE开头。

DATE是以下之一:

  • DATE_US,即2015年11月23日或2015年11月23日(不符合您的意见)
  • DATE_EU,即2015年11月23日或2015年11月23日(不符合您的意见)
  • DATE_YMD,我在任何地方都看不到
  • DATE_DMMY,即" 23 11/2015" (与您的输入不匹配)

制作符合您输入的模式!此外,你很少需要一个模式,像这样扩展另外两个4。想象一下,正则表达式将会适用于您通过的所有文档。