Posted earlier on this week, but was sick at the time and thus, didn't post 
enough info to warrant informed response.  Here's some more information along 
with some specific questions:

Conditions:

- Version: rsyslog-3.22.1-3.el5_5.1
- System: Linux ******* 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 11:57:43 EST 2008 
x86_64 x86_64 x86_64 GNU/Linux
- Rsyslog Clients w/ Syslog-NG servers
- Transport: TCP

Problem:

Replaced Sysklog with Rsyslog.  After several hours of high traffic, Apache 
processes jumped from 50 to 250 and Apache eventually stopped working.  As soon 
as I shutdown Rsyslog and turned up Sysklog, Apache procs went back to normal 
and all was resolved.  

Questions:

1.  Running old version of Rsyslog (3.22) because this is latest version 
available in CentOS repository.  Will I get performance/stability improvements 
upgrading to 5x (e.g. 5.6.2) or even 6x?  If so, I'll build RPMs, but assumed 
latest version in CentOS 5 repository was sufficient if I don't need latest 
features.  Am I wrong?  Should I upgrade to latest?

2.  Couple design deficiencies (Apache & Log4 logs are double logged), but 
deployed as-is until Engineering could fix deficiencies because I wanted to 
emulate existing Sysklog deployment.  Before fixing, I just need to understand 
if there's anything about my Rsyslog configuration that would make duplicate 
logging an issue when it was not an issue with SysKlog.

3.  The one major difference between Sysklog and Rsyslog is the use of TCP.  I 
know this trades performance for efficiency, but I don't know how to determine 
if this is the problem.  I don't see issues on the server side and even if 
there are problems, I have Rsyslog configured to queue locally if anything 
happens on the server side.  During the problem, there is no local queuing 
going on.  Are there any diagnostics I can pull to determine if remote syslog 
is the issue?

Below is my config file.  Is there anything in here that is a glaring issue?  
If not, My ideas are to:

1.  Upgrade, then retry.
2.  Remove duplication, then retry.
3.  Change from TCP back to UDP, then retry.
until I determine the source of the problem.

# Configuration File

# Provides kernel logging support (previously done by rklogd)
$ModLoad imklog
# Provides support for local system logging (e.g. via logger command)
$ModLoad imuxsock

# Max Message Size (default 2k)
$MaxMessageSize 8192

# Must listen on localhost for Log4j.  Need engineering to change this
$ModLoad imudp
$UDPServerAddress 127.0.0.1
$UDPServerRun 514

# Use traditional timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# ownership/permissions
$umask 0000
$FileOwner root
$FileGroup wheel
$FileCreateMode 0640

# include directory for breaking directives into separate files (future)
$IncludeConfig /etc/rsyslog.d/

# forward to remote host, queueing to local disk if host is down and memory 
fills up
# work (spool) files directory
$WorkDirectory /var/log/rsyslog 

# loghost1
# in-memory queue; set for asynchronous processing (?)
$ActionQueueType LinkedList
# failover queue filename; also enables disk mode
$ActionQueueFileName failqueue-loghost1
# infinite retries on insert failure
$ActionResumeRetryCount -1
# save in-memory data if rsyslog shuts down
$ActionQueueSaveOnShutdown on
# remote logging of everything
*.*       @@loghost1:5140

# loghost2
# in-memory queue; set for asynchronous processing (?)
$ActionQueueType LinkedList
# failover queue filename; also enables disk mode
$ActionQueueFileName failqueue-loghost2
# infinite retries on insert failure
$ActionResumeRetryCount -1
# save in-memory data if rsyslog shuts down
$ActionQueueSaveOnShutdown on
# remote logging of everything
*.*       @@loghost2:5140

# Log Filtering Rules

# Emergency Messages 
if $syslogseverity <= '0' then *
if $syslogseverity <= '0' then /var/log/messages
if $syslogseverity <= '0' then ~ 

# Apache
if $programname == 'logger' and ($msg contains 'access_log' or $msg contains 
'cookie_log' or $msg contains 'r
equest_log') then /var/log/http
& ~ 
if $programname == 'httpd' and ($syslogfacility-text == 'local5' or 
$syslogfacility-text == 'local6') then /var/log/http_err
& ~ 

# Log4j (App Logs)
if $programname == 'com.redacted.infra.syslog.Log4jSystemLogger' then 
/var/log/log4j
& ~ 

# Kernel & IPTables
if $programname == 'kernel' and ($msg contains 'LOGACCEPT' or $msg contains 
'LOGDROP') then /var/log/iptables
& ~ 

# Auth Messages
if $syslogfacility-text == 'auth' or $syslogfacility-text == 'authpriv' then 
/var/log/secure
& ~ 

# Mail
if $syslogfacility-text == 'mail' then /var/log/maillog
& ~ 

# Catchall for remaining log messages
*.* /var/log/messages


_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to