0Pricing
Linux Server Deployment & SSH Mastery · Lezione

Rotazione e archiviazione dei log

Implementi `logrotate` per gestire le dimensioni dei file di log, prevenire l'esaurimento dello spazio su disco e garantire criteri efficienti di archiviazione dei log.

Rotazione e archiviazione dei log è una lezione Linux Server Deployment & SSH Mastery gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Server Deployment & SSH Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.

Perché la rotazione dei log è importante

I log del server sono essenziali per il debug e il monitoraggio, ma con il tempo possono diventare molto grandi. Se non vengono gestiti, possono riempire rapidamente lo spazio su disco, causando instabilità del server o persino arresti anomali.

È qui che entra in gioco la rotazione dei log. Si tratta di un processo fondamentale per gestire in modo efficiente le dimensioni dei file di log.

Presentazione dell'utility `logrotate`

I sistemi Linux usano un'utility chiamata logrotate per automatizzare la gestione dei file di log. È progettata per:

  • ruotare i log (rinominare quelli meno recenti)
  • comprimere i log meno recenti per risparmiare spazio
  • rimuovere i file di log molto vecchi
  • eseguire script personalizzati dopo la rotazione

La maggior parte delle distribuzioni Linux include logrotate preinstallato e configurato per essere eseguito quotidianamente tramite un cron job.

Come `logrotate` trova le istruzioni

logrotate legge la propria configurazione da file specifici. Le posizioni principali sono due:

  • /etc/logrotate.conf: il file di configurazione principale, che contiene spesso impostazioni globali e valori predefiniti.
  • /etc/logrotate.d/: una directory in cui le singole applicazioni e i servizi inseriscono le proprie regole specifiche per la rotazione dei log. Ogni file in questa directory viene trattato come una configurazione separata.

Questo approccio modulare semplifica la gestione delle regole per i diversi servizi.

Impostare la frequenza di rotazione dei log

Una delle prime cose da definire è la frequenza con cui ruotare i log. logrotate offre diverse direttive a questo scopo:

  • daily: ruota i log ogni giorno.
  • weekly: ruota i log una volta alla settimana.
  • monthly: ruota i log una volta al mese.
  • yearly: ruota i log una volta all'anno.

Scelga una frequenza che bilanci la conservazione dei dettagli dei log e l'utilizzo dello spazio su disco.

Conservare un certo numero di log meno recenti

La direttiva rotate indica a logrotate quanti file di log meno recenti conservare prima di eliminare quelli più vecchi. Ad esempio, rotate 4 significa che verranno conservati il file di log corrente e quattro versioni ruotate (archiviate).

Una volta raggiunto il limite, il log ruotato più vecchio viene rimosso quando viene eseguita una nuova rotazione.

Compressione dei vecchi file di log

Per liberare ancora più spazio su disco, logrotate può comprimere i vecchi file di log. La direttiva compress fa esattamente questo, in genere utilizzando gzip.

Quando questa opzione è abilitata, i log ruotati saranno file con estensione .gz (ad esempio, myapp.log.1.gz). Questa impostazione è altamente consigliata per la maggior parte dei log dei server.

Rotazione in base alle dimensioni, non solo al tempo

A volte i log possono crescere molto rapidamente e attendere una rotazione giornaliera o settimanale non è sufficiente. La direttiva size consente di ruotare i log quando superano una determinata dimensione del file, indipendentemente dalla frequenza temporale.

  • size 100k: ruota il log se il file supera i 100 kilobyte.
  • size 10M: ruota il log se il file supera i 10 megabyte.
  • size 1G: ruota il log se il file supera 1 gigabyte.

Se vengono specificati sia una frequenza temporale (ad esempio, daily) sia size, la rotazione avviene quando viene soddisfatta una delle due condizioni.

Esempio di configurazione di `logrotate`

Ecco un semplice esempio di file di configurazione che potrebbe trovarsi in /etc/logrotate.d/ per il file di log di un'applicazione ipotetica:

Questa configurazione ruoterà il log ogni giorno, conserverà 7 copie precedenti e le comprimerà.

/var/log/my_app/access.log {
    daily
    rotate 7
    compress
    notifempty
    missingok
}

Esecuzione manuale di `logrotate`

Sebbene logrotate venga normalmente eseguito automaticamente tramite cron, è possibile testare o forzare manualmente una rotazione. Il comando principale è logrotate /etc/logrotate.conf.

Per forzare una rotazione (utile per testare le configurazioni), utilizzi il flag -f:

  • logrotate -f /etc/logrotate.d/my_app: forza la rotazione per un file di configurazione specifico.
  • logrotate -f /etc/logrotate.conf: forza la rotazione per tutti i log configurati.

Utilizzi il flag -d (debug) per vedere cosa verrebbe eseguito senza effettuare realmente alcuna rotazione.

Verifica rapida: conservazione dei log

Consideri la seguente configurazione di logrotate per /var/log/webserver/error.log:

/var/log/webserver/error.log { weekly rotate 4 compress notifempty }

Se questa configurazione è stata eseguita per diverse settimane, quanti file di log storici *compressi* ci si aspetterebbe di trovare in un dato momento?

Riepilogo: gestione avanzata dei log

In questa lezione abbiamo visto come gestire efficacemente i log dei server utilizzando logrotate. Abbiamo imparato che:

  • La rotazione dei log impedisce l'esaurimento dello spazio su disco.
  • logrotate utilizza file di configurazione in /etc/logrotate.conf e /etc/logrotate.d/.
  • Le direttive principali includono daily/weekly/monthly per la frequenza, rotate per la conservazione, compress per risparmiare spazio e size per la rotazione condizionale.

Una gestione corretta dei log è fondamentale per garantire la stabilità dei server!

Domande Frequenti

La lezione «Rotazione e archiviazione dei log» è gratuita?

Sì — il testo completo di «Rotazione e archiviazione dei log» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Server Deployment & SSH Mastery, passa a CoddyKit PRO. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.

Cosa imparerò in «Rotazione e archiviazione dei log»?

Implementi `logrotate` per gestire le dimensioni dei file di log, prevenire l'esaurimento dello spazio su disco e garantire criteri efficienti di archiviazione dei log. Eserciti Linux Server Deployment & SSH Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Linux Server Deployment & SSH Mastery?

Non è richiesta alcuna esperienza precedente. Linux Server Deployment & SSH Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Rotazione e archiviazione dei log»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Linux Server Deployment & SSH Mastery?

Sì. Ogni lezione Linux Server Deployment & SSH Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Strumenti di monitoraggio del sistema
  2. Comprendere i log di sistema
  3. Rotazione e archiviazione dei log
  4. Monitoraggio e avvisi centralizzati
← Torna a Linux Server Deployment & SSH Mastery