**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** # Howto log2mail Pour surveiller précisement un fichier journal et recevoir des alertes par mail si certains termes apparaissent dans ce fichier, vous pouvez utiliser le logiciel *log2mail*. ## Configuration Sa configuration se déroule dans le fichier _/etc/log2mail/config/default_. Par exemple, si vous voulez préciser que vous voulez recevoir un mail dès que le terme _fatal_ apparaît dans le fichier _/var/log/mail.log_, ajoutez ces lignes : ~~~ file = /var/log/mail.log pattern = "fatal" mailto = admin@example.com template = /etc/log2mail/template.mail-fatal ~~~ Dans ce cas, on devra avoir un fichier _/etc/log2mail/template.mail-fatal_ qui définit la structure du mail qui sera envoyé. Voici un exemple simple : ~~~ From: %f To: %t Subject: [LOG2MAIL] Erreur fatale pour mail.log Bonjour, Nous avons reconnu le terme "%m" dans "%F" %n fois : %l Merci. ~~~ Attention, log2mail est un logiciel assez basique... et il plante si il n'a pas les droits d'accès à un fichier déclaré dans sa configuration, il plante !! On prendra donc bien garde Pour des logs système, on devra ainsi souvent faire : ~~~ # adduser log2mail adm ~~~ Après toutes modifications, il ne faut pas oublié de redémarrer le deamon: ~~~ /etc/init.d/log2mail restart ~~~ Et vérifié le process avec ps aux: ~~~ ps aux |grep log2mail ~~~ ## Plusieurs destinataires ~~~ mailto = "destinataire1@mail.com destinataire2@mail.com" ~~~ ## Configuration avancée log2mail détecte les _pattern_ avec le code suivant (ligne 25 de data.cc) : ~~~ int inPattern::matches(const string& aLine) { return (regexec(&rPattern, aLine.c_str(), 0, 0, 0) == 0); } ~~~ D'après le man de regexec(3) : ~~~ POSIX Regex Matching regexec() is used to match a null-terminated string against the precom? piled pattern buffer, preg. nmatch and pmatch are used to provide information regarding the location of any matches. eflags may be the bitwise-or of one or both of REG_NOTBOL and REG_NOTEOL which cause changes in matching behavior described below. ~~~ On peut donc utiliser les [regex POSIX](http://en.wikipedia.org/wiki/Regular_expression#POSIX) Voici quelques exemples testés : ~~~ # N'importe quelle ligne pattern = ".*" # Debut de ligne pattern = "^ERROR" ~~~ Pour une configuration très avancée, on pourra astucieusement utiliser _procmail_ pour faire un filtrage encore plus fin des alertes. ## Debug L'option -N permet de forcer l'écriture des erreurs sur STDERR et que le process ne soit pas deamonizé (mis en tâche de fond) : ~~~ # /usr/sbin/log2mail -N -f /etc/log2mail/config/ ~~~