Route path branching

Tags: 2.9.1504

#1 milank

Hi,

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? ;-)

Milan 

#2 adm Nxlog ✓
#1 milank
Hi, 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: "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, "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? ;-) Milan 

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.