reorganization + add example for compress logs whithout rotate
This commit is contained in:
parent
c0507e2cee
commit
ef742ba11b
|
@ -3,7 +3,10 @@ categories: storage log utilities file filesystem
|
||||||
title: Howto Logrotate
|
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
|
Logrotate est un programme qui permet de gérer la croissance et
|
||||||
l'historique des fichiers de logs. Le programme est exécuté
|
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, ...)
|
programmes qui génèrent des logs (par exemple Apache, Postfix, ...)
|
||||||
fournissent généralement une configuration pour logrotate.
|
fournissent généralement une configuration pour logrotate.
|
||||||
|
|
||||||
Ce programme est spécifique aux distributions Linux, sous les systèmes
|
Ce programme est spécifique aux distributions Linux, *sous les systèmes
|
||||||
de la famille *BSD, l'équivalent de logrotate est newsyslog
|
de la famille BSD, l'équivalent de logrotate est newsyslog*
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
@ -24,15 +27,9 @@ de la famille *BSD, l'équivalent de logrotate est newsyslog
|
||||||
logrotate 3.11.0
|
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.
|
Exemple de configuration pour les serveurs d'application comme Puma, Unicorn, ... :
|
||||||
|
|
||||||
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 {
|
/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.
|
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/
|
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
|
### Augmenter la fréquence des logs
|
||||||
|
|
||||||
Dans le cas où on log beaucoup et on n'a pas beaucoup d'espace libre pour
|
Si les logs prennent beaucoup d'espace disque, on peut augmenter la fréquence de rotation en effectuant ce changement :
|
||||||
la partition où résident les logs, on peut augmenter la fréquence de
|
|
||||||
rotation des logs en appliquant ce pseudo-diff :
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
- weekly
|
- weekly
|
||||||
|
@ -73,8 +96,6 @@ rotation des logs en appliquant ce pseudo-diff :
|
||||||
+ rotate 365
|
+ rotate 365
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
### parent directory has insecure permissions
|
### parent directory has insecure permissions
|
||||||
|
|
||||||
Si erreur du type :
|
Si erreur du type :
|
||||||
|
|
Loading…
Reference in New Issue