多个Logstash节点上的Logstash聚合过滤器插件

时间:2020-01-29 16:28:51

标签: logstash

我对使用logstash aggregate filter plugin感兴趣,但是我想知道在我有multiple logstash nodes的情况下如何使用。

我还需要设置-将工作过滤器设置为1(-w 1标志)-如果我不介意事件的发生是不按顺序进行的吗?

更新

我的用例要求使用唯一的跟踪ID汇总由多个服务生成的日志。我没有end event。而是使用3秒的设置窗口。

2 个答案:

答案 0 :(得分:0)

要使aggregate过滤器正常工作,您需要将包含要合并信息的日志发送到相同 logstash节点。

如果您正在使用将FileEvent或其他事件发送到多个logstash节点的托运人,则每个节点将仅聚合它收到的事件,而您不能aggregate来自不同logtash节点的事件。 / p>

还建议将worker设置为1,因为aggregate过滤器的主要用途是从属于相同唯一ID(任务ID,作业ID,进程ID)的事件中获取信息并丰富最终事件,例如,如果您使用多个工作人员,则end事件可以在start事件之前进行处理。

答案 1 :(得分:0)

我认为可以通过设计和配置的组合来解决。以为我会对该主题发表一些看法-有价值。

  1. 由于明显的原因,聚集仅限于单个工人。这迫使您的设计将聚合限制在信息流的单个位置。对我来说听起来像是花鼓/辐轮模式
  2. 如果您有多个日志记录,则需要有条件地将确实需要聚合的事件路由到此中央日志记录。我将添加一个“待聚合”标签(例如),该标签可用于流程控制
  3. 在聚合器logstash本身上-隐式聚合进来的所有内容-或使用以上标记来决定要执行或不执行。显然,此副本将需要在pipeline.workers = 1和pipeline.java_execution = false(see here)下运行。
  4. 那剩下的剩下来配置了吗?我认为可以带您回到特定的过滤器插件docs page

这就是我在做什么。希望对您有所帮助。