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 con sistema operativo Linux Centos 6.X:
per installare il servizio:
# yum -y install rsyslog
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
quindi, andiamo a modificare le seguenti righe:
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
cancellando il simbolo di commento:
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
Alla fine riavviamo il servizio:
#service rsyslog restart
In conclusione 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 è pertanto, 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, invece che lasciando le impostazioni di default..
Per impostare, una specifica directory dove memorizzare i file di log, bisogna, in primo luogo, modificare il file /etc/rsyslog.conf aggiungendo le seguenti righe prima del blocco GLOBAL DIRECTIVES:
$template RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log” *
*.* ?RemoteLogs
& ~
In conclusione, nell’esempio fatto, 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.