Kibana不显示filebeat中grok过滤器的字段

时间:2016-06-24 15:16:36

标签: logstash logstash-grok

我有日志文件,其中包含我希望在Kibana中显示的apache日志。 日志以IP开头。我已经对我的模式进行了调整并且通过了。 我试图在beats输入配置文件中添加字段,但即使在刷新字段后也不会在Kibana中显示。 这是配置文件

filter {
  if[type] == "apache" {
    grok {
      match => { "message" => "%{HOST:log_host}%{GREEDYDATA:remaining}" }
      add_field => { "testip" => "%{log_host}" }
      add_field => { "data_left" => "%{remaining}" }
    }
  }
...

添加我已重新启动所有服务:logstash,elasticsearch,kibana在新配置之后。

1 个答案:

答案 0 :(得分:1)

问题可能是您的grok模式使用过于严格的模式。

  • HOST根据您的IPORHOST字段名称test_ip可能apache的可能性。

假设数据实际上是以filter { if [type] == "apache" { grok { match => { message => "%{IPORHOST:log_host}%{GREEDYDATA:remaining}" } add_field => { testip => "%{log_host}" data_left => "%{remaining}" } } } } 定义的类型进入的,那么它应该是:

add_field

话虽如此,您对grok的使用完全没有必要。 log_host模式本身会创建两个字段:remainingtestip,因此无需定义名为data_leftgrok的额外字段。

或许更有用的是,您不需要制作自己的Apache Web日志filter { if [type] == "apache" { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } # Set @timestamp to the log's time and drop the unneeded timestamp date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] remove_field => "timestamp" } } } 模式。 The COMBINEDAPACHELOG pattern already exists,自动提供所有标准字段。

limit_choices_to={'parentCategory__name': 'comp method'}

您可以在a more complete example in the Logstash documentation here中看到这一点。