aboutsummaryrefslogtreecommitdiffstats
path: root/roles/rsyslog_server/templates/etc/rsyslog.conf.j2
diff options
context:
space:
mode:
Diffstat (limited to 'roles/rsyslog_server/templates/etc/rsyslog.conf.j2')
-rw-r--r--roles/rsyslog_server/templates/etc/rsyslog.conf.j297
1 files changed, 97 insertions, 0 deletions
diff --git a/roles/rsyslog_server/templates/etc/rsyslog.conf.j2 b/roles/rsyslog_server/templates/etc/rsyslog.conf.j2
new file mode 100644
index 0000000..174e966
--- /dev/null
+++ b/roles/rsyslog_server/templates/etc/rsyslog.conf.j2
@@ -0,0 +1,97 @@
+module(load="imklog")
+module(load="imuxsock" SysSock.name="/run/systemd/journal/syslog")
+module(load="imudp")
+module(load="imtcp")
+module(load="imfile")
+module(load="imrelp" tls.tlslib="openssl")
+
+global(
+ workDirectory="/var/lib/rsyslog"
+ parser.escapecontrolcharactertab="off"
+)
+
+module(load="builtin:omfile"
+ template="RSYSLOG_TraditionalFileFormat"
+ dirCreateMode="{{ rsyslog_dir_mode }}"
+ dirOwner="{{ rsyslog_owner }}"
+ dirGroup="{{ rsyslog_group }}"
+ fileCreateMode="{{ rsyslog_file_mode }}"
+ fileOwner="{{ rsyslog_owner }}"
+ fileGroup="{{ rsyslog_group }}")
+
+include(file="/etc/rsyslog.d/*.conf" mode="optional")
+
+template(name="RemoteLogSavePath" type="list") {
+ constant(value="{{ rsyslog_storage_dir }}/")
+ property(name="timegenerated" dateFormat="year") constant(value="/")
+ property(name="timegenerated" dateFormat="month") constant(value="/")
+ property(name="timegenerated" dateFormat="day") constant(value="/")
+ property(name="fromhost" caseConversion="lower") constant(value="/")
+ property(name="$.filename" caseConversion="lower")
+}
+
+template(name="HttpdAccessLog_FileFormat" type="string"
+ string="%HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
+)
+
+ruleset(name="RemoteLog") {
+ # default filename
+ set $.filename = "messages.log";
+
+ # drop any debug messages
+ if not prifilt("*.info") then {
+ stop
+ }
+
+ # program-specific overrides
+ if $syslogtag == {{ (rsyslog_log_by_tag + rsyslog_access_log_by_tag) | to_json }} then {
+ if $syslogtag == {{ rsyslog_log_by_tag | to_json }} then {
+ set $.filename = $syslogtag & ".log";
+ } else if prifilt("*.=info") then {
+ set $.filename = $syslogtag & "-access.log";
+ } else {
+ set $.filename = $syslogtag & "-error.log";
+ }
+
+ action(type="omfile"
+ template="HttpdAccessLog_FileFormat"
+ dynaFile="RemoteLogSavePath"
+ dynaFileCacheSize="1024"
+ asyncWriting="on"
+ flushOnTXEnd="off"
+ flushInterval="1"
+ ioBufferSize="64k")
+ } else {
+ action(type="omfile"
+ template="RSYSLOG_FileFormat"
+ dynaFile="RemoteLogSavePath"
+ dynaFileCacheSize="1024"
+ asyncWriting="on"
+ flushOnTXEnd="off"
+ flushInterval="1"
+ ioBufferSize="64k")
+ }
+}
+
+input(type="imtcp" port="{{ rsyslog_port }}" ruleset="RemoteLog")
+input(type="imudp" port="{{ rsyslog_port }}" ruleset="RemoteLog")
+input(type="imrelp" port="{{ rsyslog_relp_port }}" ruleset="RemoteLog")
+input(type="imrelp"
+ port="{{ rsyslog_relp_tls_port }}"
+ tls="on"
+ tls.caCert="{{ rsyslog_certificate_ca_path }}"
+ tls.myCert="{{ rsyslog_certificate_path }}"
+ tls.myPrivKey="{{ rsyslog_certificate_key_path }}"
+ tls.authMode="name"
+ tls.permittedPeer=["{{ rsyslog_permitted_peers | join('", "') }}"]
+ ruleset="RemoteLog")
+
+
+# EL defaults
+*.info;mail.none;authpriv.none;cron.none /var/log/messages
+authpriv.* /var/log/secure
+mail.* -/var/log/maillog
+cron.* /var/log/cron
+*.emerg :omusrmsg:*
+uucp,news.crit /var/log/spooler
+local7.* /var/log/boot.log