RSYSLOG står för rocket-fast system for log processing. Rsyslog är väldigt flexibelt har en mängd olika input plugins och output plugins som gör att du kan forwarda dina loggar till andra system som Elasticsearch, Kafka eller bara spara ner dina loggar till en fil som roterar dagligen.
Rsyslog lämpar sig därför väldigt bra som en central log aggeragator.
Installation
#tab1|CentOS 7/8 #tab2|Ubuntu 18.04/20.04
yum -y install rsyslog
apt-get install rsyslog
# Load modules for UDP & TCP
module(load="imudp")
module(load="imtcp")
# Start to listen on port 514 TCP/UDP
input(type="imudp" port="514")
input(type="imtcp" port="514")
# Templates
template(name="RemoteHost" type="string" string="/var/log/remote/%HOSTNAME%_%$YEAR%_%$MONTH%_%$DAY%.log")
# Actions
action(type="omfile" DynaFile="RemoteHost")
yum -y install rsyslog-kafka
apt-get install rsyslog-kafka
# Load modules for UDP & TCP
module(load="imudp")
module(load="imtcp")
module(load="omkafka")
# Start to listen on port 514 TCP/UDP
input(type="imudp" port="514")
input(type="imtcp" port="514")
# Actions
action(type="omkafka" Broker="<BROKER IP>" Topic="<KAFKA-TOPIC>")
DynaTopic="on"
# Module loaders
module(load="imudp")
module(load="imtcp")
module(load="omkafka")
# Juniper input
input(type="imudp" port="5141" name="juniper")
input(type="imtcp" port="5141" name="juniper")
# VMware input
input(type="imudp" port="5140" name="vmware")
input(type="imtcp" port="5140" name="vmware")
# Template
template(name="Kafka_Topic" type="string" string="syslog.%INPUTNAME%")
# Output to Kafka
action(type="omkafka" Broker="<BROKER IP>" DynaTopic="on" Topic="Kafka_Topic")
DynaKey="on"
# Module loaders
module(load="imudp")
module(load="imtcp")
module(load="omkafka")
# Input
input(type="imudp" port="514")
input(type="imtcp" port="514")
# Template
template(name="Kafka_Key" type="string" string="%FROMHOST-IP%")
# Output to Kafka
action(type="omkafka" Broker="<BROKER IP>" DynaKey="on" Topic="Kafka_Key")
action(type="omkafka" Broker=["<BROKER IP>","<BROKER IP>","<BROKER IP>"] Partitions.Auto="on" Topic="Kafka_Topic")
Partitions.Auto="on"
action(type="omkafka" Broker="<BROKER IP>" Topic="<KAFKA-TOPIC>" template="RSYSLOG_SyslogProtocol23Format")