Accueil Technologies Logrotate – l’archivage / rotation des logs sur les systèmes Linux
logrotate

Logrotate – l’archivage / rotation des logs sur les systèmes Linux

par Jérémy PASTOURET
Publié : Mis à jour le

Vous avez peut-être déjà entendu parler de services exécutés en arrière-plan. Ces services se lancent automatiquement à des moments prévus par l’utilisateur ou le développeur. Pour vous donner une meilleure idée, je vous propose quelques exemples :

  • Quand votre système vous alerte de la présence de nouvelles mises à jour, c’est parce qu’un service qui fonctionne tout seul va vérifier sur internet si une nouvelle mise à jour existe.
  • Il existe aussi un service qui vérifie que votre ordinateur est à l’heure. Si ce n’est pas le cas, il le remet à l’heure automatiquement.

Le point commun entre tous ces services ? Ils sont très discrets, et il n’existe pas vraiment d’interface graphique pour connaître leur état ou les actions qu’ils ont effectuées. Certains programmes ou logiciels sont dans le même cas, dans le sens où ils n’affichent pas le détail des erreurs à l’utilisateur. En revanche, ils inscrivent dans un fichier de logs les actions, les événements qui se sont bien ou mal passés, des données qui peuvent aider le développeur à comprendre ce qui s’est produit, etc. Le problème, c’est que les logs s’accumulent au fil des jours.

Prenons par exemple le cas d’un serveur web hébergeant un site web. On peut vite atteindre des Gigas d’informations stockées dans des logs, juste pour indiquer qu’un visiteur a accédé à telle et telle page. Alors pour éviter de saturer son espace disque, on peut utiliser un programme nommé Logrotate.

Qu’est-ce que Logrotate ?

Logrotate est un service qui s’exécute en arrière-plan, en différentes occasion définies par le propriétaire de l’ordinateur – ou par le développeur qui a développé un service produisant des logs. Le principe est simple : on définit une fréquence (par exemple tout les jours), puis on indique dans un fichier de configuration comment gérer les fichiers de logs.

Exemple de log passé avec logrotate

Vous voyez ci-dessus un exemple de traitement de log. Vous pouvez en faire vous-même l’expérience en vous rendant dans le répertoire dédié au logs (/var/logs/). En examinant cette capture d’écran, on peux constater qu’il existe un fichier simple syslog contenant les informations du jour. Le fichier syslog.1 contient les logs de la veille. L’archive syslog.2.gz contient les logs d’il y a deux jours (de façon compressée pour optimiser l’espace de stockage). Les logs sont historisés jusqu’au 8e jour, puis l’archive la plus vieille est supprimée. Cette opération se nomme la rotation des fichiers : le premier devient le deuxième, le deuxième est compressé et prend la troisième position, etc.

Comment se configure Logrotate ?

Configuration de logrotate

Avant de se lancer dans la configuration pure et dure de rotation de log, je vais vous montrer l’envers du décor. Cela vous permettra de mieux identifier où se trouvent les différents éléments. Commençons par le début, avec le fichier de configuration générale de Logrotate. Il se situe à cet endroit :

/etc/logrotate.conf

Vous pouvez le consulter en utilisant la commande cat. Le contenu est le suivant :

# see "man logrotate" for details
# rotate log files weekly
weekly

# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here

Je vais vous présenter dans les grandes lignes la configuration globale de Logrotate. La première ligne (weekly) indique que, par défaut, les configurations par programme auront une fréquence hebdomadaire si celle-ci n’est pas précisée.

La ligne rotate 4 indique le nombre de fichier conservés. C’est-à-dire que, par défaut, le système conserve au maximum 4 fichier de logs par programme.

La ligne create spécifie que lorsque le fichier du jour est déplacé en log_1, le système recrée automatiquement un nouveau fichier pour le jour courant. Il arrive que certains programmes n’aient pas prévu au préalable la création de fichier de logs. Ce qui peut provoquer une erreur.

Quant à la ligne include /etc/logrotate.d, elle est très importante. En effet, elle inclut toutes les configurations personnalisées de chaque programme. Il arrive aussi que certains programmes intègrent directement leurs configurations dans le fichier général comme wtmp et btmp. Je ne vous encourage pas à prendre cette voie. Car si vous vous trompez, vous impacterez tout les autres programmes.

Conclusion

Bannière conclusion

J’espère que cet article vous aura apporté quelques bases pour comprendre l’utilité de Logrotate.

Pour écrire ce tuto / article, nous avons utilisé les commandes sur notre serveur chez notre partenaire IKOULA. Pour plus d’informations sur leur service, rendez-vous sur leur site ou sur notre article consacré aux solutions d’IKOULA.

Maintenant je parie que vous êtes pressés de lire l’article permettant de créer une nouvelle configuration pour un service donnée.

Vous pourriez aussi aimer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.