Use this documentation with care! It describes
the outdated version 7, which was actively
developed around 2014 and is considered dead by the
This documentation reflects the latest update of the v7-stable branch. It describes the 7.6.8 version, which was never released. As such, it contains some content that does not apply to any released version.
To obtain the doc that properly matches your installed v7 version, obtain the doc set from your distro. Each version of rsyslog contained the version that exactly matches it.
As general advise, it is strongly suggested to upgrade to the current version supported by the rsyslog project. The current version can always be found on the right-hand side info box on the rsyslog web site.
Note that there is only limited rsyslog community support available for the outdated v7 version (officially we do not support it at all, but we usually are able to answer simple questions). If you need to stick with v7, it probably is best to ask your distribution for support.
ommysql: MySQL Database Output Module¶
Module Name: ommysql
Author:Michael Meckelein (Initial Author) / Rainer Gerhards <email@example.com>
This module provides native support for logging to MySQL databases. It offers superior performance over the more generic omlibdbi module.
ommysql mostly uses the “old style” configuration, with almost everything on the action line itself. A few newer features are being migrated to the new style-config directive configuration system.
- $ActionOmmysqlServerPort <port> Permits to select a non-standard port for the MySQL server. The default is 0, which means the system default port is used. There is no need to specify this directive unless you know the server is running on a non-standard listen port.
- $OmMySQLConfigFile <file name> Permits the selection of an optional MySQL Client Library configuration file (my.cnf) for extended configuration functionality. The use of this configuration directive is necessary only if you have a non-standard environment or if fine-grained control over the database connection is desired.
- $OmMySQLConfigSection <string> Permits the selection of the section within the configuration file specified by the $OmMySQLConfigFile directive. This will likely only be used where the database administrator provides a single configuration file with multiple profiles. This configuration directive is ignored unless $OmMySQLConfigFile is also used in the rsyslog configration file. If omitted, the MySQL Client Library default of “client” will be used.
- Action parameters: :ommysql:database-server,database-name,database-userid,database-password All parameters should be filled in for a successful connect.
Note rsyslog contains a canned default template to write to the MySQL database. It works on the MonitorWare schema. This template is:
$template tpl,”insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (‘%msg%’, %syslogfacility%, ‘%HOSTNAME%’, %syslogpriority%, ‘%timereported:::date-mysql%’, ‘%timegenerated:::date-mysql%’, %iut%, ‘%syslogtag%’)”,SQL
As you can see, the template is an actual SQL statement. Note the “,SQL” option: it tells the template processor that the template is used for SQL processing, thus quote characters are quoted to prevent security issues. You can not assign a template without “,SQL” to a MySQL output action.
If you would like to change fields contents or add or delete your own fields, you can simply do so by modifying the schema (if required) and creating your own custom template.
The following sample writes all syslog messages to the database “syslog_db” on mysqlserver.example.com. The server is being accessed under the account of “user” with password “pwd”.
$ModLoad ommysql $ActionOmmysqlServerPort 1234 # use non-standard port *.* :ommysql:mysqlserver.example.com,syslog_db,user,pwd
This documentation is part of the rsyslog project.