mirroir readonly du Gitit wiki.evolix.org (attention, ne rien commiter/merger sur ce dépôt) https://wiki.evolix.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.0 KiB

categories title
storage log utilities file filesystem Howto Logrotate
  • Documentation :

Logrotate est un programme qui permet de gérer la croissance et l’historique des fichiers de logs. Le programme est exécuté régulièrement, avec un fichier de configuration en paramètre. 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.

Ce programme est spécifique aux distributions Linux, sous les systèmes de la famille BSD, l'équivalent de logrotate est newsyslog

Installation

# apt install foo
# logrotate --version
logrotate 3.11.0

Rotation et compression de logs

Exemple de configuration 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.

L’instruction copytruncate est importante car le descripteur de fichier ouvert par l’application ne va pas changer.

Compresser des logs sans faire la rotation

Admettons que l’on ait une application qui fait sa rotation de log mais ne fait pas de compression :

/usr/local/apps/logs/*.log.*[!gz] {
    su USER GROUP
    daily
    missingok
    rotate 365
    compress
    dateext
    dateformat 
}

Cette stratégie va faire une rotation journalière, conserver 365 jours, compresser les logs ayant dans le nom de fichier $NOM__FICHIER.log.$DATE mais ne ne concernant pas les fichiers déjà compressé portant l’extention .gz.

Tester et valider la configuration

  • Pour vérifier qu’il n’y a pas d’erreurs globalement de syntaxe :
logrotate /etc/logrotate.d/
  • Pour débugger le comportement d’un fichier de configuration :
logrotate --verbose --debug --force /etc/logrotate.d/fichier_configuration

FAQ

Augmenter la fréquence des logs

Si les logs prennent beaucoup d’espace disque, on peut augmenter la fréquence de rotation en effectuant ce changement :

-        weekly
+        daily
-        rotate 52
+        rotate 365

parent directory has insecure permissions

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.

delaycompress

L’option delaycompress permet d’avoir un fichier .1 non compressé (à la place d’un .1.gz donc). TODO expliquer dans quel cas on veut ça