rsyslogd(8) — Linux manual page


RSYSLOGD(8)            Linux System Administration           RSYSLOGD(8)

NAME         top

       rsyslogd - reliable and extended syslogd

SYNOPSIS         top

       rsyslogd [ -d ] [ -D ] [ -f config file ] [ -i pid file ] [ -n ]
       [ -N level ] [ -o fullconf ] [ -C ] [ -v ]

DESCRIPTION         top

       Rsyslogd is a system utility providing support for message
       logging.  Support of both internet and unix domain sockets
       enables this utility to support both local and remote logging.

       Note that this version of rsyslog ships with extensive
       documentation in HTML format.  This is provided in the ./doc
       subdirectory and probably in a separate package if you installed
       rsyslog via a packaging system.  To use rsyslog's advanced
       features, you need to look at the HTML documentation, because the
       man pages only covers basic aspects of operation.  For details
       and configuration examples, see the rsyslog.conf (5) man page and
       the online documentation at

       Rsyslogd(8) is derived from the sysklogd package which in turn is
       derived from the stock BSD sources.

       Rsyslogd provides a kind of logging that many modern programs
       use.  Every logged message contains at least a time and a
       hostname field, normally a program name field, too, but that
       depends on how trusty the logging program is. The rsyslog package
       supports free definition of output formats via templates. It also
       supports precise timestamps and writing directly to databases. If
       the database option is used, tools like phpLogCon can be used to
       view the log data.

       While the rsyslogd sources have been heavily modified a couple of
       notes are in order.  First of all there has been a systematic
       attempt to ensure that rsyslogd follows its default, standard BSD
       behavior. Of course, some configuration file changes are
       necessary in order to support the template system. However,
       rsyslogd should be able to use a standard syslog.conf and act
       like the original syslogd. However, an original syslogd will not
       work correctly with a rsyslog-enhanced configuration file. At
       best, it will generate funny looking file names.  The second
       important concept to note is that this version of rsyslogd
       interacts transparently with the version of syslog found in the
       standard libraries.  If a binary linked to the standard shared
       libraries fails to function correctly we would like an example of
       the anomalous behavior.

       The main configuration file /etc/rsyslog.conf or an alternative
       file, given with the -f option, is read at startup.  Any lines
       that begin with the hash mark (``#'') and empty lines are
       ignored.  If an error occurs during parsing the error element is
       ignored. It is tried to parse the rest of the line.

OPTIONS         top

       -D     Runs the Bison config parser in debug mode. This may help
              when hard to find syntax errors are reported. Please note
              that the output generated is deeply technical and
              originally targeted towards developers.

       -d     Turns on debug mode. See the DEBUGGING section for more

       -f config file
              Specify an alternative configuration file instead of
              /etc/rsyslog.conf, which is the default.

       -i pid file
              Specify an alternative pid file instead of the default
              one.  This option must be used if multiple instances of
              rsyslogd should run on a single machine. To disable
              writing a pid file, use the reserved name "NONE" (all
              upper case!), so "-iNONE".

       -n     Avoid auto-backgrounding.  This is needed especially if
              the rsyslogd is started and controlled by init(8).

       -N  level
              Do a config check. Do NOT run in regular mode, just check
              configuration file correctness.  This option is meant to
              verify a config file. To do so, run rsyslogd interactively
              in foreground, specifying -f <config-file> and -N level.
              The level argument modifies behaviour. Currently, 0 is the
              same as not specifying the -N option at all (so this makes
              limited sense) and 1 actually activates the code. Later,
              higher levels will mean more verbosity (this is a forward-
              compatibility option).

       -o  fullconf
              Generates a consolidated config file fullconf that
              contains all of rsyslog's configuration in a single file.
              Include files are exploded into that file in exactly the
              way rsyslog sees them.  This option is useful for
              troubleshooting, especially if problems with the order of
              action processing is suspected. It may also be used to
              check for "unexepectedly" included config content.

       -C     This prevents rsyslogd from changing to the root
              directory. This is almost never a good idea in production
              use. This option was introduced in support of the internal

       -v     Print version and exit.

SIGNALS         top

       Rsyslogd reacts to a set of signals.  You may easily send a
       signal to rsyslogd using the following:

              kill -SIGNAL $(cat /var/run/

       Note that -SIGNAL must be replaced with the actual signal you are
       trying to send, e.g. with HUP. So it then becomes:

              kill -HUP $(cat /var/run/

       HUP    This lets rsyslogd perform close all open files.

       TERM ,  INT ,  QUIT
              Rsyslogd will die.

       USR1   Switch debugging on/off.  This option can only be used if
              rsyslogd is started with the -d debug option.

       CHLD   Wait for children if some were born, because of wall'ing


       There is the potential for the rsyslogd daemon to be used as a
       conduit for a denial of service attack.  A rogue program(mer)
       could very easily flood the rsyslogd daemon with syslog messages
       resulting in the log files consuming all the remaining space on
       the filesystem.  Activating logging over the inet domain sockets
       will of course expose a system to risks outside of programs or
       individuals on the local machine.

       There are a number of methods of protecting a machine:

       1.     Implement kernel firewalling to limit which hosts or
              networks have access to the 514/UDP socket.

       2.     Logging can be directed to an isolated or non-root
              filesystem which, if filled, will not impair the machine.

       3.     The ext2 filesystem can be used which can be configured to
              limit a certain percentage of a filesystem to usage by
              root only.  NOTE that this will require rsyslogd to be run
              as a non-root process.  ALSO NOTE that this will prevent
              usage of remote logging on the default port since rsyslogd
              will be unable to bind to the 514/UDP socket.

       4.     Disabling inet domain sockets will limit risk to the local

   Message replay and spoofing
       If remote logging is enabled, messages can easily be spoofed and
       replayed.  As the messages are transmitted in clear-text, an
       attacker might use the information obtained from the packets for
       malicious things. Also, an attacker might replay recorded
       messages or spoof a sender's IP address, which could lead to a
       wrong perception of system activity. These can be prevented by
       using GSS-API authentication and encryption. Be sure to think
       about syslog network security before enabling it.

DEBUGGING         top

       When debugging is turned on using the -d option, rsyslogd
       produces debugging information according to the RSYSLOG_DEBUG
       environment variable and the signals received. When run in
       foreground, the information is written to stdout. An additional
       output file can be specified using the RSYSLOG_DEBUGLOG
       environment variable.

FILES         top

              Configuration file for rsyslogd.  See rsyslog.conf(5) for
              exact information.
              The Unix domain socket to from where local syslog messages
              are read.
              The file containing the process id of rsyslogd.
              Default directory for rsyslogd modules. The prefix is
              specified during compilation (e.g. /usr/local).

ENVIRONMENT         top

              Controls runtime debug support. It contains an option
              string with the following options possible (all are case

              Debug  Turns on debugging and prevents forking. This is
                     processed earlier in the startup than command line
                     options (i.e. -d) and as such enables earlier
                     debugging output. Mutually exclusive with
                     Enables debugging but turns off debug output. The
                     output can be toggled by sending SIGUSR1. Mutually
                     exclusive with Debug.
                     Print out the logical flow of functions (entering
                     and exiting them)
                     Specifies which files to trace LogFuncFlow. If not
                     set (the default), a LogFuncFlow trace is provided
                     for all files. Set to limit it to the files
                     specified.FileTrace may be specified multiple
                     times, one file each (e.g. export
                     RSYSLOG_DEBUG="LogFuncFlow FileTrace=vm.c
                     Print the content of the debug function database
                     whenever debug information is printed (e.g. abort
                     Print all debug information immediately before
                     rsyslogd exits (currently not implemented!)
                     Print mutex action as it happens. Useful for
                     finding deadlocks and such.
                     Do not prefix log lines with a timestamp (default
                     is to do that).
                     Do not emit debug messages to stdout. If
                     RSYSLOG_DEBUGLOG is not set, this means no messages
                     will be displayed at all.
              Help   Display a very short list of commands - hopefully a
                     life saver if you can't access the documentation...

              If set, writes (almost) all debug message to the specified
              log file in addition to stdout.
              Provides the default directory in which loadable modules

BUGS         top

       Please review the file BUGS for up-to-date information on known
       bugs and annoyances.

Further Information         top

       Please visit for additional
       information, tutorials and a support forum.

SEE ALSO         top

       rsyslog.conf(5), logger(1), syslog(2), syslog(3), services(5),


       rsyslogd is derived from sysklogd sources, which in turn was
       taken from the BSD sources. Special thanks to Greg Wettstein
       ( and Martin Schulze ( for
       the fine sysklogd package.

       Rainer Gerhards
       Adiscon GmbH
       Grossrinderfeld, Germany

COLOPHON         top

       This page is part of the rsyslog (reliable and exitended syslog)
       project.  Information about the project can be found at 
       ⟨⟩.  If you have a bug report for this
       manual page, send it to  This page was
       obtained from the project's upstream Git repository
       ⟨⟩ on 2024-06-14.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2024-04-29.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

Version 8.1905.0               28 May 2014                   RSYSLOGD(8)

Pages that refer to this page: pmdarsyslog(1)rsyslog.conf(5)anacron(8)rsyslogd(8)