Setup rsyslog.conf
rsyslog is installed by default on Ubuntu 18.04 Server and Desktop. On the server edit the top of /etc/rsyslog.conf as below:
module(load="imuxsock") # provides support for local system logging
#module(load="immark") # provides --MARK-- message capability
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
# rsubr: accept logs from KCM LAN
$AllowedSender TCP, 127.0.0.0/8, 10.10.0.0/16
$AllowedSender UDP, 127.0.0.0/8, 10.10.0.0/16
# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")
# Syslog template for collecting logs from remote hosts
# See /etc/logrotate.d/rsyslog-remote for log rotation
$template remote-incoming-logs,"/var/log/rsyslog/%HOSTNAME%.log"
*.* ?remote-incoming-logs
& ~Ensure /var/log/rsyslog has following permissions
drwxrwxr-x 1 root syslog 68 Dec 11 22:06 /var/log/rsyslogLog Rotation Using logwatch
# /etc/logrotate.d/rsyslog-remote
/var/log/rsyslog/*.log {
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}