Filebeat:将不同的日志从filebeat发送到不同的logstash管道

问题描述 投票:0回答:2

我想要一个filebeat实例可以将数据发送到不同的logstash管道的功能。

这可能吗?

我已经配置了一个具有两个管道的logstash服务,两个管道都给出了单独的端口。比如Pipeline1(Port 5044),Pipeline2(Port 5045)

现在我想使用filebeat将数据发送到logstash。所以我有两种类型的日志文件让我们说log1,log2。

我想将log1发送到Pipeline1,将log2发送到Pipeline 2。

我只运行filebeat的一个实例,我怎么能这样做?

elasticsearch logstash kibana filebeat
2个回答
0
投票

Filebeat只能有一个输出,您需要运行另一个filebeat实例或更改logstash管道以仅侦听一个端口,然后根据标记过滤数据,在logstash上过滤比有两个实例更容易。

在Filebeat中,您可以为每个输入指定一个标记,并在logstash中使用这些标记将日志发送到所需的管道。

例如,带有标签log1的事件将被发送到pipeline1,带有标签log2的事件将被发送到pipeline2

您的配置需要在Filebeat中是这样的:

- type: log
  enabled: true
  paths:
    - "/path/to/your/logs/*.json"
  tags: ["logN"]

然后,您需要在logstash过滤器中输入条件并输出到您想要的每个标签:

filter {
    if "logN" in [tags] {
        filters
    }
}
output {
    if "logN" in [tags] {
        output
    }
}

0
投票

Filebeat只能有一个输出,但这可以通过在filebeat和logstash之间使用消息传递介质来实现,我在filebeat和logstash之间使用kafka来实现上述请求。

© www.soinside.com 2019 - 2024. All rights reserved.