Comment lire les logs sur Linux en temps réel avec tail, multitail

Dernière Mise à jour le

Lorsque l’on administre un serveur, on doit pouvoir lire les logs et journaux Linux en temps réel.
Cela peut aussi parfois être utile lorsque l’on rencontre des problèmes de fonctionnent sur son PC en Linux.

Cet article vous donne quelques commandes pour consulter les journaux Linux.
Mais aussi comment lire les logs en temps réel avec des commandes comme tail, multitail, etc.

Comment lire les logs sur Linux en temps réel avec tail, multitail
Comment lire les logs sur Linux en temps réel avec tail, multitail

Introduction aux journaux et logs Linux

Comme tout système d’exploitation, Linux enregistre des journaux et logs.
Ces derniers permettent d’obtenir des informations sur l’exécution des processus systèmes mais aussi aider lorsque vous avez des plantages (segfault, etc).

Liste des logs

Dans Linux les journaux système se trouvent dans /var/log/, on y trouve auth.log, kern.log, messages, syslog, daemon.log qui sont des journaux du système Linux.

  • /var/log/boot.log : Journal de démarrage du système (le journal de démarrage stocke toutes les informations relatives aux opérations de démarrage)
  • /var/log/auth.log : journaux d’authentification (le journal d’authentification stocke tous les journaux d’authentification, y compris les tentatives réussies et échouées)
  • /var/log/debug : journaux de débogage (le journal de débogage stocke des messages détaillés liés au débogage et est utile pour dépanner des opérations système spécifiques)
  • /var/log/daemon.log : journaux des démons (le journal des démons contient des informations sur les événements liés à l’exécution de l’opération Linux)
  • /var/log/maillog : journaux du serveur de messagerie (le journal de messagerie stocke les informations relatives aux serveurs de messagerie et à l’archivage des e-mails)
  • /var/log/kern.log : Journaux du noyau (le journal du noyau stocke les informations du noyau Ubuntu Linux)
  • /var/log/btmp : enregistrements d’échecs de tentatives de connexion
  • /var/log/utmp : état de connexion actuel, par utilisateur
  • /var/log/wtmp : historique des connexions / déconnexions
  • /var/log/lastlog : informations sur les dernières connexions pour tous les utilisateurs. Ce fichier binaire peut être lu par la commande lastlog.

Certaines daemon et applications peuvent y mettre leurs fichiers journaux, c’est le cas d’apache, postfix, mysql, nginx et bien d’autres.
Dans la capture ci-dessous, on voit que nordvpn, pihole créés aussi leurs logs dans /var/log.

Les logs et journaux de Linux dans /var/log

La rotation des logs

La compression et rotation des logs systèmes se fait avec logrotate.
Sans cela, les fichiers logs peuvent atteindre plusieurs centaines de Mo voire quelques Go selon l’application.

La rotation des logs dans Linux

Comment consulter les logs Linux

Pour consulter les logs, on peut utiliser les commandes habituels.

  • cat : permet de lire le contenu d’un fichier texte
  • head : lit les première partie d’un fichier
  • tail : lit la dernière partie d’un fichier

Et si le fichier log est compressé :

  • zcat : Affiche tout le contenu de logfile.gz
  • zmore : Voir le fichier en pages, sans décompresser les fichiers
  • zgrep : Rechercher dans un fichier compressé

Par exemple ci-dessous, on lit le contenu de /var/log/messages avec cat.
Cela affiche tout le fichier.
Ce n’est pas gênant lorsque le fichier log est court mais cela peut devenir difficile à dire quand il fait plusieurs Mo.

Comment consulter les logs Linux

Bien sûr on peut mettre des pauses mais selon les besoins, cela n’aide pas :

cat /var/log/fichier.log |more

Si on veut travailler qu’avec la fin du log, tail est la meilleure solution puisqu’il permet de ressortir -n lignes depuis la fin du fichier.
Par exemple ci-dessous, on ne lit que les 20 dernières lignes de /var/log/messages

tail -20 /var/log/messages
Comment consulter les logs Linux avec tail

rechercher dans les logs avec grep

grep est une commande très pratique pour trouver une occurrence dans un texte.
Elle est très puissant lorsque l’on sait s’en servir.

Ainsi pour une recherche dans les fichiers de logs Linux :

grep "[email protected]" /var/log/mail.log

Si on veut recherche dans tous les fichiers de logs, on utilise le paramètre -r :

