Filebeat : 将不同的日志从filebeat发送到不同的logstash Pipeline
Filebeat : Send different logs from filebeat to different logstash Pipeline
我想要一个filebeat实例可以将数据发送到不同logstash管道的功能。
这可能吗?
我已经配置了一个具有两个管道的 logstash 服务,两个
给出了管道单独的端口。
比方说 Pipeline1 (Port 5044) , Pipeline2 (Port 5045)
现在我想使用 filebeat 将数据发送到 logstash。所以我有
两种类型的日志文件比方说 log1、log2。
我想将 log1 发送到 Pipeline1,将 log2 发送到 Pipeline 2。
我 运行 只有一个 filebeat 实例,我该怎么做?
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
}
}
Filebeat 只能有一个输出,但这可以通过在 filebeat 和 logstash 之间使用消息传递媒介来实现,我在 filebeat 和 logstash 之间使用 kafka 来实现上述请求。
我想要一个filebeat实例可以将数据发送到不同logstash管道的功能。
这可能吗?
我已经配置了一个具有两个管道的 logstash 服务,两个 给出了管道单独的端口。 比方说 Pipeline1 (Port 5044) , Pipeline2 (Port 5045)
现在我想使用 filebeat 将数据发送到 logstash。所以我有 两种类型的日志文件比方说 log1、log2。
我想将 log1 发送到 Pipeline1,将 log2 发送到 Pipeline 2。
我 运行 只有一个 filebeat 实例,我该怎么做?
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
}
}
Filebeat 只能有一个输出,但这可以通过在 filebeat 和 logstash 之间使用消息传递媒介来实现,我在 filebeat 和 logstash 之间使用 kafka 来实现上述请求。