[Guida] Sysadmin GNU/Linux: la manutenzione dei log tramite logrotate
Una delle principali competenze di un sysadmin, è sicuramente la capacità di comprendere i file di log. Questi possono essere considerati la bussola da seguire, per scoprire eventuali malfunzionamenti del sistema. Dopo le guide su systemctl e sulla gestione dei servizi, oggi continuiamo il percorso nella sistemistica GNU/Linux esplorando le opzioni di logrotate.
Logrotate e la rotazione dei log
I vari demoni di sistema registrano in appositi file gli eventi degni di nota per futura memoria. Nelle moderne distribuzioni i programmi più diffusi per questo scopo sono journald e rsyslogd. Come è facile intuire, la dimensione dei file di log è direttamente proporzionale alla frequenza e alla verbosità delle registrazioni chiamate dai processi. Serve quindi un qualcosa per manutenerli, evitando così la saturazione di intere partizioni.
Per effettuare la rotazione dei file di registro, è stato creato un apposito programma chiamato logrotate. Configurarlo ci permette di automatizzare una serie di operazioni quali la compressione dei file di registro o la rimozione delle loro versioni obsolete. Le direttive per il suo funzionamento generale sono contenute, come suole, nel file /etc/logrotate.conf.
Riassumiamo le principali istruzioni:
- daily, weekly, monthly: indicano i tempi di rotazione;
- rotate n: specifica il numero n di copie dei file di log che devono essere mantenute in una successione di rotazioni. Il file n+1 esimo sarà cancellato;
- create: crea un nuovo file di log vuoto al termine della rotazione;
- compress: comprime le vecchie versioni del file di log tramite gzip;
- prerotate, postrotate: per eseguire dei comandi precedentemente o successivamente una rotazione.
Il file contenente le direttive specifiche per ciascun servizio è invece /etc/logrotate.d. Ad esempio su Linux Mint, se vado a studiare la rotazione dei log del servizio mintupdate, l’output sarà il seguente:
/var/log/mintupdate.log { rotate 12 monthly compress missingok // se il file di registro è assente non genera errore notifempty // non effettua la rotazione se il file è vuoto nocreate }
Come sempre, per una trattazione puntuale della sintassi e di tutte le opzioni possibili, basterà fare riferimento all’apposita pagina del manuale che torna sempre utile ai sysadmin: man logrotate.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.