Il file syslog
Dopo aver visto nel nostro precedente articolo cosa sono i log di sistema, continuiamo oggi con un nuovo articolo riguardo syslog. Dato che stiamo prendendo in considerazione l’ultima versione di Ubuntu (Ubuntu Natty Narwhal 11.04), è bene ricordare anche in questo articolo che il demone di registrazione del sistema syslogd è stato aggiornato a rsyslog. In conseguenza di ciò, le informazioni del sistema non vengono più registrate in /var/log/messages, ma in /var/log/syslog.
Aprendo il terminale e spostandovi nella directory /var/log con il comando
cd /var/log
eseguendo il comando ls potrete vedere l’elenco dei file di log del vostro sistema. Qui sono conservate tutte le informazioni sul normale funzionamento della macchina e soprattutto errori di processi e crash di sistema.
Per esempio sul mio pc il comando “ls” restituisce questo:
Di seguito alcuni log di sistema con una breve spiegazione:
- /var/log/syslog: registro di sistema generico
- /var/log/auth.log: registro di autorizzazione del sistema
- /var/log/kern.log: registro di attività del kernel
- /var/log/mail.log: registro di posta del sistema
Nel precedente articolo abbiamo parlato di come monitorare sulla shell il file syslog con questo comando:
tail -f /var/log/syslog
vi segnalo che su Ubuntu c’è un’utility che visualizza i log di sistema. Per usarla dovete cliccare sul launcher (icona di Ubuntu in alto a sinistra)
e digitare “visualizzatore di file di registro” oppure, se non usate Unity, andare in Sistema -> Amministrazione.
syslog puo essere configurato attraverso il file /etc/syslog.conf. In seguito all’aggiornamento, su Ubuntu Natty Narwhal il file di configurazione è /etc/rsyslog.conf.
La struttura del file è composta da righe formate da coppie di campi selettore e azione, dove selettore definisce cosa loggare, e azione dove scrivere i log. I due campi sono separati da spazi o tabulazioni.
La coppia facility e priorità definisce ogni selettore:
- facility stabilisce il genere di dati da considerare per i log (ad esempio le informazioni provenienti dal processo che si occupa di gestire le stampanti);
- priorità pone un filtro alla gravità dei messaggi da loggare.
Le facility predefinite si possono trovare nei sorgenti delle libc, nel file syslog.h. Vediamole:
auth: messaggi relativi alle autorizzazioni del sistema
authpriv: come auth, ma i messaggi possono contenere dati sensibili
cron: temporizzazione degli eventi
kern: messaggi del kernel.
lpr: gestione delle stampanti.
mail: tutto ciò che ha a che fare con le email.
syslog: messaggi generati dallo stesso syslog.
user: messaggi generati da programmi in esecuzione nello spazio utente
uucp: gestione del trasferimento di file, email e netnews tra computer.
ftp: riservato ai server ftp.
da local0 a local7: riservati per utilizzi locali.
Insieme al tipo di dato da loggare, l’applicazione specifica anche la priorità del messaggio.
Di seguito i livelli di priorità dalla più bassa alla più alta:
debug: non mostrati normalmente ma solo quando si vuole ottenere informazioni dettagliate da un programma.
info: informazioni sul funzionamento del programma.
notice: segnala una situazione significativa, ma sempre all’interno del normale funzionamento di un programma.
warning: messaggio generato in seguito a problemi di funzionamento.
err: si è verificata un errore.
crit: indica una situazione critica, che compromette il funzionamento del sottosistema coinvolto.
alert: condizione che impone un immediato intervento da parte dell’operatore.
emerg: il sistema risulta inutilizzabile.
Vi lascio con un esempio:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
/var/log/messages definisce l’azione
*.info;mail.none;authpriv.none;cron.none è il selettore che contiene al suo interno la priorità info e le facility mail, authpriv e cron.
Cosa si ottiene con questa stringa?
Nel file /var/log/messages verranno loggati tutti i messaggi di livello informativo, tranne quelli relativi alla posta (mail), all’accesso al sistema (authpriv) e al cron.