Browse Source

reorganization + add example for compress logs whithout rotate

master
btatu 9 months ago
parent
commit
ef742ba11b
1 changed files with 38 additions and 17 deletions
  1. +38
    -17
      HowtoLogrotate.md

+ 38
- 17
HowtoLogrotate.md View File

@@ -3,7 +3,10 @@ categories: storage log utilities file filesystem
title: Howto Logrotate
...

* Documentation : <https://linux.die.net/man/8/logrotate>
* Documentation :

- <https://linux.die.net/man/8/logrotate>
- <https://manpages.debian.org/cgi-bin/man.cgi?query=logrotate>

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

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>
## Rotation et compression de logs

## 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 :


Loading…
Cancel
Save