Rsyslog site configuration¶
rsyslog configuration files are created upon site configuration, through
invocation of the site-configure command.
This can be enabled through site settings by defining a rsyslog key,
e.g.:
rsyslog: {}
Note
See settings schema for further information about available configuration and their model.
The base rsyslog configuration is installed site-wise from a template (which may be overridden).
The default rsyslog configuration template provided by pglift assumes
the syslog_ident is set to postgresql-{version}-{name} (on the
postgresql.conf template). With the default template, logs are routed
on the programname which is equivalent to syslog_ident value.
This default template file contains:
$umask 0027
$FileCreateMode 0640
$FileOwner {user}
$FileGroup {group}
template (name="pglift_postgresql_template" type="string" string="{logpath}/%PROGRAMNAME%.log")
if (re_match($programname, "postgresql-.*")) then -?pglift_postgresql_template
&stop
And the default PostgreSQL configuration template file used to
automatically adjust the syslog_ident and the log_destination
looks like this:
log_destination = 'syslog'
syslog_ident = 'postgresql-{version}-{name}'
pglift users can always adapt those values (syslog_ident and rsyslog
routing rule based on programname), but they will have to override
both configuration templates (postgresql and rsyslog).
To use this plugin, it’s also required to set the log_destination
to syslog, otherwise PostgreSQL will not send the log to the
syslog server. This configuration item is configured with the correct
value when using the postgresql and rsyslog default templates provided
by pglift.
Running rsyslog is not handled by pglift, one may include pglift
rsyslog directory given by pglift site-settings -o json | jq
'.rsyslog.configdir in the global rsyslog configuration.