PostgreSQL Database Output Module (ompgsql)¶
Module Name: |
ompgsql |
Author: |
|
Available: |
8.32+ |
Purpose¶
This module provides native support for logging to PostgreSQL databases. It’s an alternative (with potentially superior performance) to the more generic omlibdbi module.
Configuration Parameters¶
Note
Parameter names are case-insensitive.
Action Parameters¶
Conninfo¶
type |
default |
mandatory |
|
---|---|---|---|
word |
none |
no |
none |
The URI or set of key-value pairs that describe how to connect to the PostgreSQL
server. This takes precedence over server
, port
, db
, and pass
parameters. Required if server
and db
are not specified.
The format corresponds to standard PostgreSQL connection string format.
Server¶
type |
default |
mandatory |
|
---|---|---|---|
word |
none |
no |
none |
The hostname or address of the PostgreSQL server. Required if conninfo
is
not specified.
Port/Serverport¶
type |
default |
mandatory |
|
---|---|---|---|
integer |
5432 |
no |
none |
The IP port of the PostgreSQL server.
db¶
type |
default |
mandatory |
|
---|---|---|---|
word |
none |
no |
none |
The multi-tenant database name to INSERT
rows into. Required if conninfo
is not specified.
User/UID¶
type |
default |
mandatory |
|
---|---|---|---|
word |
postgres |
no |
none |
The username to connect to the PostgreSQL server with.
Pass/PWD¶
type |
default |
mandatory |
|
---|---|---|---|
word |
postgres |
no |
none |
The password to connect to the PostgreSQL server with.
Template¶
type |
default |
mandatory |
|
---|---|---|---|
word |
none |
no |
none |
The template name to use to INSERT
rows into the database with. Valid SQL
syntax is required, as the module does not perform any insertion statement
checking.
Examples¶
Example 1¶
A Basic Example using the internal PostgreSQL template.
# load module
module(load="ompgsql")
action(type="ompgsql" server="localhost"
user="rsyslog" pass="test1234"
db="syslog")
Example 2¶
A Basic Example using the internal PostgreSQL template and connection using URI.
# load module
module(load="ompgsql")
action(type="ompgsql"
conninfo="postgresql://rsyslog:test1234@localhost/syslog")
Example 3¶
A Basic Example using the internal PostgreSQL template and connection with TLS using URI.
# load module
module(load="ompgsql")
action(type="ompgsql"
conninfo="postgresql://rsyslog:test1234@postgres.example.com/syslog?sslmode=verify-full&sslrootcert=/path/to/cert")
Example 4¶
A Templated example.
template(name="sql-syslog" type="list" option.stdsql="on") {
constant(value="INSERT INTO SystemEvents (message, timereported) values ('")
property(name="msg")
constant(value="','")
property(name="timereported" dateformat="pgsql" date.inUTC="on")
constant(value="')")
}
# load module
module(load="ompgsql")
action(type="ompgsql" server="localhost"
user="rsyslog" pass="test1234"
db="syslog"
template="sql-syslog" )
Example 5¶
An action queue and templated example.
template(name="sql-syslog" type="list" option.stdsql="on") {
constant(value="INSERT INTO SystemEvents (message, timereported) values ('")
property(name="msg")
constant(value="','")
property(name="timereported" dateformat="pgsql" date.inUTC="on")
constant(value="')")
}
# load module
module(load="ompgsql")
action(type="ompgsql" server="localhost"
user="rsyslog" pass="test1234"
db="syslog"
template="sql-syslog"
queue.size="10000" queue.type="linkedList"
queue.workerthreads="5"
queue.workerthreadMinimumMessages="500"
queue.timeoutWorkerthreadShutdown="1000"
queue.timeoutEnqueue="10000")
Building¶
To compile Rsyslog with PostgreSQL support you will need to:
install libpq and libpq-dev packages, check your package manager for the correct name.
set –enable-pgsql switch on configure.
Support: rsyslog Assistant | GitHub Discussions | GitHub Issues: rsyslog source project
Contributing: Source & docs: rsyslog source project
© 2008–2025 Rainer Gerhards and others. Licensed under the Apache License 2.0.