Introduction

Surveiller des logs dans une console est quelque chose de laborieux et toute solution permettant de simplifier cette tâche ingrate est bonne...

Et c'est justement là qu'intervient Log Watcher, une application qui va vous améliorer grandement la vie lorsque vous aurez besoin de surveiller d'ininterrompu log...

Description

Traduction libre du manuel lwatch :

Log Watcher est un "log colorizer", c'est à dire un programme capable de mettre en couleur des logs en fonction d'une syntaxe, en l'occurrence, en fonction de mots rencontrés.
Il lit le contenu de syslog/syslog-ng depuis des tubes nommées (named fifo) ou depuis l'entrée standard (stdin) et affiche les données colorées dans la sortie standard (stdout).

Lwatch est hautement configurable. Il lit sa configuration depuis /etc/lwatch/lwatch.cond ou depuis un fichier grâce à l'option -C.

Son fonctionnement est simple. il lit une ligne depuis l'entrée courante (par défaut, /var/lib/lwatch/syslog.fifo), la divise en 4 parties : date, nom d'hôte, nom du service (avec le PID si disponible) et le message associé.
Chaque partie possède sa propre couleur qu'il est possible de définir grâce au fichier de configuration, les couleurs par défaut sont les mêmes que pour loco.

Mais lwatch n'est pas seulement un simple log colorizer, il est capable de colorer les logs de la manière qu'on le souhaite. Il est possible de choisir une nouvelle couleur pour chaque partie (date, nom d'hôte, service, message) en utilisant des expressions régulières.

Installation

L'installation est aisée avec Ubuntu, en effet, elle se résume simplement à saisir ceci dans un terminal :

sudo apt-get install lwatch

Et voilà lwatch installé sur votre machine.

Configuration

Il est possible de configurer l'affichage à l'aide du fichier /etc/lwatch/lwatch.conf dont la syntaxe est assez simple, voici un exemple de celle ci :

[...]
/reject\\w*/    highlight=red
/accept\\w*/    highlight=green
/success\\w*/   highlight=green
/sent/        highlight=green
/lost/        highlight=red   
/deferred/    highlight=brown
[...]

Que veut dire ce charabia ?
En fait, ce sont des règles de configuration constituées par une expression régulière et une actions ou modificateurs associés.

Nous allons voir les différents termes que l'on rencontre dans le fichier de configuration.

Options générales

Les options suivantes vous permettent de définir le comportement par défaut de Log Watcher :

  • date_color : Couleur par défaut de la date
  • host_color : Couleur par défaut du nom d'hôte
  • serv_color : Couleur par défaut du nom du serveur
  • mesg_color : Couleur par défaut du message
  • input_file : Fichier du flux
  • output_file : Fichier de sortie (par défaut, c'est la sortie standard stdout)
  • show_unparsed : Permet d'afficher les lignes qui ne répondent pas au bon formatage (date, nom d'hôte, service, message)

Les couleurs

Voici la liste des couleurs qu'il est possible d'utiliser :

blackred green brown blue magenta cyan lightgray darkgray brightred brightgreen yellow brightblue purple brightcyan white

Expressions régulières

Afin de matcher (c'est à dire choisir, attraper, sélectionner, la traduction n'est pas facile... :) ) les bonnes lignes avant de leur appliquer une action, Log Watcher utilise des expressions régulières, voici le principe :

/expression/ action
Simple ! non ?

Voici un autre exemple avec plusieurs actions :

/espression/ {
    action1
    action2
    ...
    actionN
}

Actions et modificateurs

Les actions vont vous permettre de mettre en couleur les éléments sélectionnés par l'expression régulière.

Voici les actions disponibles :

  • date_color : Couleur par défaut de la date
  • host_color : Couleur par défaut du nom d'hôte
  • serv_color : Couleur par défaut du nom du serveur
  • mesg_color : Couleur par défaut du message
  • exit : Ne pas exécuter les autres expressions
  • highlight : Mettre en surbrillance
  • ignore : Ignorer et ne pas exécuter les autres expressions
  • match_host : Exécuter l'expression régulière sur le nom d'hôte au lieu du message
  • match_service : Exécuter l'expression régulière sur le service au lieu du message

Voilà, on en sait assez maintenant pour lancer Log Watcher !

Utilisation

Pour surveiller simplement le syslog de votre machine, cette commande suffit :

tail -f /var/log/syslog | /usr/bin/lwatch -i-

Le fichier de log /var/log/syslog apparaîtra désormais d'une manière coloré en fonction de la présence ou non de termes sur chaque lignes.

Pour éviter d'avoir à saisir cette longue commande, vous pouvez créer un alias de cette manière :

alias systail="tail -f /var/log/syslog | /usr/bin/lwatch -i-"

Ainsi, vous n'aurez plus qu'à saisir systail pour voir les logs défilés...en couleurs (n'oubliez pas de mettre cette alias dans votre script de lancement, .bashrc par exemple).

Voici une vue globale de la fenêtre de log maintenant en couleur :

Vue d'un terminal mis en couleur avec Log Watcher !

Conclusion

Vous voilà prêt à surveiller d'interminable log, si quelques interrogations subsistaient, posez vos questions en commentaires, consultez le site officiel de développement de Log Watcher et n'oubliez pas le man (man lwatch et man lwatch.conf) !