Posts tagged ‘rsyslog’

Rsyslog: discard ne fonctionne pas

Pour rediriger certains messages uniquement dans un fichier avec rsyslog, il est possible avec plusieurs règles d’utiliser l’opérateur ~ comme “action” pour supprimer les messages après écriture dans un fichier.

Par exemple, pour récupérer les messages contenant “iptables: ” uniquement dans le fichier /var/log/iptables, les règles suivantes semblent valides:

:msg, contains, "iptables: " -/var/log/iptables
:msg, contains, "iptables: " ~
  • 1ère ligne: En se basant sur le contenu du message (msg), s’il contient (contains) la chaîne de caractère “iptables: ” alors écrire dans le fichier /var/log/iptables sans bufferiser (-)
  • 2ème ligne: avec les mêmes critères que précédemment, supprimer le message. (~)

Or, sur une Debian Squeeze (rsyslog 4.6.4-2) avec une configuration rsyslog basique, les messages ne sont pas supprimés, et se retrouvent  dans /var/log/messages et dans la console.

Le souci ? Un bug dans rsyslog, corrigé dans la version  5.7.8 et backporté dans la branche stable à partir de la version 5.6.5