Nota bene: questa pagina si riferisce a rsyslog versione 8.24. Le versioni vecchie avevano sintassi diversa.
# abilito la ricezione remota e dico a rsyslog che quando riceve da remoto deve # usare la ruleset che si trova alla fine di questo file di config. # In pratica, i log che entrano via udp o tcp vengono marcati per essere trattati # da una specifica ruleset che si chiama "LogRemoti" # provides UDP syslog reception module(load="imudp") input(type="imudp" port="514" ruleset="LogRemoti") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514" ruleset="LogRemoti") # alcuni esempi di template per definire il nome del file generato # usando diverse variabili (ne potete scommentare SOLO UNO) #template (name="Remote" type="string" string="/var/log/remote/%fromhost-ip%.log") template (name="Remote" type="string" string="/var/log/remote/%hostname%.log") #template (name="Remote" type="string" string="/var/log/remote/%hostname%_%syslogfacility-text%.log") #template (name="Remote" type="string" string="/var/log/remote/%hostname%/%syslogfacility-text%.log") # questo template aggiunge il nome della facility dentro ad ogni riga del log. # inoltre genera il timestamp includendo la time zone attuale (della macchina che genera il log, # non di quella che lo sta ricevendo) template(name="RemoteFormat" type="list") { property(name="timestamp" dateFormat="rfc3339") constant(value=" ") property(name="syslogfacility-text") constant(value=" ") property(name="hostname") constant(value=" ") property(name="syslogtag") property(name="msg" spifno1stsp="on" ) property(name="msg" droplastlf="on" ) constant(value="\n") } # Quando i log arrivano da tcp o udp li devo trattare con questa regola # che usa i template definiti qui sopra per decidre cosa scrivere e dove. # Questa parte di config deve essere l'ultima in quanto usa i template che # sono definiti PRIMA. Se li definisco dopo, non va. ruleset(name="LogRemoti") { action(type="omfile" dynaFile="Remote" template="RemoteFormat") stop }
rsyslog-relp
e poi aggiungere la configurazione per RELP, così:# provides RELP syslog reception module(load="imrelp") input(type="imrelp" port="2514" maxDataSize="10k" keepAlive="on" ruleset="LogRemoti")
/var/log/remote/*.log { rotate 24 weekly missingok notifempty delaycompress compress postrotate /usr/lib/rsyslog/rsyslog-rotate endscript }
# solo auth (via tcp, due "@") auth,authpriv.* @@192.168.99.6 # tutto (via tcp, due "@") *.* @@192.168.99.6 # tutto (via udp, una sola "@") *.* @192.168.99.6
# carico il modulo per inviare via RELP module(load="omrelp") # invio i log che voglio via RELP auth,authpriv.* :omrelp:192.168.99.6:2514