Filebeat:将一个输入收获到多个elasticsearch输出,每个输出具有不同的处理器集

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

[我想配置文件拍以将stdout.log收获到多个elasticsearch输出,例如,将x==A的行收获到elasticsearchA,将x==B的行收获到elasticsearchB,它们每个都有一组不同的处理器。

有可能吗?谢谢。

elasticsearch filebeat
1个回答
0
投票
不,不幸的是,这是不可能的。是的,您可以定义多个日志输入(也用于同一文件),每个日志输入都有自己的处理器(请参见https://www.elastic.co/guide/en/beats/filebeat/current/defining-processors.html)。

问题是在文件beat.yml中对elasticsearch主机进行配置。每个事件,

不管特定的日志输入是什么,都会分配给所有Elasticsearch主机,因为您无法在日志输入本身中定义特定的Elasticsearch主机。

我认为有两种解决方法可以满足您的要求:

  • 为每个日志输入安装多个filebeat实例/服务。然后,在特定的filebeat.yml中,仅指定应将数据发送到的相关主机。
  • 将Logstash设置为filebeat和elasticsearch之间的中间组件。然后,您的文件拍将把所有输入中的事件发送到logstash管道。您可以在此处实施过滤器,以检查事件的某些条件(例如,您在输入中设置的标签),然后将其分发给正确的elasticsearch主机。 (将其视为if-else结构)

我建议您采用logstash变通方法,因为它更易于扩展和满足将来的要求。

希望我能为您提供帮助。

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