diff --git a/defaults/main.yml b/defaults/main.yml index 28b4c64..bd6f8d2 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -22,6 +22,8 @@ rsyslog_server_package_state: "latest" rsyslog_server_spool_directory: /var/spool/rsyslog rsyslog_server_storage_directory: /var/log/rsyslog rsyslog_server_logrotation_window: 14 #Number of days to keep logfiles +rsyslog_server_storage_policy: "per_host" ## "per_host" stores logs in a sub-directory per host, "per_program" stores per program + # provides UDP syslog reception rsyslog_server_udp_reception: true diff --git a/releasenotes/notes/rsyslog_server_storage_policy-1dcdd5630acdeb79.yaml b/releasenotes/notes/rsyslog_server_storage_policy-1dcdd5630acdeb79.yaml new file mode 100644 index 0000000..e61d13d --- /dev/null +++ b/releasenotes/notes/rsyslog_server_storage_policy-1dcdd5630acdeb79.yaml @@ -0,0 +1,5 @@ +--- +features: + - Added storage policy so that deployers can override how to store the logs. + ``per_host`` stores logs in a sub-directory per host. ``per_program`` stores logs + in a single file per application which facilitates troubleshooting easy. diff --git a/templates/os_aggregate_storage.j2 b/templates/os_aggregate_storage.j2 index e0144b7..b131737 100644 --- a/templates/os_aggregate_storage.j2 +++ b/templates/os_aggregate_storage.j2 @@ -1,4 +1,9 @@ +{% if rsyslog_server_storage_policy == "per_host" %} {{ rsyslog_server_storage_directory }}/**/*.log +{% endif %} +{% if rsyslog_server_storage_policy == "per_program" %} +{{ rsyslog_server_storage_directory }}/*.log +{% endif %} { copytruncate weekly diff --git a/templates/rsyslog.conf.j2 b/templates/rsyslog.conf.j2 index 84c66cb..7652ad8 100644 --- a/templates/rsyslog.conf.j2 +++ b/templates/rsyslog.conf.j2 @@ -31,7 +31,12 @@ $WorkDirectory {{ rsyslog_server_spool_directory }} # Log all remote messages into a sub directory +{% if rsyslog_server_storage_policy == "per_host" %} template(name="DDF" type="string" string="{{ rsyslog_server_storage_directory }}/%hostname%/%programname%.log") +{% endif %} +{% if rsyslog_server_storage_policy == "per_program" %} +template(name="DDF" type="string" string="{{ rsyslog_server_storage_directory }}/%programname%.log") +{% endif %} ruleset(name="remote"){ *.* -?DDF }