rsyslog: Put host-specific logs in separate dir.
[matthijs/servers/drsnuggles.git] / etc / rsyslog.conf
index c6e706be16f977a902719e8b94f3c67036c3685c..54022c1c90d3ed19be6b41819b2ee97cf92e1269 100644 (file)
@@ -11,6 +11,8 @@
 $ModLoad imuxsock # provides support for local system logging
 $ModLoad immark   # provides --MARK-- message capability
 $MarkMessagePeriod  900 # mark messages appear every 15 Minutes
+$ModLoad imtcp
+$InputTCPServerRun 514 # Accept TCP connections on the default syslog port
 
 ###########################
 #### GLOBAL DIRECTIVES ####
@@ -30,11 +32,6 @@ $FileGroup adm
 $FileCreateMode 0640
 $DirCreateMode 0755
 
-#
-# Include all config files in /etc/rsyslog.d/
-#
-$IncludeConfig /etc/rsyslog.d/*.conf
-
 # Store any queues here. This directory is not created automatically, so it
 # must already exist!
 $WorkDirectory /var/spool/rsyslog
@@ -47,11 +44,47 @@ $MainMsgQueueFileName main
 # save in-memory data if rsyslog shuts down
 $MainMsgQueueSaveOnShutdown on
 
+#
+# Include all config files in /etc/rsyslog.d/
+#
+$IncludeConfig /etc/rsyslog.d/*.conf
+
+########################
+#### Remote logging ####
+########################
+
+# Log lines received from other servers (as well as our own logs) centrally.
+$template HostFacilityLog,"/data/log/rsyslog/hosts/%fromhost%/facilities/%syslogfacility-text%.log"
+$template HostSeverityLog,"/data/log/rsyslog/hosts/%fromhost%/severities/%syslogseverity-text%.log"
+$template HostAppLog,"/data/log/rsyslog/hosts/%fromhost%/apps/%app-name%.log"
+
+# Use a verbose logging format
+$template LogFormat, "%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag% %syslogfacility-text%.%syslogseverity-text%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
+
+# Log by facility, severity and appname
+*.*                            ?HostFacilityLog;LogFormat
+*.*                            ?HostSeverityLog;LogFormat
+*.*                            ?HostAppLog;LogFormat
+# Log all entries in a single file, which is meant to be parsed by logcheck
+# (hence the traditional format).
+*.*                            -/data/log/rsyslog/all.log;RSYSLOG_TraditionalFileFormat
+
+# Debugging format. Based on RSYSLOG_DebugFormat, available in later versions
+# of rsyslogd, with some variations.
+$template DebugFormat,"Debug line with all properties:\nFROMHOST: '%FROMHOST%', HOSTNAME: '%HOSTNAME%', PRI: %PRI%,\nsyslogtag '%syslogtag%', programname: '%programname%', APP-NAME: '%APP-NAME%', PROCID: '%PROCID%', MSGID: '%MSGID%',\nTIMESTAMP: '%TIMESTAMP%', STRUCTURED-DATA: '%STRUCTURED-DATA%', syslogtag: '%syslogtag%'\nmsg: '%msg%'\nescaped msg: '%msg:::drop-cc%'\nrawmsg: '%rawmsg%'\n\n"
+# Uncomment this to have detailed logging for debugging
+#*.*                           -/data/log/rsyslog/debug.log;DebugFormat
+
+
 #######################
 #### Local logging ####
 #######################
 
-#
+# Discard all log entries not locally generated. Newer versions of rsyslogd
+# have the $fromhost-ip property which can be checked against 127.0.0.1, which
+# is probably slightly more reliable, but this will work for now.
+if $fromhost != 'log' then ~
+
 # Log each facility into its own log
 auth,authpriv.*                        /var/log/rsyslog/auth.log
 cron.*                         -/var/log/rsyslog/user.log
@@ -85,19 +118,3 @@ local0,local1,local2,\
 # Emergencies are sent to everybody logged in.
 #
 *.emerg                                *
-
-########################
-#### Remote logging ####
-########################
-
-# Send all log entries to the log vserver, but queue them in memory as well as
-# on disk if needed.
-# Use a linked list for queueing
-$ActionQueueType LinkedList
-# Name to use for the queue file
-$ActionQueueFileName remote
-# infinite retries on insert failure
-$ActionResumeRetryCount -1
-# save in-memory data if rsyslog shuts down
-$ActionQueueSaveOnShutdown on
-*.*                            @@log;RSYSLOG_SyslogProtocol23Format