Merge commit 'origin/template' into log
[matthijs/servers/drsnuggles.git] / etc / rsyslog.conf
index 5ad1ede7ce0f4a0056afdf80b1e221be77d1c46a..b6ce47bec4c1c77985ed57b2b81334d7a657dca6 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,28 +32,64 @@ $FileGroup adm
 $FileCreateMode 0640
 $DirCreateMode 0755
 
+# Store any queues here. This directory is not created automatically, so it
+# must already exist!
+$WorkDirectory /var/spool/rsyslog
+
+# Use a (disk-assisted) main queue
+# Use a linked list for queueing
+$MainMsgQueueType LinkedList
+# Name to use for the queue file
+$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 ####
+########################
 
-###############
-#### RULES ####
-###############
+# Log lines received from other servers (as well as our own logs) centrally.
+$template FacilityLog,"/data/log/rsyslog/%hostname%/facilities/%syslogfacility-text%.log"
+$template SeverityLog,"/data/log/rsyslog/%hostname%/severities/%syslogseverity-text%.log"
+$template AppLog,"/data/log/rsyslog/%hostname%/apps/%app-name%.log"
+$template AllLog,"/data/log/rsyslog/all.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
+*.*                            ?FacilityLog;LogFormat
+*.*                            ?SeverityLog;LogFormat
+*.*                            ?AppLog;LogFormat
+# Log all entries in a single file, which is meant to be parsed by logcheck
+# (hence the traditional format).
+*.*                            ?AllLog;RSYSLOG_TraditionalFileFormat
+
+#######################
+#### 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/auth.log
-cron.*                         -/var/log/user.log
-daemon.*                       -/var/log/daemon.log
-kern.*                         -/var/log/kern.log
-lpr.*                          -/var/log/lpr.log
-mail.*                         -/var/log/mail.log
-user.*                         -/var/log/user.log
+auth,authpriv.*                        /var/log/rsyslog/auth.log
+cron.*                         -/var/log/rsyslog/user.log
+daemon.*                       -/var/log/rsyslog/daemon.log
+kern.*                         -/var/log/rsyslog/kern.log
+lpr.*                          -/var/log/rsyslog/lpr.log
+mail.*                         -/var/log/rsyslog/mail.log
+user.*                         -/var/log/rsyslog/user.log
 local0,local1,local2,\
        local3,local4,local5,\
-       local6,local7.*         -/var/log/local.log
+       local6,local7.*         -/var/log/rsyslog/local.log
 
 # Omitted facilities: syslog, news, uucp, ftp
 
@@ -62,14 +100,14 @@ local0,local1,local2,\
 *.*;\
        *.!=debug;\
        auth,authpriv.none;\
-       mail.none               -/var/log/syslog
+       mail.none               -/var/log/rsyslog/syslog
 
 # Debug entries end up in debug.log as well as the corresponding facility log
 # above (except for auth and mail, which only end up in the facility logs for
 # privacy reasons).
 *.=debug;\
        auth,authpriv.none;\
-       news.none;mail.none     -/var/log/debug.log
+       news.none;mail.none     -/var/log/rsyslog/debug.log
 #
 # Emergencies are sent to everybody logged in.
 #