On Thu, 1 Oct 2015, Dave Caplinger wrote:

If you process inbound UDP and TCP syslog exactly the same way, you *could* 
just add the TCP input and point it to the same initial ruleset, such as:

input(type="imtcp"
    address="192.168.1.1"
    port="514"
    ruleset="ruleset_eth0_514")

(note I changed the name of that common ruleset from "ruleset_eth0_514_udp"; do 
that also on the imudp input and the ruleset itself of course.)

The result would be two inputs feeding a common queue, which then calls two 
output actions (with their own associated output queues).


We typically don't do this; we'd have a separate input queue (ruleset) for UDP and TCP (and we use imptcp rather than imtcp). This helps us better isolate the impact of traffic bursts of one input type over the other. For example, a large, persistent volume of inbound TCP could potentially (eventually) overrun the shared ruleset/queue and impact reception of UDP (which could in turn lead to the kernel dropping logs it already successfully received). Particularly if you are forwarding to a remote destination, your output queue is more likely to drain more slowly than the input rate, especially if you ever enter disk-assist buffering. (Consider disk-assist mode a "last resort" for short-term bursts or intermittent connectivity problems only.)

There is a queue parameter that tells rsyslog that if the queue is larger than X, stop accepting inputs that can be delayed (like TCP) so that there is space left for a burst of traffic from inputs that can't be delayed (like UDP)

I would probably just do one ruleset.

David Lang

--
Dave Caplinger, Director, Technical Product Management | 402.361.3063 | 
Solutionary — An NTT Group Security Company

On Oct 1, 2015, at 12:13 PM, Randy Baca <[email protected]> wrote:

That looks similar to what we are doing, except we are using legacy commands.

Also, we have two inputs, tcp and udp 514.  When we create the new input for 
TCP, do we also have to create a new output for it, or will the outputs you 
note below cover both inputs?

Regards,



Randy Baca

________________________________________
From: [email protected] [[email protected]] on 
behalf of Dave Caplinger [[email protected]]
Sent: Thursday, October 01, 2015 5:36 AM
To: rsyslog-users
Subject: Re: [rsyslog] Complex forwarding and spoofing question

No; you'll need to explicitly turn on compression and disk-assisted queueing.

It's a little more complex this way, but if you're likely to do any kind of 
filtering or selective forwarding, I'd recommend a config that:

1) Defines your input (in this case UDP 514) and connects it to a named ruleset
2) That ruleset/queue then forwards to two destinations by calling additional 
rulesets
3) Define rulesets for each destination
4) Give everything descriptive names so you can implement impstats, 
troubleshoot later, etc.

For example:

# 514/UDP
input(type="imudp"
     address="192.168.1.1"
     port="514"
     ruleset="ruleset_eth0_514_udp")

# In: 514/UDP
# Out: UDP-spoof to the other local syslog and also forward to remote rsyslog
ruleset(name="ruleset_eth0_514_udp"
       queue.type="LinkedList") {
 call action.local.udp515
 call action.fwd.remotebox
 stop
}

# Fwd to localhost:udp/515
ruleset(name="action.local.udp515") {
   action(type="omudpspoof"
          name="omudpspoof.local515"
          target="127.0.0.1"
          port="515"
   )
}

# Fwd to remote (10.11.12.13) via tcp/514 w/ compression and local disk queueing
ruleset(name="action.fwd.remotebox") {
   action(type="omfwd"
          name="omfwd.remotebox"
          queue.type="LinkedList"
          queue.filename="omfwd_remotebox"
          queue.size="10000"
          queue.maxdiskspace="2G"
          queue.saveonshutdown="on"
          action.resumeretrycount="-1"
          target="10.11.12.13"
          port="514"
          protocol="tcp"
          compression.mode="stream:always"
   )
}


Note that the receiving remote rsyslog server will also need compression 
enabled, and you cannot receive both compressed and non-compressed log feeds on 
the same input.  So if you need that, use multiple rulesets again: set up the 
compressed feed on one input/port/ruleset, and non-compressed on another.

--
Dave Caplinger, Director, Technical Product Management | 402.361.3063 | 
Solutionary — An NTT Group Security Company

On Sep 30, 2015, at 9:58 PM, Randy Baca <[email protected]> wrote:

We need the spoofing because rsyslog adds a timestamp and an IP (127.0.0.1) to 
the beginning of each message forwarded and it messes up the legacy parsing.

Does @@remotesystem perform compression and will it spool messages by default 
in case the link goes down?

RB

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of David Lang
Sent: Wednesday, September 30, 2015 6:14 PM
To: rsyslog-users <[email protected]>
Subject: Re: [rsyslog] Complex forwarding and spoofing question

On Thu, 1 Oct 2015, Randy Baca wrote:

I have a complex issue to resolve and I would like to use rsyslog for it.  
Hopefully someone has done this.



Currently we have a number of remote sites and each site has a single syslog 
server collecting events from multiple hosts.  We need to keep the flow going 
to the legacy syslog servers and also forward all events to a central server at 
one of the sites.  The legacy syslog servers need to stay running until several 
other projects get completed; maybe a year.



This is what we want to do.  We have pieces of it working but can't get 
everything at once.

*   Set up rsyslog on the same server that is running the legacy service.
*   Change the legacy service to run on udp/515.
*   Configure rsyslog to receive on existing ports udp/tcp 514.  We are 
essentially injecting it between the sending hosts and the legacy service.
*   Configure rsyslog to forward and spoof (omudpspoof) to 127.0.0.1 on 
udp/515.   We need the exact original message because of all the custom parsers 
written over the years.
*   Add another action to forward all messages to the central location.  Some 
sites are not high bandwidth, so we will need compression, TCP for reliability, 
and spooling in case the link goes down or one of the endpoints reboots.
*   The server at the central location will itself then forward to multiple 
services locally.

Is this do-able?  Can someone get me started with an example config?

it's doable, but you shouldn't need to do the spoofing. Spoofing is only needed 
if the receiving system ignores the text of the log message and instead uses 
the IP address in the packet.

It's as simple as two outputs

@localhost:515
@remotesystem

or @@remotesystem if you want to use TCP forwarding

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is 
a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our 
control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.


_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to