我有一个logstash实例处理端口5044上的传入请求。
然后,我有filebeat和metricbeat发送数据。

问题是由于过滤器,当前logstash被配置为仅接受filebeat文件:

input {
beats {
  port => "5044"
}
}
filter {
grok {
    match => {...

}
output { ...

当然,metricbeat数据也将被丢弃。
通过定义该过滤器的异常(exception),是否可以包括metricbeat数据?我的想法是在metricbeat上添加标签,以便被识别....有可能吗?

最佳答案

您可以使用条件中的@metadata.beat字段按节拍类型进行过滤。

就像这样:

filter {
    if [@metadata][beat] == "filebeat" {
        filters for filebeat
    }
    if [@metadata][beat] == "metricbeat" {
        filters for metricbeat
    }
}

如果要将每个节拍的数据存储在不同的索引中,也可以在output块中使用相同的条件。

08-28 13:22