grep -r "[email protected]" /var/log/*

dmesg

La commande dmesg imprime le tampon d’anneau du noyau.
Depuis la fenêtre du terminal, lancez la commande dmesg et l’ensemble du tampon d’anneau du noyau s’imprime.

dmesg pour imprimer le tampon d'anneau du noyau

dmesg permet de limiter la sortie à des évènements selon le niveau.
Par exemple pour sortir que les erreurs ou avertissements.

dmesg --level=err,warn

Ou encore pour filtrer la sortie sur des composants.

dmesg --facility=daemon
dmesg --facility=user

Comment lire les logs en temps réel sur Linux

tail

Tail permet de lire les derniers lignes d’un fichier.
Mais on peut aussi l’utiliser pour afficher les dernières entrées en temps réel.
Ainsi pour suivre les modifications d’un fichier journal et logs de Linux en temps réel :

tail -f /var/log/apache2/access

Dès que de nouvelles entrées seront écrites dans le fichier de log, vous les verrez à l’écran.

Vous pouvez également demander à tail de ne suivre qu’un nombre spécifique de lignes. Supposons que vous souhaitiez uniquement afficher les cinq dernières lignes écrites dans syslog; pour cela vous pouvez lancer la commande:

tail -f -n 5 /var/log/syslog

tail est très basique mais si vous devez simplement suivre les derniers entrées en tant réel des logs, il fait le job.

multitail

multitail est un utilitaire plus sophistiqué pour lire les journaux de Linux.
Il utilise le rendu necurs pour diviser la fenêtre afin de lire plusieurs fichiers journaux en même temps en temps réel.
On peut aussi combiner les journaux en une seule fenêtre.
La taille des fenêtres, du buffer (tampon) sont paramétrables.
Enfin on peut appliquer des couleurs sur des mots avec des regex.

multitail n’est pas inclut dans les distributions Linux.
Il faut donc l’installer, poru celles à bases de Debian, on peut utiliser apt-get.

apt-get install maultitail

Par exemple, pour combiner deux fichiers journaux dans une même fenêtre :

multitail /var/log/apache/access.log -I /var/log/apache/error.log

Plus complexes, avec trois fenêtres de logs différentes :

multitail -Z red,black,inverse -T -x "%m %[email protected]%h %f (%t) [%l]" -b 8 -m 200 -n 100 -cS apache -f -ev "(.ico|.js|.png|.css|.jpg|.css|.gif)" "/home/logs/apache2/access.log" -n 30 -f "/home/logs/apache2/error.log" -n 30 -f "/var/log/php7.3-fpm.log"
  • -b : Définit la largeur de TAB
  • -m : Définir la taille du tampon Définir les lignes sur 0 (zéro) si vous ne voulez pas de limites sur le tampon
  • -cS : le modèle de couleurs à appliquer
  • -ev : supprimer les lignes contenants telles occurrences. ici on retire les images.
multitail pour lire plusieurs fichiers journaux de Linux en temps réel

multitail avec deux fenêtres de logs différentes.

multitail pour lire plusieurs fichiers journaux de Linux en temps réel

Recherche dans les logs avec multitail

multitail permet de recherche dans le tampon.
On utilise le raccourci clavier /, vous pouvez faire une recherche de texte.

Rechercher dans les logs avec multitail

Par exemple pour ressortir tous les IP Google des logs.

Rechercher dans les logs avec multitail

Coloriser les fichiers logs

Dans le fichier de config /etc/multitail.conf, ce dernier propose plusieurs jeux et modèles de couleurs selon le type de logs.
Par exemple, ci-dessous Postfix, Apache, rsstail.
J’ai modifié apache pour afficher les lignes 404 ou 403 en rouge :

  • cs_re pour indiquer d’utiliser la commande avec un regex
  • suivi de la couleur red, cyan, green, etc
  • puis le regex

Ainsi :

  • cs_re:red: .*( 404|403 ).* : encadre l’occurrence 404 ou 403 pour coloriser toute la ligne. Si on retire les .*, cela va coloriser que le texte 404 ou 403.
  • cs_re:cyan: .*(bot|crawler).* : même chose avec bot ou crawler.
Coloriser les logs Linux avec multitail

Notez que l’on peut utiliser le paramètre cs_re directement dans la commande multitail.

Trouver la solution sur le forum d'aide

Vous êtes arrivé au terme de l'article Comment lire les logs sur Linux en temps réel avec tail, multitail mais vous n'avez pas trouvé la solution à votre problème...
Suivez ces articles du forum pour trouver une réponse ou demandez à votre tour de l'aide sur le forum


Vous avez trouvé cet article utile et interressant, n'hésitez pas à le partager...
Une question informatique ?
Un virus à supprimer ? Votre PC est lent ?
Demander de l'aide sur le forum
24 Partages
Tweetez
Partagez24
Enregistrer
Partagez