Linux sotto sorveglianza: gestire i file di log
di Francesco CelebriniTenere sotto controllo il nostro sistema operativo con una buone gestione dei file di log...
Monitorare costantemente il nostro sistema operativo non
è un'attività pedante ed eccessivamente meticolosa ma rappresenta
un'insostituibile aiuto per cavarsi d'impaccio da possibili situazioni critiche.
In Linux chi si occupa di questa operazione tanto importante non può essere
che un demone: syslogd o syslog, che potete trovare nella directory /etc/init.d.
Il file di configurazione del demone, /etc/syslog.conf,
è composto da record formati da coppie di campi separati da spazi o tabulazioni:
selettore, che definisce cosa loggare, e azione, che indica dove scrivere i log.
Ogni selettore è definito da una coppia di facility (che stabilisce il
genere di dati da considerare) e priorità (che pone un filtro alla gravità
dei messaggi da loggare) separati da un punto.
Es.:
mail.err /var/log/maillog
significa che di tutti i messaggi provenienti dai programmi che gestiscono il
sistema di posta dobbiamo loggare nel file /var/log/maillog
solamente quelli la cui priorità corrisponde o supera il livello err.
Per l'elenco completo delle facility e delle priorità consultate la pagina
man di /etc/syslog.conf.
Veniamo ora all'esempio pratico:
# INIZIO /ETC/SYSLOG.CONF #
# E' possibile indicare diversi tipi di dati che fanno riferimento ad uno
# stesso file separando i diversi selettori con punti e virgola.
# Nel caso seguente al file /var/log/messages verranno
indirizzati tutti i log
# di qualsiasi genere (*) a partire dal livello info (informazioni poco
# significative), eccetto (none) i log di qualsiasi priorità per quanto
riguarda
# la posta (mail), la sicurezza del sistema che può contenere dati sensibili
# (authpriv) e il temporizzatore degli eventi (cron).
# Per comodità, per ognuna di queste 3 facility verrà di seguito
indicato un
# file a parte.
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# Al file /var/log/secure, che non deve essere accessibile a tutti, vengono
# indirizzati tutti i log riguardanti la facility authpriv.
authpriv.* /var/log/secure
# Al file /var/log/maillog vengono indirizzati tutti i log riguardanti la facility
mail.
mail.* /var/log/maillog
# Al file /var/log/cron vengono indirizzati tutti i log riguardanti la facility
cron.
cron.* /var/log/cron
# Quando il sistema diventa inutilizzabile, al livello di priorità emerg,
è utile
# che chiunque sia loggato al sistema riceva immediatamente il messaggio di
# emergenza al monitor.
*.emerg *
# FINE /ETC/SYSLOG.CONF #
Ovviamente tutto ciò è solo la descrizione di una configurazione
standard.
Le possibilità di configurazione sono molto più ampie e vanno dall'invio
dei messaggi di log non ad un file ma ad un terminale virtuale definito (esempio
/dev/tty3), alla scelta di una macchina nella rete
locale che riceva i messaggi di log di altri pc, in pratica una sorta di server
di log.
A voi la tastiera.