Envoyer des évênements à syslog avec logger

Logger est un outil permettant d’envoyer des évênements à un service syslog. Il peut être utilisé pour tester des configurations ou tracer des évênements dans un script. L’intérêt de cette outil est de se focaliser uniquement sur la priorité du message à tracer et son contenu. Syslog et les autres outils de gestion de log (rsyslog, logrotate …) se chargent du reste (ex : dater l’évênement, enregistrer ou nom le message, mettre en forme l’enregistrement, gérer les fichiers de logs …).

Cette article présente uniquement un usage basique de logger et ne traite pas de l’envoi d’évênements vers un serveur distant.

Emettre un évênement

logger Hello World!
# ce qui ecrira dans syslog :
# oct. 31 08:56:14 mikael-flora.fr mikael[3197]: Hello World!

Ici syslog se charge d’écrire la date de l’évênement, les informations à propos de l’éméteur (hostname, informations sur le programme) et pour terminer le message. Dans ce cas présent, les informations du programme sont le nom de l’usager et le PID du logger.

Personnaliser les informations du programme émetteur

Pour changer les indications du programme à l’origine de l’émission du message il est possible de donner un tag (option -t) et un PID (option –id) :

# changer le tag
logger -t test Hello World!
# oct. 31 09:01:45 mikael-flora.fr test: Hello World!

# ajouter le PID ($$ => PID courant)
logger -t test --id=$$ Hello World!
# oct. 31 09:01:57 mikael-flora.fr test[3215]: Hello World!

Modifier le niveau de priorité d’un évênement

La priorité (priority) est l’élément essentiel qui permet aux SysAdmins de détecter d’éventuels problèmes, configurer, debugger, ou vérifier le bon fonctionnement d’un programme. Les applications de gestion de logs se servent aussi de cette information pour tracer un évênement ou encore filtrer les résultats d’une recherche dans les logs.

Le niveau de priorité d’un log est composé de sa catégorie (facility => origine du message) et de son niveau de gravité (severity level). Il existe vingt-quatre catégories (auth, daemon, user, syslog, kern, local0 à local7 …) et huit niveaux de gravité (de DEBUG à EMERG).

Par défaut le niveau de priorité utilisé par logger est user.notice. Pour changer ce niveau il faut utiliser l’option -p. Dans les exemples suivant l’option -s est utilisée pour afficher l’évênement sur stderr afin de visualiser le niveau de priorité. Celui-ci est sous la forme d’un entier (priority_code = (facility_code x 8) + severity_code) :

# syntaxe :
# logger -p <facility.severity> -t <tag> <message>

# local0 = 16, debug = 7, priority = 135 (16 x 8 + 7)
logger -s -p local0.debug -t test Hello World!
<135>Oct 31 20:16:58 test: Hello World!

# local0 = 3, debug = 3, priority = 28 (3 x 8 + 3)
logger -s -p daemon.warning -t test Hello World!
<28>Oct 31 20:17:16 test: Hello World!
Vous avez aimé ?

Laisser un commentaire

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

5 × quatre =