Linux/Logrotate

De GeRgOsNet

Utilisation de logrotate pour compresser les fichiers de logs tous les X jours, semaines, mois, années ...

Logrotate est installé pas défaut sur une machine sous linux .

Configuration pour compresser un/des log(s) en particulier :

  • Créer un fichier de configuration dans le répertoire /etc/logrotate.d/ . Dans notre cas on va travailler sur un répertoire avec des logs apache spécifique à un site .
pico /etc/logrotate.d/monsite

On ajoute dedans :

/home/monsite/logs_apache/*.log {
       weekly
       missingok
       rotate 52
       compress
       delaycompress
       notifempty
       create 640 root adm
       sharedscripts
       postrotate
               if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
                       /etc/init.d/apache2 reload > /dev/null
               fi
       endscript

}


/home/monsite/logs_apache/*.log : Correspond aux fichiers log à utiliser

weekly : La rotation s’effectuera toutes les semaines. Nous pouvons aussi mettre daily pour tous les jours , monthly pour tous les mois.

missingok : signifie que l’absence du/des fichier(s) log(s) n’est pas anormale. Si cette option n’est pas active alors l’administrateur recevra un mail si le/les log(s) est/sont manquant(s).

rotate 52: Nous garderons 52 fichiers. Soit pour mon cas, 52 jours de logs

compress : Les fichiers logs secondaire c’est à dire tout ce qui n’est pas le fichier de log principal icon wink Rotation des logs avec logrotate seront compréssés.

delaycompress : Reporte la compression du journal précédent au prochain cycle de permutation. Ceci n’a un effet qu’utilisé en combinaison avec l’option compress. Elle peut être utilisée quand il n’est pas possible de demander à un programme de fermer son journal et qu’il puisse par conséquent continuer à écrire pour un moment dans le journal précédent.

notifempty: permet de ne pas permuter le journal lorsqu’il est vide

create 640 root : Les fichiers secondaire créés auront pour créateur root et auront les droits 640

postrotate/endscript : Les lignes entre prerotate et endscript (chacun devant apparaître sur une ligne isolée) sont exécutées avant permutation du journal. Ces directives doivent apparaîtrent dans la définition d’un journal

sharedscripts : permet d’executer qu’une fois le script postrotate par rotation


  • Une fois que vous avez fini de configurer votre logrotate, vous pouvez forcer sont éxecution de cette manière :
logrotate -f  /etc/logrotate.conf
  • Pour débugger :
logrotate -d /etc/logrotate.conf