2016-12-29 11:25:39 +01:00
|
|
|
**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
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
|
|
## 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
|
2017-03-23 15:41:48 +01:00
|
|
|
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/
|
|
|
|
~~~
|