If the log files are being generated on the client server via the
syslog facility then the best way is to setup the clients syslog daemon to forward those logs to a seperate host. For example, if I have an internal name
syslog.private which points to the remote server that I want to receive the log entries. I can add the following line to the
/etc/syslog.conf on the client server.
and then restart the syslog daemon on the client
service syslog reload
This will cause every entry that passes through the clients syslog to be sent across the wire to
syslog.private and if that machine is configured correctly, the entries will be available there as well. In RedHat systems this is controlled by the
/etc/sysconfig/syslog file. Make sure the
-r option is present
% grep "SYSLOGD" /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r"
and then restart the syslog daemon on the receiving server.
You can also control what is forwarded to the remote server by adding exclusions, see the example below
Which says forward everything to
syslog.private with the exception of anything sent to the
If this solution works out for you, you may consider one of the alternate syslog implementations like rsyslog, or syslog-ng, which provide extra logging and storage options.