如何使用grok过滤器获取tomcat日志中匹配的消息?

时间:2015-05-19 05:24:35

标签: tomcat filter logstash grok

我在tomcat日志中获得了不同的不同信息。我只想要消息"服务器启动" 。我在logstash中使用了grok过滤器,但我无法获得带有该消息的唯一一条过滤消息。我收到了tomcat日志中的所有消息。 logstash中的conf文件是......

input {
  stdin { }
  file {
    type => "tomcat-access"
    path => ["D:/apache-tomcat-7/logs/catalina.2015-05-19.log"]
  }
}

filter {
    grok {
match => [ "message:Server startup in", "%{SYSLOGBASE} %{DATA:message}"]
  }
}

output {
    stdout { codec => rubydebug }
  elasticsearch {
    index => "tomcat"
    cluster => "cloud-es"
  }

}

1 个答案:

答案 0 :(得分:0)

grok filter用于从邮件中提取字段。它没有做任何过滤。您应该使用conditionaldrop filter

filter {
  if [message] !~ /Server start up in/ {
    drop { }
  }
}

或者:

filter {
  if "Server start up in" not in [message] {
    drop { }
  }
}