RSyslog - Features
This page lists both current features as well as those being considered
for future versions of rsyslog. If you think a feature is missing, drop
Rainer a note. Rsyslog is a vital
project. Features are added each few days. If you would like to keep up of what
is going on, you can also subscribe to the rsyslog mailing list.
Current Features
- native support for writing to MySQL databases
-
native support for writing to Postgres databases
- support for (plain) tcp
based syslog - much better reliability
- support for sending and receiving
compressed syslog messages
- ability to configure backup syslog/database
servers - if the primary fails, control is switched to a prioritized list of
backups
- support for receiving messages via
reliable
RFC 3195 delivery
- ability to generate file names and directories (log targets)
dynamically, based on many different properties
- control of log output format,
including ability to present channel and priority as visible log data
- good timestamp format control; at a minimum, ISO 8601/RFC 3339
second-resolution UTC zone
- ability to reformat message contents and work with substrings
- support for
log files larger than 2gb
- support for file size limitation and automatic
rollover command execution
- support for running multiple rsyslogd
instances on a single machine
- support for
ssl-protected syslog (via stunnel)
- ability to filter on any part of
the message, not just facility and severity
- ability to use regular
expressions in filters
- support for discarding
messages based on filters
- ability to execute shell scripts on received
messages
- control of whether the local hostname or the hostname of the
origin of the data is shown as the hostname in the output
- ability to
preserve the original hostname in NAT environments and relay chains
- ability to limit the allowed network senders
- powerful BSD-style
hostname and program name blocks for easy multi-host support
-
multi-threaded (is
this important? why?)
- very
experimental and volatile support for syslog-protocol
compliant messages (it is volatile because standardization is currently
underway and this is a proof-of-concept implementation to aid this effort)
-
experimental support for syslog-transport-tls based framing on syslog/tcp
connections
-
a copy of klogd.c has been included under the name of rklogd for those Linux
systems that need one. So rsyslog is a full replacement for the sysklogd
package
-
support for IPv6
-
ability to control repeated line reduction ("last message repeated n times")
on a per selector-line basis
-
supports sub-configuration files, which can be automatically read from
directories. Includes are specified in the main configuration file
-
supports multiple actions per selector/filter condition
-
MySQL and Postgres SQL functionality as a dynamically loadable plug-in
-
modular design for outputs - easily extensible
Upcoming Features
The list below is something like a repository of ideas we'd like to
implement. Features on this list are typically NOT scheduled for immediate
inclusion. We maintain a
feature
request tracker at sourceforge.net. This tracker has things typically within
reach of implementation. Users are encouraged to submit feature requests there
(or via our forums). If we like them but they look quite long-lived (aka "not
soon to be implemented"), they will possibly be migrated to this list here and
at some time moved back to the sourceforge tracker.
- create a plug-in-interface - we are very close to this. A neat interface is
already used internally for output modules and the MySQL module already
works as a plug-in. However, no interface definition is yet formally
published.
- implement native email-functionality in
selector (probably best done as a plug-in)
- port it to more *nix variants
(eg AIX and HP UX) - this needs volunteers with access to those machines and
knowledge
- provide an on-disk queue for syslog messages; should be
combined with reliable delivery to the next hop
- support for native SSL enryption of plain tcp syslog sessions. This will
most probably happen based on syslog-transport-tls.
- even more enhanced multi-threading,
with a message queue for each action (when implementing this, search
for CHECKMULTIQUEUE comments in the source - they already contain hints of
what to look at). Some detail information on this can already be found in
Rainer's blog.
- pcre filtering - maybe (depending on feedback) - simple regex already
partly added. So far, this seems sufficient so that there is no urgent need
to do pcre
- support for
RFC 3195
as a sender - this is currently unlikely to happen, because there is no real
demand for it. Any work on RFC 3195 has been suspend until we see some real
interest in it. It is probably much better to use TCP-based syslog,
which is interoperable with a large number of applications. You may also
read my blog post on the future of liblogging, which contains interesting
information about the
future of RFC 3195 in rsyslog.
To see when each feature was added, see the
rsyslog change log (online
only).