Come inoltrare file di registro specifico al di fuori di / var / log con rsyslog al server remoto?


25

Come posso inoltrare un messaggio da un file di registro specifico come /www/myapp/log/test.logcon il rsyslogclient al rsyslogserver remoto ? Questo file di registro è esterno alla directory /var/log.

Risposte:


43

Basta impostare una regola imfile in /etc/rsyslog.conf

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

Controlla un file e lo salva nella funzione local3 in syslog. Quindi è possibile inviare tutti i dati dalla funzione local3 al server remoto. Potresti anche voler aggiungere quanto segue al tuo rsyslog conf (di solito /etc/rsyslog.d/50-default.conf su Ubuntu) per non salvare la funzione local3 in / var / log / syslog:

#/etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none,local1.none,local2.none,local3.none,local4.none,local5.none,local6.none          -/var/log/syslog

Inoltre, vorrei incoraggiare alcune letture dai seguenti documenti rsyslog per un filtro più avanzato:

  1. Il sostituitore di proprietà
  2. Condizioni del filtro

Questo è molto utile, grazie Bryan. La mia unica sfida qui è la linea per mantenere i log extra dal lato client / var / log / syslog non funziona per me su Ubuntu 12.04. Probabilmente un PEBKAC, ma mi chiedo se questa è una sfida nota?
James T Snell,

1
Capito. Il mio problema era che /etc/rsyslog.d/50-default.conf aveva già una dichiarazione a partire da . ; auth; authpriv.none .. Quella riga sembra avere la precedenza. Quindi aggiungendo l'ultima riga che hai dato, non ha alcun effetto. Invece, quello simile preesistente deve essere modificato. Molto utile. Grazie!
James T Snell,

1

Su Ubuntu, ho anche dovuto commentare le righe dei privilegi di rilascio per fare in modo che rsyslog leggesse effettivamente il file di registro al di fuori di / var / logs.

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

# Set the default permissions for all log files.
#
#$FileOwner syslog
#$FileGroup adm
#$FileCreateMode 0640
#$DirCreateMode 0755
#$Umask 0022
#$PrivDropToUser syslog
#$PrivDropToGroup syslog
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.