Recipe 9.29 Logging Remotely

9.29.1 Problem

You want system logger messages saved on a remote machine rather than locally.

9.29.2 Solution

Configure /etc/syslog.conf for remote logging, using the "@" syntax:

# Send all messages to remote system "loghost"
*.*             @loghost

On loghost, tell syslogd to accept messages from the network by adding the -r option:

# syslogd -r ...

or within /etc/sysconfig/syslog:

SYSLOGD_OPTIONS="... -r ..."   Red Hat
SYSLOGD_PARAMS="... -r ..."    SuSE

Remember to send a signal to syslogd to pick up any changes to /etc/syslog.conf [Recipe 9.27], or to restart the daemon on loghost if you have changed command-line options.

9.29.3 Discussion

The system logger can redirect messages to another machine: this is indicated in /etc/syslog.conf by an "@" character followed by a machine name as the destination. Our recipe shows a simple remote logging configuration that sends all messages to a remote machine, conventionally named loghost.

The remote configuration can be convenient for collecting messages from several machines in log files on a single centralized machine, where they can be monitored and examined. You might also want to use this configuration on a machine like a web server, so that log files cannot be read, tampered with, or removed by an intruder if a break-in occurs.

Local and remote rules can be combined in the same syslog.conf configuration, and some categories of messages can be sent to both local and remote destinations.

The system logger will not accept messages from another machine by default. To allow this, add the syslogd -r command-line option on loghost. Your loghost can even collect messages from other types of systems, e.g., routers and switches. Protect your loghost with your firewall, however, to prevent others from bombarding your server with messages as a denial of service attack.

To allow the loghost to be changed easily, set up a "loghost" CNAME record on your nameserver that points to a specific machine:

loghost IN CNAME

(Don't forget the final period.) You can then redirect messages by simply modifying the CNAME record, rather than a potentially large number of /etc/syslog.conf files. Add the syslogd -h option on your old loghost to forward your messages to the new loghost, until you have a chance to reconfigure those routers and switches unaware of the change.

9.29.4 See Also

syslogd(8), syslog.conf(5).

    Chapter 9. Testing and Monitoring