_grokparsefailure包括"语义"部分

时间:2015-07-16 18:38:52

标签: rspec logstash grok logstash-grok logstash-configuration

我使用rspec测试我的logstash配置以匹配基本的tomcat日志,但是当我在我的grok模式中指定字段时它失败了(没有字段,它成功!)。

config <<-CONFIG
filter {
  grok {
    patterns_dir -> "./patterns"
    pattern => "%{CATALINA_DATESTAMP:logTimestamp} %{JAVACLASS} %{WORD}"
  }
}
CONFIG

sample 'Jul 15, 2015 9:33:23 AM org.apache.catalina.core.ApplicationContext log'

//编辑:将TOMCAT_DATESTAMP更正为CATALINA_DATESTAMP,即:

CATALINA_DATESTAMP %{MONTH} %{MONTHDAY}, 20%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) (?:AM|PM)

当&#34;:logTimestamp&#34;部分是在模式中,没有任何匹配。什么时候删除它匹配线...任何想法为什么?这是用户错误,安装错误还是别的什么?

1 个答案:

答案 0 :(得分:0)

问题可能是由TOMCAT_DATESTAMP模式引起的。当您查看grok default patterns for java时,您会发现它与您的输入不符。

这是模式定义:

TOMCAT_DATESTAMP 20%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:?%{MINUTE}(?::?%{SECOND}) %{ISO8601_TIMEZONE}

您的输入是:

Jul 15, 2015 9:33:23 AM

您可以更改输入以适合图案,也可以定义不同的图案。以下可能适合您的目的:

 %{MONTH} %{MONTHDAY}, %{YEAR} %{TIME}