Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
RSYSLOGD(8)		   Linux System Administration		     RSYSLOGD(8)

NAME
     rsyslogd - reliable and extended syslogd

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

DESCRIPTION
     Rsyslogd  is  a system utility providing support for message logging.  Sup-
     port of both internet and unix domain sockets enables this utility to  sup-
     port 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  on-
     line 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.

     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 tem-
     plates. It also supports precise timestamps and writing directly  to  data-
     bases.  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 con-
     figuration file changes are necessary in order to support the template sys-
     tem. However, rsyslogd should be able to use a standard syslog.conf and act
     like the original syslogd. However, an original syslogd will not work  cor-
     rectly  with a rsyslog-enhanced configuration file. At best, it will gener-
     ate 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 anom-
     alous behavior.

     The main configuration file /usr/local/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
     -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 gen-
	    erated is deeply technical and originally targeted towards	develop-
	    ers.

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

     -f config file
	    Specify  an  alternative  configuration  file  instead  of	/usr/lo-
	    cal/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 configura-
	    tion  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  behav-
	    iour.  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  intro-
	    duced in support of the internal testbed.

     -v     Print version and exit.

SIGNALS
     Rsyslogd reacts to a set of signals.  You may easily send a signal to rsys-
     logd 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 -d debug option, if the shutdown.enable.ctlc global
	    config parameter is set, or if running as PID  1  (e.g.  in  a  con-
	    tainer).

     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 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 consum-
     ing all the remaining space on the filesystem.  Activating logging over the
     inet domain sockets will of course expose a system to risks outside of pro-
     grams 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 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  at-
     tacker 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 sys-
     log network security before enabling it.

DEBUGGING
     When  debugging  is turned on using the -d option, rsyslogd produces debug-
     ging 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_DEBU-
     GLOG environment variable.

FILES
     /usr/local/etc/rsyslog.conf
	    Configuration file for rsyslogd.  See rsyslog.conf(5) for exact  in-
	    formation.
     /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 dur-
	    ing 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 exclu-
		   sive with DebugOnDemand.
	    DebugOnDemand
		   Enables debugging but turns off debug output. The output  can
		   be toggled by sending SIGUSR1. Mutually exclusive with Debug.
	    LogFuncFlow
		   Print out the logical flow of functions (entering and exiting
		   them)
	    FileTrace
		   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_DE-
		   BUG="LogFuncFlow FileTrace=vm.c FileTrace=expr.c"
	    PrintFuncDB
		   Print the content of the debug function database whenever de-
		   bug 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  dead-
		   locks and such.
	    NoLogTimeStamp
		   Do  not  prefix  log lines with a timestamp (default is to do
		   that).
	    NoStdOut
		   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...

     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, tuto-
     rials and a support forum.

SEE ALSO
     rsyslog.conf(5), logger(1), syslog(2), syslog(3), services(5), savelog(8)

COLLABORATORS
     rsyslogd is derived from sysklogd sources, which in turn was taken from the
     BSD sources. Special thanks to Greg Wettstein (greg@wind.enjellic.com)  and
     Martin Schulze (joey@linux.de) for the fine sysklogd package.

     Rainer Gerhards
     Adiscon GmbH
     Grossrinderfeld, Germany
     rgerhards@adiscon.com

Version 8.2502.0		18 February 2025		     RSYSLOGD(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rsyslogd&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help