Logrotate: configurare la rotazione automatica dei log: differenze tra le versioni
Riga 18: | Riga 18: | ||
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 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 | Il file di configurazione principale si trova in /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: | ||
<pre> | <pre> | ||
PATH_DEL_FILE { | PATH_DEL_FILE { |
Versione delle 12:15, 15 feb 2010
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 si trova in /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 }