我正在尝试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过滤更合适吗?
答案 0 :(得分:0)
在我的案例中,我找到了正确的解决方案:
mutate {
gsub => ["message", "address: \[(.*?)]", "address:[not indexable]"]
}
希望有人会觉得它很有用。