Définition simple
logrotate est un outil Linux qui automatise la rotation, la compression, la conservation et la suppression des anciens fichiers de logs.
Définition technique
Ses règles peuvent être définies dans /etc/logrotate.conf et /etc/logrotate.d/. La rotation peut dépendre de la taille, de la fréquence, du nombre de générations et inclure des actions comme compress, postrotate ou, avec précaution, copytruncate.
Fonctionnement / rôle
À chaque exécution planifiée, logrotate évalue l’état des journaux et les règles applicables. Si une rotation est due, il renomme ou recrée le fichier, peut le compresser et exécuter une action pour demander au service de rouvrir son journal. Le fichier d’état évite de répéter inutilement les rotations.
À quoi cela sert ?
Éviter qu’un fichier de log ne remplisse le disque tout en conservant un historique exploitable.
Exemple concret
Les logs Nginx sont tournés chaque semaine, compressés et conservés pendant plusieurs générations ; un signal est ensuite envoyé à Nginx pour qu’il rouvre ses fichiers.
Problèmes fréquents
- Service continuant à écrire dans l’ancien fichier après rotation
- Règle jamais exécutée ou fichier d’état incohérent
- Rétention trop courte pour les besoins d’audit
- Usage de copytruncate pouvant perdre quelques lignes lors de la copie
Termes associés
À retenir : Une rotation fiable doit gérer à la fois la taille des fichiers, la rétention et la manière dont l’application rouvre son journal.