Unix / Linux - System Logging

Ciao a tutti, futuri maghi di Unix/Linux! Oggi esploriamo il mondo affascinante della registrazione dei sistemi (system logging). Non preoccupatevi se siete nuovi a questo – sarò il vostro guida amichevole in questo viaggio, proprio come ho fatto per centinaia di studenti negli anni. Iniziamo!

Unix / Linux - System Logging

Cos'è la Registratione dei Sistemi?

Prima di immergerci nei dettagli, capiremo di cosa tratta la registrazione dei sistemi. Immagina di essere un detective che cerca di risolvere un mistero nel tuo computer. I log di sistema sono come il tuo taccuino fidato, registrando tutto ciò che accade nel tuo sistema. Cool, vero?

Perché è Importante?

La registrazione dei sistemi è cruciale per:

  1. Risolvere problemi
  2. Monitorare la salute del sistema
  3. Rilevare violazioni della sicurezza
  4. Rispettare le normative

Ora che sappiamo perché è importante, esploriamo i componenti della registrazione dei sistemi.

Facilities di Syslog

Le facilities di Syslog sono come diverse dipartimenti in una grande azienda. Ogni dipartimento gestisce tipi specifici di informazioni. Ecco una tabella di alcune facilities comuni:

Facility Descrizione
auth Eventi di autenticazione e sicurezza
cron Demone Cron (compiti pianificati)
daemon Diversi demoni di sistema
kern Messaggi del kernel
mail Sistema di posta
user Messaggi a livello utente

Per esempio, se vedi una voce di log con "mail" come facility, sai che è relativa al tuo sistema di posta. Molto utile, vero?

Priorità di Syslog

Non tutti i log sono creati uguali. Alcuni sono più urgenti di altri. Ecco dove entrano in gioco le priorità di Syslog. Pensa a loro come ai livelli di urgenza di un ospedale.

Ecco una tabella delle priorità di Syslog, dalla più grave alla meno grave:

Priorità Parola Chiave Descrizione
0 emerg Il sistema è inutilizzabile
1 alert Azione deve essere presa immediatamente
2 crit Condizioni critiche
3 err Condizioni di errore
4 warning Condizioni di avvertenza
5 notice Condizioni normali ma significative
6 info Messaggi informativi
7 debug Messaggi di debug

Per esempio, se il tuo sistema encounters un evento "crit" (critico), è giunto il momento di indossare il tuo cappuccio da supereroe e salvare la giornata!

Il File /etc/syslog.conf

Ora, parliamo del cervello dietro la registrazione dei sistemi: il file /etc/syslog.conf. Questo file è come il regista di una pièce teatrale, dicendo a ciascun attore (log) dove andare e cosa fare.

Ecco un esempio di cosa potresti trovare in questo file:

mail.*                  /var/log/mail
*.err                   /var/log/errors
kern.*                  /var/log/kernel

Spieghiamo:

  • mail.* significa "tutti i log della facility mail"
  • *.err significa "tutti i log di errore da qualsiasi facility"
  • kern.* significa "tutti i log della facility kernel"

La parte dopo lo spazio indica dove questi log dovrebbero essere archiviati. Cool, vero?

Azioni di Logging

Le azioni di logging determinano cosa succede ai log. Ecco alcune azioni comuni:

  1. Logging su file: I log vengono scritti su un file Esempio: mail.* /var/log/mail

  2. Named pipes: I log vengono inviati a un named pipe Esempio: mail.* |/usr/bin/mypipe

  3. Console/terminale: I log vengono visualizzati sulla console Esempio: *.emerg *

  4. Macchina remota: I log vengono inviati a un'altra macchina Esempio: *.* @192.168.1.100

Il Comando logger

Il comando logger è come il tuo messaggero personale per il sistema Syslog. Puoi usarlo per creare le tue voci di log. Ecco come:

logger "Ciao, syslog!"

Questo creerà una voce di log con il messaggio "Ciao, syslog!". Puoi controllarlo in /var/log/messages o dove il tuo sistema archivia i log degli utenti.

Puoi anche specificare la priorità:

logger -p user.err "Ops, qualcosa è andato storto!"

Questo crea un log di livello errore nella facility utente.

Rotazione dei Log

Immagina se non pulissimo mai i nostri armadi – diventerebbero piuttosto pieni, vero? Lo stesso vale per i file di log. Ecco dove entra in gioco la rotazione dei log. È come una pulizia di primavera regolare per i tuoi log.

La rotazione dei log tipicamente:

  1. Rinomina il file di log corrente
  2. Crea un nuovo file di log vuoto
  3. Comprime i file di log vecchi
  4. Elimina i file di log molto vecchi

Ecco un esempio semplice di configurazione di rotazione dei log (/etc/logrotate.d/myapp):

/var/log/myapp.log {
weekly
rotate 4
compress
missingok
notifempty
}

Questa configurazione:

  • Rotola il log settimanalmente
  • Mantiene 4 versioni vecchie
  • Comprime i log vecchi
  • Non si lamenta se il log mancante
  • Non rovescia i log vuoti

Posizioni Importanti dei Log

Infine, esaminiamo dove puoi trovare alcuni log importanti. È come una mappa del tesoro per le informazioni di sistema!

File di Log Descrizione
/var/log/messages Messaggi di sistema generali
/var/log/auth.log Log di autenticazione
/var/log/kern.log Log del kernel
/var/log/cron.log Log dei job di Cron
/var/log/maillog Log del server di posta
/var/log/apache2/error.log Log degli errori di Apache
/var/log/mysql/error.log Log degli errori di MySQL

Ricorda, queste posizioni possono variare a seconda della tua distribuzione Linux specifica.

Eccoci, ragazzi! Avete appena completato un tour veloce della registrazione dei sistemi Unix/Linux. Dalla comprensione di cosa sia la logging e perché è importante, all'esplorazione dei vari componenti come le facilities, le priorità e la rotazione dei log, ora avete le conoscenze per iniziare la vostra avventura di sistema logging.

Ricorda, il modo migliore per imparare è fare. Quindi non aver paura di esplorare i log del tuo sistema, provare il comando logger e magari impostare alcune regole di logging personalizzate. Buon logging, e possa i vostri sistemi sempre funzionare senza problemi!

Credits: Image by storyset