RSYSLOGD(8)
๐ธ RSYSLOGD(8) โ Linux System Administration ๐ธ
okay bestie, sit down, hydrate, because we're about to meet rsyslogd โ the "reliable and extended syslogd" ๐ she's the one logging all ur messages and she ate.
โจ NAME โจ
rsyslogd โ reliable and extended syslogd ๐ซถ
๐ SYNOPSIS ๐
rsyslogd [ -d ] [ -D ] [ -f config file ] [ -i pid file ] [ -n ] [ -N
level ] [ -o fullconf ] [ -C ] [ -v ]
๐ DESCRIPTION ๐
okay so rsyslogd is a system utility that provides support for message logging. The way she supports both internet and unix domain sockets means she can do local logging AND remote logging. versatile queen ๐
ngl bestie, this version of rsyslog ships with extensive documentation in HTML format. It's 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 literally need to look at the HTML docs, because the man pages only cover basic aspects of operation. For details and configuration examples, see the rsyslog.conf(5) man page and the online documentation at https://www.rsyslog.com/doc/ ๐โจ
rsyslogd(8) is derived from the sysklogd package which in turn is derived from the stock BSD sources. ancestry check passed ๐ฏ
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.confand act like the originalsyslogd. However, an originalsyslogdwill 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. resilient icon behavior โจ
๐ OPTIONS ๐
-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. so like, nerd territory, but useful when ur stuck.-dโ Turns on debug mode. See the DEBUGGING section for more information.-fconfig file โ Specify an alternative configuration file instead of/etc/rsyslog.conf, which is the default.-ipid 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 byinit(8).-Nlevel โ 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,0is the same as not specifying the-Noption at all (so this makes limited sense) and1actually activates the code. Later, higher levels will mean more verbosity (this is a forward-compatibility option).-ofullconf โ 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 ๐ (that typo is in the original, bestie, i do not make the rules ๐)-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 testbed.-vโ Print version and exit. bye bestie ๐
๐ฆ SIGNALS ๐ฆ
Rsyslogd reacts to a set of signals. You may easily send a signal to rsyslogd using the following:
kill -SIGNAL $(cat /var/run/rsyslogd.pid)
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/rsyslogd.pid)
HUPโ This lets rsyslogd perform close all open files.TERM,QUITโ Rsyslogd will die ๐.INTโ Rsyslogd will die ๐. This signal is only processed if rsyslogd was started with the-ddebug option, if theshutdown.enable.ctlcglobal config parameter is set, or if running as PID 1 (e.g. in a container).USR1โ Switch debugging on/off. This option can only be used if rsyslogd is started with the-ddebug option.CHLDโ Wait for children if some were born, because of wall'ing messages ๐ถ.
๐จ SECURITY THREATS ๐จ
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:
- Implement kernel firewalling to limit which hosts or networks have access to the
514/UDPsocket. - Logging can be directed to an isolated or non-root filesystem which, if filled, will not impair the machine.
- The
ext2filesystem 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 the514/UDPsocket. - Disabling inet domain sockets will limit risk to the local machine.
๐ 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. periodt.
๐ DEBUGGING ๐
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 ๐
/etc/rsyslog.confโ Configuration file forrsyslogd. Seersyslog.conf(5) for exact information./dev/logโ The Unix domain socket to from where local syslog messages are read./var/run/rsyslogd.pidโ The file containing the process id of rsyslogd.prefix/lib/rsyslogโ Default directory for rsyslogd modules. The prefix is specified during compilation (e.g./usr/local).
๐ ENVIRONMENT ๐
RSYSLOG_DEBUGโ Controls runtime debug support. It contains an option string with the following options possible (all are case insensitive):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 withDebugOnDemand.DebugOnDemandโ Enables debugging but turns off debug output. The output can be toggled by sendingSIGUSR1. Mutually exclusive withDebug.LogFuncFlowโ Print out the logical flow of functions (entering and exiting them)FileTraceโ Specifies which files to traceLogFuncFlow. If not set (the default), aLogFuncFlowtrace is provided for all files. Set to limit it to the files specified.FileTracemay be specified multiple times, one file each (e.g.export RSYSLOG_DEBUG="LogFuncFlow FileTrace=vm.c FileTrace=expr.c")PrintFuncDBโ Print the content of the debug function database whenever debug information is printed (e.g. abort case)!PrintAllDebugInfoOnExitโ Print all debug information immediately before rsyslogd exits (currently not implemented!)PrintMutexActionโ Print mutex action as it happens. Useful for finding deadlocks and such.NoLogTimeStampโ Do not prefix log lines with a timestamp (default is to do that).NoStdOutโ Do not emit debug messages to stdout. IfRSYSLOG_DEBUGLOGis 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...
RSYSLOG_DEBUGLOGโ If set, writes (almost) all debug message to the specified log file in addition to stdout.RSYSLOG_MODDIRโ Provides the default directory in which loadable modules reside.
๐ BUGS ๐
Please review the file BUGS for up-to-date information on known bugs and annoyances ๐
โญ Further Information โญ
Please visit https://www.rsyslog.com/doc/ for additional information, tutorials and a support forum.
๐ SEE ALSO ๐
rsyslog.conf(5), logger(1), syslog(2), syslog(3), services(5), savelog(8)
๐ซถ COLLABORATORS ๐ซถ
okay bestie, story time, because rsyslogd did NOT just spawn out of the void ๐ซ it has ancestry, and we are gonna respect it.
So like: rsyslogd is derived from the sysklogd sources, which in turn was taken from the BSD sources. Generational excellence fr fr, the family tree is giving legacy ๐
And a big special thank you to Greg Wettstein (greg@wind.enjellic.com) and Martin Schulze (joey@linux.de) for the fine sysklogd package. Not me tearing up over open source gratitude ๐ญ๐ they ate and left no crumbs.
๐ธ the icon himself
- Rainer Gerhards
- Adiscon GmbH
- Grossrinderfeld, Germany
rgerhards@adiscon.com
main character energy, honestly ๐
๐ฆ real talk: this is Version 8.2502.0, dated 18 February 2025, and yep, that's the RSYSLOGD(8) section of the manual โ thank you for coming to my ted talk, go configure your logging bestie โจ๐
๐ฆ where this page comes from
- nixos 26.05: rsyslog 8.2610.0
- nixpkgs unstable: rsyslog 8.2610.0
- opensuse-leap 16.0: rsyslog 8.2608.0-160000.1.1 ยท Apache-2.0 AND GPL-3.0-or-later
- opensuse-leap 16.0: rsyslog 8.2608.0-160000.1.1 ยท Apache-2.0 AND GPL-3.0-or-later
- opensuse-leap 16.0: rsyslog 8.2608.0-160000.1.1 ยท Apache-2.0 AND GPL-3.0-or-later
- opensuse-leap 16.0: rsyslog 8.2608.0-160000.1.1 ยท Apache-2.0 AND GPL-3.0-or-later
- ubuntu stonking: rsyslog 8.2608.0-4ubuntu3 ยท GPL-3.0-or-later AND Apache-2.0
- Copyright 2004-2014 Rainer Gerhards and Adiscon for the rsyslog modifications
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms