Tanti demoni in esecuzione in CentOS Linux creano i propri file di log. Questi file di log contengono messaggi utili relativi al funzionamento di questi demoni. Per esempio messaggi di errore che aiutano a diagnosticare problemi con il sistema. Nel corso del tempo questi file di log devono essere ruotati in modo che siano più facili da gestire. La rotazione dei log è il processo di suddivisione dei file di log di grandi dimensioni e l’archiviazione dei vecchi file di log per riferimento futuro. In CentOS un programma chiamato logrotate è responsabile della rotazione dei file di log. In questo post vedrò come personalizzare il funzionamento di logrotate.
Eseguire logrotate
logrotate è eseguito quotidianamente da cron tramite il file /etc/cron.daily/logrotate. In CentOS 5.x cron è responsabile dell’esecuzione di lavori cron di sistema come logrotate. Può essere configurato modificando /etc/crontab.
In CentOS 6.x anacron è installato di default ed è responsabile dell’esecuzione dei cron job di sistema.
logrotate.conf
logrotate.conf si trova in /etc/ e contiene la configurazione predefinita del sistema per logrotate. Per impostazione predefinita su CentOS logrotate ruoterà i log settimanalmente e manterrà 4 settimane di arretrati. Puoi personalizzare logrotate.conf ma di solito è meglio personalizzare la configurazione della rotazione dei log del singolo demone in /etc/logrotate.d/
/etc/logrotate.d/
Questa directory contiene i file di rotazione dei log per diversi servizi in esecuzione sul sistema.
Un tipico file in questa directory è questo per Apache ( /etc/logrotate.d/httpd ):
/var/log/httpd/*log { missingok monthly notifempty sharedscripts postrotate /sbin/service httpd reload > /dev/null 2> /dev/null || true endscript}
La prima linea è un’espressione regolare che corrisponde ai file di log. In questo caso tutti i file che terminano in “log” e che risiedono nella directory /var/log/httpd.
Poi all’interno delle parentesi graffe di apertura e di chiusura si hanno le opzioni per la rotazione dei log per i file di questo demone. Nel caso precedente hai configurato una rotazione mensile.
Opzioni per logrotate
Alcune delle opzioni che puoi includere nel file logrotate.conf o nei file di rotazione dei log dei singoli demoni in /etc/logrotate.d/ sono :
- rotate: Specifica il numero di back log da mantenere usando l’opzione rotate. Per esempio “rotate 5” manterrà 5 vecchi file di log.
- compress: Comprimerà i vecchi file di log per risparmiare spazio su disco.
- giornaliero, settimanale, mensile o annuale: Ruota i log dopo che il periodo specificato è passato.
- dimensione: Specifica la dimensione del file di log per attivare la rotazione. Per esempio “size 50M” ruoterà il file di log se ha una dimensione di 50MB o superiore. Puoi usare il prefisso M per megabyte, k per kilobyte e G per gigabyte. Se non viene usato alcun prefisso, verrà considerato un byte.
- minsize: Questo è come la dimensione, tranne che tiene conto anche del periodo (mensile, settimanale, ecc.). Quindi ruoterà i file di log solo se il periodo è raggiunto E i file di log sono più grandi del minsize specificato.
- prerotate e postrotate: Questi specificano i comandi che puoi eseguire prima e dopo la rotazione dei log. Per esempio riavviando il demone dopo la rotazione dei log.
Per l’elenco completo delle opzioni disponibili vedere il file man di logrotate.conf (man logrotate.conf su CentOS).