ELK - 使用Logstash过滤数据

时间:2017-04-25 09:40:41

标签: elasticsearch logstash kibana filebeat

我正在尝试ELK堆栈,到目前为止一直很好。我有一个小问题,我正试图解决。 我有一个名为' message'来自filebeat。在该字段内是一个包含用于记录的数据的字符串。 有时,该消息字段可能包含以下行:

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过滤更合适吗?

1 个答案:

答案 0 :(得分:0)

在我的案例中,我找到了正确的解决方案:

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

希望有人会觉得它很有用。