Hello all, I'm very new to rsyslog, so please bear with me...
I have managed to get something going, below is what I wanted. 1. High throughput (> 200K). Using multiple queues. 2. Memory-type disk-assisted multiple queues (multiple action queues?). How does $ActionQueue* fit in with multiple rulesets? Is it possible with my existing setup? I would like to spool to disk if any of the rulesets cannot forward by TCP for whatever reason. This reliability is quite important. I see there is $RulesetCreateMainQueue available since 5.3.5+ but I cannot use this for now as I cannot sacrifice stability on the RHEL/CentOS platform and 5.6.x packages won't be available for quite some time (CentOS 6 is only on rsyslog-4.4.2-3.el6.i686.rpm!). 3. Reliable forwarding using RELP. Is there something like $InputRELPServerRun? How, if possible can we do RELP with each ruleset? I tried using $InputRELPServerRun instead of $InputTCPServerRun after $RuleSet but it broke the ruleset match. Can we do something fancy like bind a TCP port to a ruleset and start a RELP listener and forward from the RELP port to the plain TCP port (just guessing here)? Possibly some trickery with Unix domain sockets? OpenSSH local port forwarding? 4. Single/multiple files (option to switch on/off to troubleshoot). In the long run, what seems to better? We have had a debate over this but maybe users can offer real world experience please? 5. Compression. Compressed RELP seemed to work in the forwarding part (no errors in rsyslog restart) but is this a desired config? Should we be doing compression elsewhere if possible like in an ASIC in our Juniper firewall to save precious bandwidth over our WAN link? Has anyone tried OpenSSH compression and local port forwarding? 6. Expression and property-based filters. Which is faster/preferred? 7. Store, filter and forward. What is better in terms of OS throughput, single or multiple files? We are looking at very high throughput like > 200K. If I have ten ruleset inputs all writing to the same file what happens? I'm interested in how concurrent writes are implemented. 8. Versions: Collector: CentOS-5.5 x86_64 on an IBM x3550 M2. kernel 2.6.18-194.32.1.el5 rsyslog4-relp-4.6.5-2.ius.el5.x86_64.rpm. rsyslog4-4.6.5-2.ius.el5.x86_64.rpm librelp-0.1.1-3.el5.kb.x86_64.rpm Relay: CentOS-5.5 x86_64 on an IBM BladeCenter HS22 kernel 2.6.18-194.32.1.el5 rsyslog4-relp-4.6.5-2.ius.el5.x86_64.rpm. rsyslog4-4.6.5-2.ius.el5.x86_64.rpm librelp-0.1.1-3.el5.kb.x86_64.rpm 9. Config: Client collector: For now, I cannot change anything on the client side due to contractual agreements hence the filter match and then forward which will become a ruleset with each source sending to it's own TCP port. At the moment everything is coming in on TCP 514. <open> $ModLoad imklog $ModLoad imuxsock $ModLoad omrelp $ModLoad imudp $UDPServerRun 514 $UDPServerTimeRequery 10 $ModLoad imtcp $InputTCPMaxSessions 500 $InputTCPServerRun 514 $MainMsgQueueSize 100000 $WorkDirectory /media/data/var/spool/ryslog $ActionQueueType LinkedList $ActionQueueFileName gdf $ActionResumeRetryCount -1 $ActionQueueSaveOnShutdown on if $msg contains 'SymantecServer' then @@(z9)172.nnn.nnn.nnn:4515;RSYSLOG_ForwardFormat if $msg contains 'D75FADC001' then @@(z9)172.nnn.nnn.nnn:4516;RSYSLOG_ForwardFormat if $msg contains 'fw.log' then @@(z9)172.nnn.nnn.nnn:4517;RSYSLOG_ForwardFormat # The below I've got wrong somewhere. Corrections please? #if $pri-text isequal 'local0.info' then @@(z9)172.20.10.30:4517;RSYSLOG_ForwardFormat #:msg, contains, 'SymantecServer' @@(z9)172.20.10.30:4515;RSYSLOG_ForwardFormat #:msg, contains, 'D75FADC001' @@(z9)172.20.10.30:4516;RSYSLOG_ForwardFormat #:pri, isequal, '134' @@(z9)172.20.10.30:4517;RSYSLOG_ForwardFormat :fromhost-ip, isequal, '172.20.26.245' -/media/data/var/log/gdf & ~ local0.info -/media/data/var/log/gdf & ~ kern.* -/var/log/kernel *.info;mail.none;authpriv.none;cron.none -/var/log/messages authpriv.* -/var/log/secure mail.* -/var/log/maillog cron.* -/var/log/cron *.emerg * uucp,news.crit -/var/log/spooler local7.* -/var/log/boot <close/> Relay: The relay will forward the separate TCP streams onto Splunk data inputs as TCP ports and indexed. We want to separate the streams into separate indexes to enable easier analysis of different sourcetypes. Normalisation could be done as far back as the log source, on the collector or in Splunk itself. The end point for the data will be in AlienVault to do SIEM and event correlation. <open> $ModLoad imklog $ModLoad imuxsock $ModLoad imrelp $InputRELPServerRun 4514 $ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 # Is this right ordering? # How does it pertain to the below rulesets? $WorkDirectory /var/spool/rsyslog/ $ActionQueueFileName gdf $ActionQueueType LinkedList $ActionResumeRetryCount -1 $ActionQueueSaveOnShutdown on kern.* -/var/log/kernel *.info;mail.none;authpriv.none;cron.none -/var/log/messages authpriv.* -/var/log/secure mail.* -/var/log/maillog cron.* -/var/log/cron *.emerg * uucp,news.crit -/var/log/spooler local7.* -/var/log/boot $Ruleset FW1 #:pri, isequal, "134" then @@(z9)172.nnn.nnn.nnn:4517;RSYSLOG_ForwardFormat #*.* -/var/log/fw1 *.* @@172.nnn.nnn.nnn:44517;RSYSLOG_ForwardFormat $InputTCPServerBindRuleset FW1 $InputTCPServerRun 4517 $Ruleset D75FADC001 #:msg, contains, "D75FADC001" @@(z9)172.nnn.nnn.nnn:4516;RSYSLOG_ForwardFormat #*.* -/var/log/D75FADC001 # Will this work? $WorkDirectory /var/spool/rsyslog/ $ActionQueueFileName D75FADC001 $ActionQueueType LinkedList $ActionResumeRetryCount -1 $ActionQueueSaveOnShutdown on *.* @@172.nnn.nnn.nnn:44516;RSYSLOG_ForwardFormat $InputTCPServerBindRuleset D75FADC001 $InputTCPServerRun 4516 $Ruleset SEP #:msg, contains, "SymantecServer" @@(z9)172.nnn.nnn.nnn:4515;RSYSLOG_ForwardFormat #*.* -/var/log/sep *.* @@nnn.nnn.nnn.nnn:44515;RSYSLOG_ForwardFormat $InputTCPServerBindRuleset SEP $InputTCPServerRun 4515 <close/> _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com

