Comment configurer logrotate pour l'archivage automatique des journaux et l'économie d'espace serveur
La gestion des journaux est une partie cruciale du travail de tout administrateur système. Les journaux qui ne sont pas indexés peuvent rapidement occuper tout l'espace disque disponible, ralentir le serveur et provoquer des erreurs imprévisibles. Dans cet article, nous expliquerons comment configurer et utiliser logrotate pour le nettoyage et la rotation automatiques des journaux sur un serveur.
Qu'est-ce que logrotate et pourquoi est-il important de l'utiliser ?
Logrotate est un outil conçu pour la gestion automatique des journaux. Il permet de :
- Nettoyer les anciens journaux — supprime ou archive automatiquement les anciens fichiers journaux.
- Économiser de l'espace disque — compresse et supprime les journaux inutiles.
La rotation des journaux empêche l'accumulation de journaux et le débordement du disque, ce qui pourrait entraîner des pannes et une perte de données. Logrotate archive automatiquement les anciens journaux et fait de la place pour de nouvelles données.
Comment fonctionne logrotate ?
Lorsque logrotate est actif, il effectue automatiquement les étapes suivantes :
- Rotation des journaux — les anciens journaux sont renommés et stockés, tandis que de nouveaux fichiers sont créés à leur place.
- Compression — les anciens journaux peuvent être compressés au format .gz pour économiser de l'espace.
- Suppression — les journaux obsolètes peuvent être supprimés s'ils ne sont plus nécessaires.
Exemple : Un fichier journal nommé access.log peut être transformé en access.log.1, puis compressé en access.log.1.gz, et finalement supprimé après une période de rétention spécifiée.
---
Comment configurer logrotate
1. Installation de logrotate
Sur la plupart des systèmes Linux, logrotate est pré-installé. Pour vérifier si logrotate est installé, exécutez la commande :
sudo logrotate --version
Si logrotate n'est pas installé, il peut être installé via un gestionnaire de paquets.
- Pour Debian/Ubuntu :
sudo apt update && sudo apt install logrotate
- Pour CentOS/RockyLinux/AlmaLinux :
sudo yum install logrotate
2. Configuration de logrotate
La configuration de logrotate est généralement stockée dans /etc/logrotate.conf. Ce fichier contient les paramètres généraux pour tous les journaux du serveur. Pour configurer la rotation des journaux individuels, vous pouvez créer des fichiers de configuration séparés pour différents services dans le répertoire /etc/logrotate.d/.
Exemple de configuration Nginx standard :
/var/log/nginx/*.log {
daily # Les journaux sont archivés quotidiennement
missingok # Ne pas afficher d'erreur si le journal est manquant
rotate 7 # Conserver 7 fichiers archivés
compress # Compresser les anciens journaux
delaycompress # Retarder la compression jusqu'à la rotation suivante
notifempty # Ne pas archiver les fichiers vides
create 0640 www-data adm # Créer de nouveaux journaux avec des permissions spécifiques
}
3. Paramètres clés de configuration
- daily/weekly/monthly — définit la fréquence d'indexation du fichier journal (quotidienne, hebdomadaire ou mensuelle).
- rotate [N] — spécifie le nombre de journaux archivés à conserver.
- compress — active la compression des fichiers journaux (généralement au format .gz).
- missingok — empêche les erreurs si un fichier journal est manquant.
- notifempty — ignore l'indexation pour les fichiers vides.
- create — crée de nouveaux journaux avec les permissions spécifiées.
4. Exécution de logrotate
Logrotate s'exécute généralement automatiquement via cron. Cependant, vous pouvez l'exécuter manuellement si vous devez vérifier la configuration ou effectuer une rotation immédiatement :
sudo logrotate -f /etc/logrotate.conf
5. Vérification du fonctionnement de logrotate
Pour vous assurer que logrotate fonctionne correctement, vous pouvez vérifier les dernières entrées dans son journal de service :
sudo journalctl -u logrotate -n 10