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.
See also
Help with configuring/using Rsyslog:
Mailing list - best route for general questions
GitHub: rsyslog source project - detailed questions, reporting issues that are believed to be bugs with
Rsyslog
See also
Contributing to Rsyslog:
Source project: rsyslog project README.
Documentation: rsyslog-doc project README
Copyright 2008-2023 Rainer Gerhards (Großrinderfeld), and Others.