From ef742ba11bdeccb940b98688ecf7b0fc36805c59 Mon Sep 17 00:00:00 2001 From: btatu Date: Tue, 5 Nov 2019 17:28:22 +0100 Subject: [PATCH] reorganization + add example for compress logs whithout rotate --- HowtoLogrotate.md | 55 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/HowtoLogrotate.md b/HowtoLogrotate.md index 757ff5ec..abbdd93f 100644 --- a/HowtoLogrotate.md +++ b/HowtoLogrotate.md @@ -3,7 +3,10 @@ categories: storage log utilities file filesystem title: Howto Logrotate ... -* Documentation : +* Documentation : + +- +- Logrotate est un programme qui permet de gérer la croissance et l'historique des fichiers de logs. Le programme est exécuté @@ -13,8 +16,8 @@ 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 +Ce programme est spécifique aux distributions Linux, *sous les systèmes +de la famille BSD, l'équivalent de logrotate est newsyslog* # Installation @@ -24,15 +27,9 @@ de la famille *BSD, l'équivalent de logrotate est newsyslog logrotate 3.11.0 ~~~ -# Stratégie de gestion +## Rotation et compression de logs -Il y a de très nombreuses stratégies de gestion des logs, en voici quelques unes illustrées. - -cf. - -## Applications Ruby - -Pour les serveurs d'application comme Puma, Unicorn, ... : +Exemple de configuration pour les serveurs d'application comme Puma, Unicorn, ... : ~~~ /home/USER/apps/production/*/shared/log/*.log { @@ -54,17 +51,43 @@ Cette stratégie va faire une rotation hebdomadaire, conserver 52 semaines (1 an 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 : +## 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 -Dans le cas où on log beaucoup et on n'a pas beaucoup d'espace libre pour -la partition où résident les logs, on peut augmenter la fréquence de -rotation des logs en appliquant ce pseudo-diff : +Si les logs prennent beaucoup d'espace disque, on peut augmenter la fréquence de rotation en effectuant ce changement : ~~~ - weekly @@ -73,8 +96,6 @@ rotation des logs en appliquant ce pseudo-diff : + rotate 365 ~~~ -## FAQ - ### parent directory has insecure permissions Si erreur du type :