Inviare file di log ad un server rsyslog remoto

From RVM Wiki
Jump to navigation Jump to search

Rsyslog logga ed inoltra solo messaggi inviati a syslog, mentre ad esempio, apache logga direttamente in file di log proprietari. È possibile gestire con rsyslog generici file di log in vari modi, ad esempio:

  • leggendo direttamente il file di log con il modulo imfile
  • facendo loggare l'applicazione in syslog direttamente
  • facendo loggare l'applicazione tramite logger

Moduli imfile

  • La soluzione utilizza il modulo nativo imfile, che legge ogni 10 secondi il file di log indicato, e lo inoltra a rsyslog in locale. Rsyslog poi lo girerà ad un server remoto per lo storage
  • Configurare la regola, che nelle'sempio, inoltra il log di apache ssl. La regola deve essere caricata alfabeticamente DOPO quella che definisce i dettagli della destinazione remota:
cat | sudo tee /etc/rsyslog.d/200apacheaccess.conf <<'EOFile'
$ModLoad imfile

# Apache access file:
$InputFileName /var/log/apache2/ssl_access.log
$InputFileTag apache-ssl-access:
$InputFileStateFile stat-apache-access
$InputFileSeverity info
$InputRunFileMonitor
$InputFilePollInterval 10

# Manda ad un server gryaylog2
if ($programname == 'apache-ssl-access') then @server.example.com:514;GRAYLOGRFC5424
#& ~
# Manderebbe via relp
# if ($programname == 'apache-ssl-access') then omrelp:rsyslog.galimberti.priv:20514
#& ~
  • Testare la sintassi:
sudo rsyslogd -f /etc/rsyslog.conf -N1 -c4
  • Riavviare rsyslog
sudo invoke-rc.d rsyslog restart
  • Si dovrebbe vedere il log di apache duplicato anche nel syslog, perchè la regola di default in rsyslog.conf, gira tutto in /var/log/syslog
  • Per disabilitare la duplicazione locale, scommentare la regola di discard:
& ~

Riferimenti