Gestire i 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.
Francesco Celebrini