Attivare un Server SysLog su Linux

syslog server

Attivare un server syslog su linux è una operazione necessaria quando si intende analizzare o monitorare i comportamenti dei dispositivi presenti nella nostra infrastruttura.  Attivare un server syslog su linux dedicato a questo scopo ha il vantaggio di poter ricevere i dati su un dispositivo dedicato esclusivamente a questo scopo, quindi poter analizzare i dati di servizi in funzione su altri server anche in fase di avvio. Di seguito vediamo quali sono i comandi per attivare un server syslog su linux ed in particolare su una macchina Centos 6.X:

# yum -y install rsyslog
per installare il servizio

a questo punto andiamo a modificare alcuni valori contenuti nel file /etc/rsyslog.conf  che contiene i parametri di configurazione del servizio:

# vi /etc/rsyslog.conf
andiamo a modificare le seguenti righe:

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514

togliendo il simbolo di commento:

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

ed infine riavviamo il servizio:

#service rsyslog restart

A questo punto verifichiamo che il servizio sia attivo ed in ascolto:

#netstat -antup | grep 514
il risultato dovrebbe essere simile a :
tcp  0 0   0.0.0.0:514 0.0.0.0:* LISTEN 8081/rsyslogd
tcp  0 0   :::514          :::*         LISTEN 8081/rsyslogd
udp 0 0  0.0.0.0:514  0.0.0.0:* 8081/rsyslogd
udp 0 0   :::514         :::*

Se il risultato ottenuto è simile a quello sopra illustrato, il server è funzionante ed in ascolto sulla porta 514. Eventualmente si può anche specificare una particolare directory dove andare a memorizzare i file log come descritto nelle prossime righe.

Per impostare una specifica directory dove memorizzare i file di log, bisogna modifica il file /etc/rsyslog.conf aggiungendo le seguenti righe prima del blocco GLOBAL DIRECTIVES:

$template RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log” *
*.* ?RemoteLogs
& ~

Nell’esempio i file di log vengono memorizzati nella directory /var/log/ all’interno della quale vi è una directory con il nome dell’host remoto e dell’applicazione che ha generato i log.