【问题标题】:How can i use grok filter to get the matched messages in the tomcat logs?如何使用 grok 过滤器在 tomcat 日志中获取匹配的消息?
【发布时间】:2015-05-19 05:24:34
【问题描述】:

我在 tomcat 日志中得到了不同的不同信息。我只想要带有消息 "Server startup in" 的行。我在 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"
  }

}

【问题讨论】:

    标签: tomcat filter logstash grok


    【解决方案1】:

    grok filter 用于从消息中提取字段。它不做任何过滤。您应该使用conditionaldrop filter

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

    或者:

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

    【讨论】:

    • 我想定制 kibana 仪表板。我可以获取 kibana 源代码。这样我就可以按照我想要的方式对我的仪表板进行更高级的更改。
    • 这是一个完全不同的问题,但是是的,GitHub 上提供了 Kibana 源代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多