多个Logstash节点上的Logstash聚合筛选器插件

多个Logstash节点上的Logstash聚合筛选器插件,logstash,Logstash,我对使用很感兴趣,但我想知道在我的情况下,这将如何工作 如果我不介意事件顺序不正确,我是否需要将-filter workers设置为1(-w 1标志) 更新 我的用例要求通过一个唯一的trace-id聚合多个服务生成的日志。而不是使用3秒的设置窗口。要使聚合过滤器正常工作,您需要将包含要组合的信息的日志发送到相同的日志存储节点 如果您使用的是向多个日志存储节点发送事件的托运人(如Filebeat或任何其他托运人),则每个节点将仅聚合其接收的事件,您无法聚合来自不同日志存储节点的事件 还建议将wo

我对使用很感兴趣,但我想知道在我的情况下,这将如何工作

如果我不介意事件顺序不正确,我是否需要将-filter workers设置为1(-w 1标志)

更新


我的用例要求通过一个唯一的trace-id聚合多个服务生成的日志。而不是使用3秒的设置窗口。

要使聚合过滤器正常工作,您需要将包含要组合的信息的日志发送到相同的日志存储节点

如果您使用的是向多个日志存储节点发送事件的托运人(如Filebeat或任何其他托运人),则每个节点将仅聚合其接收的事件,您无法聚合来自不同日志存储节点的事件


还建议将worker设置为1,因为聚合过滤器的主要用途是从属于相同唯一id(任务id、作业id、流程id)的事件中获取信息,并充实最终事件。如果使用的worker超过1个,则可以在开始事件之前处理结束事件,例如。

我觉得这可以通过设计和配置的结合来解决。我想我会顺便谈谈这个话题的一些想法——为了它的价值

  • 由于明显的原因,聚合仅限于单个工作者。这迫使您的设计将聚合限制在信息流中的单个点上。对我来说,听起来像是轮毂/辐条车轮模式
  • 如果您有多个日志存储,则需要有条件地将确实需要聚合的事件路由到此中心日志存储。我会添加一个“待聚合”标记(例如),它可以用于流控制
  • 在聚合器日志本身上—隐式聚合所有传入的内容—或者使用上面的标记来决定要做还是不做。显然,此副本需要使用pipeline.workers=1和pipeline.java_execution=false()运行
  • 剩下的就留给配置了?我想这会让你回到特定的过滤器插件

  • 这就是我正在做的。希望这有帮助。

    您使用哪种发货人将事件发送到logstash节点?Filebeat?@apt-get\u install\u skill是Filebeat。我已经在问题中添加了关于我的用例的更多信息Filebeat是否支持粘性并基于一些散列或id将事件发送到特定节点?在我看来,它无法尝试添加
    路由=%{id to aggregate on}
    @binyamingreenberg不,您不能使用任何逻辑将特定事件发送到不同的节点。