我想要一个filebeat实例可以将数据发送到不同logstash管道的功能。
这可能吗?
我已经配置了一个logtash服务,它具有两个管道,两个管道 管道给出了单独的端口。 假设管道1(端口5044),管道2(端口5045)
现在我想使用filebeat将数据发送到logstash。所以我有 两种日志文件,例如log1,log2。
我想将log1发送到Pipeline1,将log2发送到Pipeline 2。
我仅运行filebeat的一个实例,我该怎么做?
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
Filebeat只能有一个输出,但是可以通过在filebeat和logstash之间使用一种消息传递媒体来实现,在我的情况下,我正在使用kafka在filebeat和logstash之间来实现上述请求。