ELK - 使用 Logstash 过滤数据

ELK - Filtering data with Logstash

我正在试验 ELK 堆栈,到目前为止一切顺利。我有一个小问题要解决。 我有一个来自 filebeat 的名为 'message' 的字段。该字段内是一个包含用于记录数据的字符串。 有时该消息字段可能包含此行:

successfully saved with IP address: [142.93.111.8] user: [testuser@some.com]

我想应用过滤器,因此 logstash 将其发送到 Elastic Search:

successfully saved with IP address: [] user: [testuser@some.com]

这是我目前在 Logstash 配置中的配置:

input {
beats {
    port => "5043"
    codec => json
    }
  }
  filter {

  if [message] =~ /IP address:/{
    mutate { add_tag => "whats happening" }
    }

}

output {
elasticsearch {
   hosts => [ "localhost:9200" ]
   }
 }

还有一件事引起了我的注意。 ELK 能够在 Filebeat 级别和 Logstash 级别进行文本过滤。哪一个是最常见的场景?是不是Filebeat过滤更合适?

我找到了适合我的情况的正确解决方案:

mutate {
  gsub => ["message", "address: \[(.*?)]", "address:[not indexable]"]
}

希望有人会发现它有用。