Logrotate

log-rotate

Logrotate est un outil système installé par défaut sur les distributions linux. Il permet d’effectuer la rotation de fichiers de logs automatiquement, d’effectuer leur compression, de les transférer par mail ou encore, de supprimer les fichiers obsolètes.

Son fichier de configuration principal est :

/etc/logrotate.conf

Si l’on veut rajouter des fichiers de logs à faire traiter par logrotate, il suffit de les placer en fin de fichier ou de mettre dans le fichier de configuration principal un include vers les fichiers de configuration secondaire.

A savoir que les paramètres de configuration locales supplantent ceux de configuration général et que les définitions en fin de fichier en font de même avec celles de début de fichier.

 

Voici une configuration simple d’une rotation de log d’un fichier access.log d’un site web :

/home/www/siteinternet.com/logs/access.log {
    rotate 7
    daily
    missingok
    notifempty
    postrotate
                              /usr/bin/killall -HUP apache2
    endscript
}

rotate 7 : ça tourne sur le log courant + 7 logs
daily : la rotation est faite tous les jours
missingok : si un log est manquant, cela continue avec le suivant sans faire de message d’erreur
notifempty : ne fait pas de rotation si le log est vide
postrotate /usr/bin/killall -HUP apache2: fait un kill des process apache orphelin

 

Si l’on veut traiter tous les fichiers .log d’un dossier en tant que logs sur lesquels on effectue une rotation plutôt que d’effectuer une configuration pour chaque fichier, nous pouvons simplement mettre en chemin absolu dans la configuration :  /home/www/siteinternet.com/logs/*.log

Les outils système système Linux utilisent déjà logrotate pour traiter leurs logs. Ils mettent leur configuration dans /etc/logrotate.d/ , chemin mis en include dans le fichier de configuration principal de logrotate.

root@serveur01:/# cd /etc/logrotate.d/
root@serveur01:/etc/logrotate.d# ls -al
total 48
drwxr-xr-x  2 root root 4096 15 déc.  11:48 .
drwxr-xr-x 94 root root 4096 16 déc.  22:51 ..
-rw-r--r--  1 root root  114 22 mars   2012 apache2
-rw-r--r--  1 root root  233 25 janv.  2012 apt
-rw-r--r--  1 root root   59 19 oct.   2012 aptitude
-rw-r--r--  1 root root  232 30 janv.  2012 dpkg
-rw-r--r--  1 root root  146 31 janv.  2012 exim4-base
-rw-r--r--  1 root root  126 31 janv.  2012 exim4-paniclog
-rw-r--r--  1 root root 1004  8 mars   2012 pure-ftpd-common
-rw-r--r--  1 root root  315  9 juin   2012 rsyslog
-rw-r--r--  1 root root  382  9 mars   2012 samba
-rw-r--r--  1 root root  251 13 janv.  2013 zabbix-agent

 

Remarques

On peut forcer l’exécution de logrotate avec la commande suivante :

serveur5.openlog.it:/# logrotate -f /etc/logrotate.conf

 

Il peut survenir l’erreur suivante lorsque logrotate s’exécute (d’une manière forcée ou non) :

serveur5.openlog.it:/# logrotate -f /etc/logrotate.conf
error: /etc/logrotate.conf:25 duplicate log entry for /home/www/siteinternet.com/logs/access.log

Dans ce cas, il s’agit simplement du fait qu’une rotation de ce log est présente plusieurs fichiers de configuration. Il suffit de commenter l’une des deux configurations.

Man de logrotate en français : http://www.delafond.org/traducmanfr/man/man8/logrotate.8.html

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *