sysklogd/man/syslogd.8

422 lines
11 KiB
Groff
Raw Normal View History

.\" Copyright (c) 1983, 1986, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)syslogd.8 8.1 (Berkeley) 6/6/93
.\" $FreeBSD$
.\"
.Dd July 2, 2018
.Dt SYSLOGD 8
.Os
.Sh NAME
.Nm syslogd
.Nd log systems messages
.Sh SYNOPSIS
.Nm
.Op Fl ?46AdFknsTv
.Op Fl a Ar addr[/len][:port]
.Op Fl a Ar name[:port]
.Op Fl b Ar addr[:port]
.Op Fl b Ar :port
.Op Fl f Ar file
.Op Fl m Ar interval
.Op Fl P Ar file
.Op Fl p Ar sock
.Op Fl r Ar size[:count]
.Sh DESCRIPTION
The
.Nm
utility reads and logs messages to the system console, log files, other
machines and/or users as specified by its configuration file.
.Pp
.Nm
support RFC3164 and RFC5424 style log messages for both local and remote
logging using Internet and UNIX domain sockets. Differences in style is
shown below.
.Pp
.Bl -tag -compact -width "RFC3164:"
.It RFC3164:
.Cm Aug 24 05:14:15 192.0.2.1 myproc[8710]: Kilroy was here.
.It RFC5424:
.Cm 2003-08-24T05:14:15.000003-07:00 192.0.2.1 myproc 8710 - - Kilroy was here.
.El
.Pp
Note, for remote logging the messages are prefixed with
.Cm <PRI>
or
.Cm <PRI>1 ,
respectively.
.Pp
.Nm
is derived from BSD sources, today
.Fx
is the reference for
.Nm
and
.Nx
for the new
.Xr syslogp 3
API, which fully supports the new features of RFC5424. Please note; 1)
the intention is to follow standard BSD
.Nm
behavior, 2) despite having a stand-alone
.Xr syslog 3 ,
and
.Xr syslogp 3
API in
.Lb libsyslog ,
.Nm
interacts transparently with the standard C library
.Xr syslog 3
API, as implemented in GLIBC, musl libc, and uClibc.
.Pp
When
.Nm
starts up it reads its main configuration file
.Pa /etc/syslog.conf ,
or an alternate file given with the
.Fl f Ar file
option. For details on how to configure syslog priority
(facility.severity) filtering, see
.Xr syslog.conf 5 .
.Sh OPTIONS
By default,
.Nm
reads messages from the
.Ux
domain socket
.Pa /dev/log ,
from an Internet domain socket specified in
.Pa /etc/services ,
and from
.Pa /proc/kmsg
.Pq to read kernel messages .
The command line options defined below can be used to change this
behavior.
.Pp
The options are as follows:
.Bl -tag -width indent
.It Fl 4
Force
.Nm
to use IPv4 addresses only.
.It Fl 6
Force
.Nm
to use IPv6 addresses only.
.It Fl 8
Tells
.Nm
not to interfere with 8-bit data.
Normally
.Nm
will replace C1 control characters
.Pq ISO 8859 and Unicode characters
with their
.Dq M- Ns Em x
equivalent.
Note, this option does not change the way
.Nm
alters control characters
.Pq see Xr iscntrl 3 .
They will always be replaced with their
.Dq ^ Ns Em x
equivalent.
.It Fl A
Ordinarily,
.Nm
tries to send the message to only one address
even if the host has more than one A or AAAA record.
If this option is specified,
.Nm
tries to send the message to all addresses.
.It Fl a Ar address[/len][:service] | Fl a Ar domainname[:service]
Allow peers to log to this syslogd using UDP datagrams. Multiple
.Fl a
options may be specified. Any
.Fl a
option is ignored if the
.Fl s
option is also specified.
.Pp
The peer argument may be any of the following:
.Bl -tag -width 'address[/len][:service]'
.It Ql address[/len][:service]
Accept datagrams from IP
.Ar address ,
which can be specified as an IPv4 address or as an IPv6 address enclosed
with
.Sq \&[
and
.Sq \&] .
If specified, service is the name or port number of an UDP service (see
.Xr services 5 )
the source packet must belong to. A service of
.Ql *
accepts UDP packets from any source port. The default service is
.Ql syslog .
If
.Ar address
is an IPv4 address, a missing prefix
.Ar len
will be substituted by the historic class A or class B netmasks if
.Ar address
belongs in the address range of class A or B, respectively, or by'
.Ar /24
otherwise. If
.Ar address
is an IPv6 address, a missing prefix
.Ar len
will be substituted by 128.
.It Ql domainname[:service]
Accept datagrams where the reverse address lookup yields
.Ar domainname
for the sender address. The meaning of
.Ar service
is as explained above.
.Ar domainname
can contain special characters of a shell-style pattern such as
.Ql * .
.El
.It Xo
.Fl b
.Sm off
.Ar bind_address Op \&: Ar service
.Sm on
.Xc
.It Xo
.Fl b
.Sm off
.Li \&: Ar service
.Sm on
.Xc
Bind to a specific address and/or port.
The address can be specified as a hostname,
and the port as a service name.
If an IPv6 address is specified, it should be enclosed with
.Ql \&[
and
.Ql \&] .
The default
.Ar service
is
.Ql syslog .
This option can be specified multiple times to bind to
multiple addresses and/or ports.
.It Fl d
Put
.Nm
into debugging mode.
This is probably only of use to developers working on
.Nm .
.It Fl f Ar config_file
Specify the pathname of an alternate configuration file;
the default is
.Pa /etc/syslog.conf .
.It Fl F
Run
.Nm
in the foreground,
rather than going into daemon mode.
This is useful if some other process uses
.Xr fork 2
and
.Xr exec 3
to run
.Nm ,
and wants to monitor when and how it exits.
.It Fl k
Disable the translation of
messages received with facility
.Dq kern
to facility
.Dq user .
Usually the
.Dq kern
facility is reserved for messages read directly from
.Pa /proc/kmsg .
.It Fl m Ar mark_interval
Select the number of minutes between
.Dq mark
messages;
the default is 20 minutes.
.It Fl n
Disable DNS query for every request.
.It Fl p Ar log_socket
Specify the pathname of an alternate log socket to be used instead;
the default is
.Pa /dev/log .
When a single
.Fl p
option is specified,
the default pathname is replaced with the specified one.
When two or more
.Fl p
options are specified,
the remaining pathnames are treated as additional log sockets.
.It Fl P Ar pid_file
Specify an alternative file in which to store the process ID.
The default is
.Pa /var/run/syslog.pid .
.It Fl s
Operate in secure mode. Do not log messages from remote machines. If
specified twice, no network socket will be opened at all, which also
disables logging to remote machines.
.It Fl T
Always use the local time and date for messages received from the network,
instead of the timestamp field supplied in the message by the remote host.
This is useful if some of the originating hosts cannot keep time properly
or are unable to generate a correct timestamp.
.It Fl v
Verbose logging. If specified once, the numeric facility and priority
are logged with each locally-written message. If specified more than
once, the names of the facility and priority are logged with each
locally-written message.
.Pp
This option only affects the formatting of RFC 3164 messages. Messages
formatted according to RFC 5424 always include a facility/priority
number.
.El
.Pp
The
.Nm
utility reads its configuration file when it starts up and whenever it
receives a hangup signal.
For information on the format of the configuration file,
see
.Xr syslog.conf 5 .
.Pp
The
.Nm
utility creates its process ID file,
by default
.Pa /var/run/syslog.pid ,
and stores its process ID there. This can be used to kill or
reconfigure
.Nm .
.Pp
The message sent to
.Nm
should consist of a single line. The message can contain a priority
code, which should be a preceding decimal number in angle braces, for
example,
.Sq Aq 5 .
This priority code should map into the priorities defined in the
include file
.In sys/syslog.h .
To log with RFC5424 style messages the priority code must be directly
followed by the version number, this is all handled by the
.Lb libsyslog ,
which is the
.Nx
.Xr syslogp 3
API included with the
.Nm sysklogd
project.
.Pp
The date and time are taken from the received message. If the format of
the timestamp field is incorrect, time obtained from the local host is
used instead. This can be overridden by the
.Fl T
flag.
.Sh FILES
.Bl -tag -width /etc/syslog.d/50-default.conf -compact
.It Pa /etc/syslog.conf
configuration file. See
.Xr syslog.conf 5
for more information.
.It Pa /etc/syslog.d/*.conf
Conventional sub-directory of
.Pa .conf
files read by
.Nm .
.It Pa /etc/syslog.d/50-default.conf
Conventional name for default rules.
.It Pa /var/run/syslog.pid
default process ID file
.It Pa /dev/log
name of the
.Ux
domain datagram log socket
.It Pa /proc/kmsg
kernel log device
.El
.Sh SEE ALSO
.Xr logger 1 ,
.Xr syslog 3 ,
.Xr syslogp 3 ,
.Xr services 5 ,
.Xr syslog.conf 5 ,
.Sh HISTORY
The
.Nm
utility first appeared in
.Bx 4.3 .
.Pp
It was originally ported to Linux by
.An Greg Wettstein Aq Mt greg@wind.enjellic.com
and the project was renamed
.Nm sysklogd
when a separate log daemon,
.Nm klogd ,
for Linux kernel messages was added. It was
the default
.Nm
in Debian and Ubuntu, maintained by
.An Martin Schulze Aq Mt joey@infodrom.org ,
who fixed some bugs and added several new features. When Debian replaced
.Nm sysklogd
with
.Nm rsyslogd
the project was abandoned. In 2018
.An Joachim Nilsson Aq Mt troglobit@gmail.com
picked up maintenance. In 2019 the project was revived with fresh DNA
strands from both FreeBSD and NetBSD,
.Nm klogd
was removed and the project was eventually relicensed under the 3-clause
BSD license, like its bretheren.
.Sh BUGS
The ability to log messages received in UDP packets is equivalent to
an unauthenticated remote disk-filling service,
and should probably be disabled by default.
Some sort of
.No inter- Ns Nm syslogd
authentication mechanism ought to be worked out.
To prevent the worst abuse,
use of the
.Fl a
option is therefore highly recommended.
.Pp
The
.Fl a
matching algorithm does not pretend to be very efficient;
use of numeric IP addresses is faster than domain name comparison.
Since the allowed peer list is being walked linearly,
peer groups where frequent messages are being anticipated
from should be put early into the
.Fl a
list.