please advise me how to configure the following setup:

  • several inputs (UDP, TCP, internal) joined into common path (i_udp, i_tcp, i_internal => p_pattern ...),
  • one global processor (pattern, filter)  module,
  • several outputs (file, UDP, TCP),
  • every message is delivered to one of outputs according to processor's decision.

I call it "route branching". The solutions I have come to so far:

  1. "broadcast": p_pattern => o_file, o_udp, o_tcp -- every output having an Exec filter to drop() messages that should be sent via another output,
  2. "reroute": i_null => o_file; i_null => o_udp; i_null => o_tcp and use Exec reroute() in p_pattern.

The (1) is very inefficient. Otoh, (2) introduces problems with flow control, as the flow control is disabled when using reroute() (a new "feature" of 2.9.1504). So is there an efficient way with flow control enabled? ;-)


AskedJanuary 10, 2016 - 7:17pm

Answer (1)

Currently only these two options exist.  We need to find and implement an alternative that would allow adding the event only to the selected output in the route while still being able to work with flow control.