TwitterFacebookGoogle

PostgreSQL Database Output Module (ompgsql)

Module Name:ompgsql
Author:Rainer Gerhards and Dan Molik
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

Server

typedefaultmandatoryobsolete legacy directive
wordnoneyesnone

The hostname or address of the PostgreSQL server.

Port/Serverport

typedefaultmandatoryobsolete legacy directive
integer5432nonone

The IP port of the PostgreSQL server.

db

typedefaultmandatoryobsolete legacy directive
wordnoneyesnone

The multi-tenant database name to INSERT rows into.

User/UID

typedefaultmandatoryobsolete legacy directive
wordpostgresnonone

The username to connect to the PostgreSQL server with.

Pass/PWD

typedefaultmandatoryobsolete legacy directive
wordpostgresnonone

The password to connect to the PostgreSQL server with.

Template

typedefaultmandatoryobsolete legacy directive
wordnonenonone

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 Templated example.

template(name="sql-syslog" type="list" option.sql="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 3

An action queue and templated example.

template(name="sql-syslog" type="list" option.sql="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
  • Stack Exchange (View, Ask) - experimental support from rsyslog community

See also

Contributing to Rsyslog:

© 2008-2019, `Rainer Gerhards and Others. This site uses the “better” theme for Sphinx.