Logrotate: configurare la rotazione automatica dei log

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Document-page-setup.png Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.

Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template.


Introduzione

In questi giorni ho dovuto configurare la rotazione automatica dei log di un applicazione, altrimenti questi file rischiavano di diventare troppo grandi. Così mi sono deciso di scrivere questa guida-appunto per la configurazione del servizio. In effetti logrotate consente di fare in modo di "ruotare" i file di log, ma non solo, consente di cancellare, comprimere e inviare tramite mail i file di log troppo vecchi o che stanno assumendo delle dimensioni critiche per l'occupazione di spazio su disco.

Installazione

Per installare logrotate è sufficiente un

# apt-get install logrotate

Durante l'installazione verrà creato anche un cron che si occuperà, giornalmente, di richiamare logrotate per effettuare la rotazione dei file di log. Se l'installazione viene fatta su un portatile, consiglio anche l'installazione di Anacron.


Funzionamento

Il funzionamento, di per sè, è molto semplice: ad intervalli regolari viene lanciato il programma logrotate, che si occupa di effettuare le rotazioni dei file di log in base alle impostazioni presenti nei file di configurazione.

Il file di configurazione principale è /etc/logrotate.conf che detta le impostazioni globali per il funzionamento del programma attraverso il solito schema "direttiva valore", nello stesso file possono essere inserite delle impostazioni specifiche per ogni file di log che si voglia gestire secondo lo schema sotto riportato:

PATH_DEL_FILE {
direttiva_1 valore_1
direttiva_2 valore_2
.....
direttiva_n valore_n
}

Una direttiva importantissima, presente nella sezione delle impostazioni globali di logrotate.conf è include, questa direttiva può essere seguita da un file o da una directory (solitamente /etc/logrotate.d/), nel primo caso viene "incluso" il file di configurazione passato come valore, nel secondo tutti i file di configurazione presenti nella directory. I file indicati in tale direttiva rispecchiano lo schema di cui sopra.


Per capire meglio il funzionamento (e di cosa è capace questo software) prendiamo in considerazione alcuni file di configurazione, andando a vedere le direttive e a cosa servono:


Per capire meglio il funzionamento (e di cosa è capace questo software) prendiamo in considerazione alcuni file di configurazione:

Apache

La particolarità di questo file di configurazione è la necessità di riavviare il servizio al termine della rotazione:

/var/log/apache2/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if [ -f /var/run/apache2.pid ]; then
                        /etc/init.d/apache2 restart > /dev/null
                fi
        endscript
}

Aptitude

/var/log/aptitude {
  rotate 6
  monthly
  compress
  missingok
  notifempty
}

munin-node

/var/log/munin/munin-node.log {
        daily
        missingok
        rotate 7
        compress
        copytruncate
        notifempty
        create 640 root adm
}

Definizione di una rotazione personalizzata

Elenco Opzioni