In large server deployments using remote syslogd where syslog entries are written over UDP is quite helpful. This allows a central server to monitor a fleet of servers by receiving all log entries over the network. This is a standard linux feature set. FMADIO Packet Capture devices support this feature, as follows:
Copy the default syslogd.conf to /opt/fmadio/etc/
sudo cp /etc/syslogd.conf /opt/fmadio/etc/
Then edit the file as follows, replacing the destination IP with configuration specific to your environment
# rsyslog configuration file (fmadio default)
#### MODULES ####
module(load="imuxsock") # provides support for local system logging (e.g. via logger command)
module(load="imklog") # provides kernel logging support (previously done by rklogd)
module(load="immark") # provides --MARK-- message capability
# Provides UDP syslog reception
# for parameters see https://www.rsyslog.com/doc/imudp.html
#module(load="imudp") # needs to be done just once
#input(type="imudp" port="514")
# Provides TCP syslog reception
# for parameters see https://www.rsyslog.com/doc/imtcp.html
#module(load="imtcp") # needs to be done just once
#input(type="imtcp" port="514")
#### GLOBAL DIRECTIVES ####
template(name="facility_priority" type="list") {
property(name="syslogfacility-text")
constant(value=".")
property(name="syslogpriority-text")
}
set $!facility_priority = exec_template("facility_priority");
template(name="syslog_fmadio" type="list") {
property(name="timereported" dateFormat="year")
constant(value=".")
property(name="timereported" dateFormat="month")
constant(value=".")
property(name="timereported" dateFormat="day")
constant(value="-")
property(name="timereported" dateFormat="hour")
constant(value=":")
property(name="timereported" dateFormat="minute")
constant(value=":")
property(name="timereported" dateFormat="second")
constant(value=".")
property(name="timereported" dateFormat="subseconds")
constant(value=" ")
constant(value="(")
property(name="timereported" dateFormat="tzoffsdirection")
property(name="timereported" dateFormat="tzoffshour")
constant(value=":")
property(name="timereported" dateFormat="tzoffsmin")
constant(value=") | ")
property(name="hostname")
constant(value=" | ")
property(name="$!facility_priority" position.to="16" fixedwidth="on")
constant(value="| ")
property(name="programname" position.to="10" fixedwidth="on")
constant(value="|")
property(name="msg" spifno1stsp="on")
property(name="msg" droplastlf="on")
constant(value="\n")
}
# Use default timestamp format
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$ActionFileDefaultTemplate syslog_fmadio
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
#$IncludeConfig /etc/rsyslog.d/*.conf
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
kern.err /dev/console
# log everything to disk
*.* /mnt/store0/log/messages
# remote host is TCP: name/ip:port, e.g. 192.168.0.1:514, port optional
*.* @@192.168.1.100:514
In the above example all syslog log entries are also written to a server at 192.168.1.100 over TCP on port 514.
For UDP on port 514 use the following setting
// remote host over UDP is name/ip;port
*.* @192.168.1.100:514
Its the standard syslogd from inted package additional customization can be done if required. Example syslog output as follows