我使用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;部分是在模式中,没有任何匹配。什么时候删除它匹配线...任何想法为什么?这是用户错误,安装错误还是别的什么?
答案 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}