2017-09-09 16:14:01 +02:00
|
|
|
Logrotate est un programme qui permet de gérer la croissance et l'historique des fichiers de logs.
|
2016-12-29 11:25:39 +01:00
|
|
|
|
|
|
|
# Principe général
|
|
|
|
|
|
|
|
Le programme est exécuté régulièrement, avec un fichier de configuration en paramètre.
|
2017-09-09 16:14:01 +02:00
|
|
|
Par défaut, c'est `/etc/logrotate.conf` qui charge toutes les configurations présentes dans `/etc/logrotate.d/`
|
|
|
|
Les paquets des programmes qui génèrent des logs (par exemple Apache, Postfix, ...) fournissent généralement une configuration pour logrotate.
|
2016-12-29 11:25:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
# Stratégie de gestion
|
|
|
|
|
|
|
|
Il y a de très nombreuses stratégies de gestion des logs, en voici quelques unes illustrées.
|
|
|
|
|
|
|
|
cf. <https://manpages.debian.org/cgi-bin/man.cgi?query=logrotate>
|
|
|
|
|
|
|
|
## Applications Ruby
|
|
|
|
|
|
|
|
Pour les serveurs d'application comme Puma, Unicorn, ... :
|
|
|
|
|
|
|
|
~~~
|
|
|
|
/home/USER/apps/production/*/shared/log/*.log {
|
|
|
|
su USER GROUP
|
|
|
|
weekly
|
|
|
|
missingok
|
|
|
|
rotate 52
|
|
|
|
compress
|
|
|
|
delaycompress
|
|
|
|
notifempty
|
|
|
|
dateext
|
|
|
|
dateformat .%Y-%m-%d
|
|
|
|
dateyesterday
|
|
|
|
copytruncate
|
|
|
|
}
|
|
|
|
~~~
|
|
|
|
|
|
|
|
Cette stratégie va faire une rotation hebdomadaire, conserver 52 semaines (1 an), compresser les logs passés après les avoir datés.
|
|
|
|
|
2017-09-09 16:14:01 +02:00
|
|
|
L'instruction `copytruncate` est importante car le descripteur de fichier ouvert par l'application ne va pas changer.
|
|
|
|
|
|
|
|
Pour vérifier qu'il n'y a pas d'erreurs de syntaxe :
|
|
|
|
|
|
|
|
~~~
|
|
|
|
logrotate /etc/logrotate.d/
|
|
|
|
~~~
|
|
|
|
|
|
|
|
## FAQ
|
|
|
|
|
|
|
|
Si erreur du type :
|
|
|
|
|
|
|
|
` error: skipping "*.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root")`
|
|
|
|
|
|
|
|
Uniquement l'utilisateur concerné par la gestion des logs doit avoir un accès en écriture à ce dossier. Soit un chmod 750 marche bien.
|