Articles

Configuration de Logrotate sur RedHat Linux

Posted on

Logrotate est un utilitaire conçu pour les administrateurs qui gèrent des serveurs produisant un grand volume de fichiers journaux afin de les aider à économiser un peu d’espace disque ainsi que pour éviter un risque potentiel rendant un système non réactif à cause du manque d’espace disque. Normalement, une solution pour éviter ce genre de problème est de configurer une partition séparée ou un volume logique pour un point de montage /var. Cependant, logrotate peut également être une solution viable à ce problème, surtout s’il est trop tard pour déplacer tous les journaux sous une autre partition. Dans cet article, nous parlerons de l’utilisation et de la configuration de logrotate sur un serveur Linux RedHat / CentOS.

Qu’est-ce que Logrotate

Logrotate offre la possibilité à un administrateur système de faire tourner et d’archiver systématiquement tous les fichiers journaux produits par le système et de réduire ainsi l’espace disque nécessaire à un système d’exploitation. Par défaut, logrotate est invoqué une fois par jour en utilisant un planificateur cron à partir de l’emplacement /etc/cron.daily/

# ls /etc/cron.daily/
cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch

Configuration de Logrotate

La configuration de Logrotate se fait en éditant deux fichiers de configuration distincts :

  • /etc/logrotate.conf
  • des fichiers de configuration spécifiques au service stockés dans /etc/logrotate.d/.

Le fichier principal logrotate.conf contient une configuration générique. Voici un fichier de configuration de logrotate par défaut logrotate.conf:

 1 weekly 2 rotate 4 3 create 4 dateext 5 include /etc/logrotate.d 6 /var/log/wtmp { 7 monthly 8 create 0664 root utmp 9 minsize 1M 10 rotate 1 11 }
  • Ligne 1 – l’option de configuration hebdomadaire assure une rotation hebdomadaire de tous les fichiers journaux définis dans le fichier de configuration principal et dans le répertoire /etc/logrotate.d/.
  • Ligne 2 – rotate 4 assure que logrotate conserve une sauvegarde de 4 semaines de tous les fichiers journaux
  • Ligne 3 – option create demande à logrotate de créer de nouveaux fichiers journaux vides après chaque rotation
  • Ligne 4 – dateext ajoute une extension à tous les fichiers journaux tournés sous la forme de la date à laquelle chaque fichier journal particulier a été traité par logrotate
  • Ligne 5 – inclut toutes les autres configurations du répertoire /etc/logrotate.d
  • Ligne 6 – 11 contient une configuration de rotation de journal de service spécifique

Par opposition à logrotate.conf un répertoire /etc/logrotate.d/ contient un service spécifique de fichiers de configuration utilisés par logrotate. Dans la section suivante, nous allons créer un exemple de configuration squelette de logrotate.

SUBSCRIBE NEWSLETTER & RSS
S’abonner à RSS et NEWSLETTER et recevoir les dernières nouvelles de Linux, les emplois, les conseils de carrière et les tutoriels.

Inclusion de nouveaux journaux de service à logrotate

Dans cette section, nous allons ajouter un nouveau fichier journal dans une configuration logrotate. Disons que nous avons un fichier journal appelé:

/var/log/linuxcareer.log

situé dans notre répertoire /var/log qui doit être tourné sur une base quotidienne. Nous devons d’abord créer un nouveau fichier de configuration de logrotate pour accueillir notre nouveau fichier journal :

$ vi /etc/logrotate.d/linuxcareer

Insérer un texte suivant dans /etc/logrotate.d/linuxcareer:

/var/log/linuxcareer.log {
missingok
notifempty
compress
size 20k
daily
create 0600 root root
}

Voici une explication ligne par ligne du fichier de configuration logrotate ci-dessus:

TIP : Si vous souhaitez inclure plusieurs fichiers journaux dans un seul fichier de configuration, utilisez un caractère de remplacement. Par exemple /var/log/mylogs/*.log demandera à logrotate de faire tourner tous les fichiers journaux situés dans /var/log/mylogs/ avec l’extension .log.

  • missingok – ne pas sortir d’erreur si le fichier de log est manquant
  • notifempty – ne pas faire tourner le fichier de log s’il est vide
  • compresser – Les anciennes versions des fichiers de log sont compressées avec gzip(1) par défaut
  • taille -. Le fichier journal n’est tourné que s’il grossit de plus de 20k
  • quotidien – assure une rotation quotidienne
  • create – crée un nouveau fichier journal avec des permissions 600 où le propriétaire et le groupe sont l’utilisateur root

L’utilitaire logrotate comme assez polyvalent car il fournit beaucoup plus d’options de configuration. Ci-dessous, je vais énumérer quelques autres options de configuration pour logrotate. Pour obtenir une liste complète, consultez la page de manuel de logrotate:

$ man logrotate
  • copie – Faire une copie du fichier journal, mais ne pas modifier du tout l’original.
  • mail <email@address> – Lorsqu’un journal est tourné hors d’existence, il est envoyé par courrier à l’adresse.
  • olddir <directory> – Les journaux sont déplacés dans <directory> pour la rotation.
  • postrotate/endscript – Les lignes entre postrotate et endscript sont exécutées après la rotation du fichier journal.

Tester une nouvelle configuration de Logrotate

Une fois que vous avez créé un nouveau fichier de configuration de Logrotate dans /etc/logrotate.d:

créer un exemple de fichier journal ( s’il n’existe pas ! ):

# echo "rotate my log file" > /var/log/linuxcareer.log

Une fois que votre fichier journal est en place, forcez logrotate à faire tourner tous les journaux avec l’option -f.

# logrotate -f /etc/logrotate.conf

Avertissement : La commande ci-dessus fera tourner tous vos journaux définis dans le répertoire /etc/logrotate.d.

Maintenant, visitez à nouveau votre répertoire /var/log/directory et confirmez que votre fichier journal a été tourné et qu’un nouveau fichier journal a été créé :

Comme vous pouvez le voir, le nouveau fichier journal vide linuxcareer.log a été créé et l’ancien fichier linuxcareer.log a été compressé avec gzip et renommé avec l’extension date.

TIP : Afin de voir un contenu de votre fichier journal compressé, vous n’avez pas besoin de le décompresser d’abord. Utilisez les commandes zcat ou zless qui décompresseront votre fichier journal à la volée.

Conclusion

Comme il a déjà été mentionné précédemment, la meilleure façon d’éviter que votre système soit engorgé par les fichiers journaux est de créer une partition/un volume logique séparé pour votre répertoire /var/ ou encore mieux /var/log. Cependant, même dans ce cas, Logrotate peut vous aider à économiser de l’espace disque en compressant vos fichiers journaux. Logrotate peut aussi vous aider à archiver vos fichiers de logs pour une référence future en créant une copie supplémentaire ou en vous envoyant par email les fichiers de logs nouvellement tournés. Pour plus d’informations, consultez la page de manuel de logrotate:

$ man logrotate

.

Laisser un commentaire

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