Product SiteDocumentation Site

9.5. syslog, eventi di sistema

9.5.1. Principi e meccanismi

Il demone rsyslogd è responsabile della raccolta dei messaggi di servizio provenienti da applicazioni e dal kernel, distribuendoli poi nei file di log (di solito memorizzati nella directory /var/log/). Obbedisce al file di configurazione /etc/rsyslog.conf.
Ciascun messaggio di log è associato a un sottosistema di applicazioni (denominata "facility" nella documentazione):
  • auth e authpriv: per l'autenticazione;
  • cron: proviene da servizi di pianificazione delle attività, cron e atd;
  • daemon: interessa un demone senza alcuna classificazione speciale (DNS, NTP, ecc.);
  • ftp: riguarda il server FTP;
  • kern: messaggio proveniente dal kernel;
  • lpr: deriva dal sottosistema di stampa;
  • mail: proviene dal sottosistema per la posta elettronica;
  • news: messaggio del sottosistema Usenet (specialmente da un server NNTP, Network News Transfer Protocol, che gestisce i newsgroup);
  • syslog: messaggi dal server syslogd stesso;
  • user: messaggi utente (generico);
  • uucp: messaggi dal server UUCP (Unix to Unix Copy Program, un vecchio protocollo utilizzato in particolare per distribuire i messaggi di posta elettronica);
  • da local0 a local7: riservato per l'uso locale.
Ogni messaggio è anche associato a un livello di priorità. Ecco l'elenco in ordine decrescente:
  • emerg: "Aiuto!" C'è un'emergenza, il sistema è probabilmente inutilizzabile.
  • alert: affrettarsi, ogni ritardo può essere pericoloso, bisogna agire immediatamente;
  • crit: le condizioni sono critiche;
  • err: errore;
  • warn: avvertimento (potenziale errore);
  • notice: le condizioni sono normali, ma il messaggio è importante;
  • info: messaggio informativo;
  • debug: messaggio di debug.

9.5.2. Il file di configurazione

La sintassi del file /etc/rsyslog.conf viene specificata nella pagina di manuale rsyslog.conf(5), ma è anche disponibile documentazione in HTML presente nel pacchetto rsyslog-doc (/usr/share/doc/rsyslog-doc/html/index.html). Il principio generale è quello di scrivere coppie di "selettori" e "azioni". Il selettore definisce tutti i messaggi rilevanti, e le azioni descrivono come trattarli.

9.5.2.1. Sintassi del selettore

Il selettore è un elenco separato da punti e virgola di coppie sottosistema.priorità (esempio: auth.notice;mail.info). Un asterisco può rappresentare tutti i sottosistemi o tutte le priorità (esempi: *.alert o mail.*). Vari sottosistemi possono essere raggruppati, separandoli con una virgola (esempio: auth,mail.info). La priorità indicata copre anche i messaggi di priorità uguale o superiore: così auth.alert indica i messaggi del sottosistema auth con priorità alert o emerg. Se fatta precedere da un punto esclamativo (!), indica il contrario, in altre parole le priorità strettamente inferiori; auth.!notice, perciò, indica i messaggi emessi da auth con priorità info odebug. Se preceduto da un segno di uguale (=) corrisponde solo ed esclusivamente alla priorità indicata (auth.=notice riguarda solo i messaggi provenienti da auth con priorità notice).
Ogni elemento della lista sul selettore sovrascrive gli elementi precedenti. È così possibile limitare un insieme o escludere alcuni elementi da esso. Per esempio, kern.info;kern.!err significa i messaggi dal kernel con priorità compresa tra info e warn. La priorità none indica l'insieme vuoto (nessuna priorità), e può servire per escludere un sottosistema da un insieme di messaggi. Perciò, *.crit;kern.none indica tutti i messaggi con priorità uguale o superiore a crit che non provengono dal kernel.

9.5.2.2. Sintassi delle azioni

Le varie azioni possibili sono:
  • aggiungere il messaggio ad un file (esempio: /var/log/messages);
  • inviare il messaggio ad un server syslog remoto (esempio: @log.falcot.com);
  • inviare il messaggio ad una pipe con nome esistente (esempio: |/dev/xconsole);
  • inviare il messaggio ad uno o più utenti, se sono connessi (esempio: root,rhertzog);
  • inviare un messaggio a tutti gli utenti connessi (ad esempio: *);
  • scrivere il messaggio in una console di testo (ad esempio: /dev/tty8).