Impedisci a rsyslog di registrare i messaggi degli host remoti su local / var / log / syslog


8

Uso rsyslog per salvare i log dagli host remoti su un server in questo modo:

Server:

# Logfile for each host
$template DynaFile,"/var/log/rsyslog/%HOSTNAME%.log"
*.* -?DynaFile

clienti:

*.* @servername

Questo crea file di registro per ogni host client nei server /var/log/rsyslog/ma registra ogni messaggio anche nei server /var/log/syslog. Quindi diventa davvero gonfio. Come posso impedirlo in modo che /var/log/syslogcontenga solo messaggi dal server stesso?


1
Ti consigliamo di esaminare i filtri basati sulle proprietà poiché HOSTNAME è uno dei campi syslog. Fondamentalmente vorrai cambiarlo in modo che selezioni solo i propri log per/var/log/syslog
Bratchley

Risposte:


2

Ecco cosa funziona per me:

## For accepting syslog info from remote hosts
$template TempAuth, "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"
$template TempMsg,  "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"

if ($fromhost-ip != "127.0.0.1" ) then ?TempAuth
& ~
if ($fromhost-ip != "127.0.0.1" ) then  ?TempMsg
& ~

Perché c'è una duplicazione tra TempAuth e TempMsg?
vdboor

0

Ci ho lavorato molto e penso di aver trovato una soluzione. Incoraggio gli altri a provare questo e cercare conseguenze potenzialmente avverse. Suggerisco di implementarlo prima su macchine di laboratorio / test e non critiche.

$template PerHostLog,"/var/log/net-hosts/%fromhost-ip%/%fromhost-ip%.log"
$template RemoteHostFileFormat,"%TIMESTAMP% %fromhost-ip% %syslogfacility-text% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::space-cc,drop-last-lf%\n”
:inputname, isequal, "imudp" ?PerHostLog;RemoteHostFileFormat
:fromhost-ip , !isequal , "127.0.0.1" stop

Le 4 righe sopra sono nella parte più in alto del mio file /etc/rsyslog.conf

Attualmente sto guardando 2 file di registro:
/var/log/net-hosts/10.1.1.1
e / var / log / syslog

mentre guardo entrambi, vedo che i log si popolano nel file host remoto, ma non nel syslog . Ho riavviato Apache e ho visto le voci di registro in syslog per questa attività.


Grazie per il test. Ma non funziona per me. Registra ancora tutto su server / var / log / syslog
Michael

0

Devi assicurarti che le tue nuove regole vengano valutate prima di quella che accede a / var / log / syslog.
Ad esempio su Ubuntu Trusty (rsyslog 7.4.4) /etc/rsyslog.conf contiene in
$IncludeConfig /etc/rsyslog.d/*.conf
modo da cui vengono caricate le regole predefinite /etc/rsyslog.d/50-default.conf, inclusa quella per / var / log / syslog.

In questo caso è possibile aggiungere un nuovo file da caricare prima di quello, ad esempio 00-remote.conf. Per completezza, ecco il suo contenuto per un sistema che sto gestendo:

$template RemoteStore, "/var/log/remote/%HOSTNAME%/%timegenerated:1:10:date-rfc3339%"
:source,isequal,"NAS",-?RemoteStore
& ~
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.