Relecture
This commit is contained in:
parent
e4b9efedd3
commit
613b3976f6
|
@ -3,17 +3,25 @@ categories: sysadmin
|
||||||
title: Howto Log2mail
|
title: Howto Log2mail
|
||||||
...
|
...
|
||||||
|
|
||||||
*Log2mail* est un démon qui surveille en permanence une liste de journaux et qui envoie immédiatement un email si certains termes apparaissent dans ce fichier. C'est un complément idéal à [Logcheck](HowtoLogcheck) qui permet d'alimenter la liste des termes considérés comme anormaux. *Log2mail* était présent dans Debian pendant plusieurs années, il a été retiré mais nous l'utilisons toujours car le [code source](https://github.com/fumiyas/log2mail) est simple et nous n'avons pas trouvé d'équivalent.
|
**Log2mail** est un démon qui surveille en permanence une liste de journaux et qui envoie immédiatement un email si certains termes apparaissent dans ce fichier. C'est un complément idéal à [Logcheck](HowtoLogcheck) qui permet d'alimenter la liste des termes considérés comme anormaux. *Log2mail* était présent dans Debian pendant plusieurs années, il a été retiré depuis Debian 7 mais nous l'utilisons toujours car le [code source](https://github.com/fumiyas/log2mail) est simple et nous n'avons pas trouvé d'équivalent.
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Le paquet pour Debian 7, 8 et 9 est disponible sur <http://pub.evolix.net>
|
Un paquet _.deb_ pour Debian 7, 8 et 9 est disponible sur <http://pub.evolix.net>.
|
||||||
|
Pour Debian 9 :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
$ wget http://pub.evolix.net/stretch/log2mail_0.3.0-2_amd64.deb
|
||||||
|
# dpkg -i log2mail_0.3.0-2_amd64.deb
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Sa configuration se déroule dans le fichier _/etc/log2mail/config/default_.
|
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_
|
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 :
|
apparaît dans le fichier `/var/log/mail.log`, ajoutez ces lignes :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
file = /var/log/mail.log
|
file = /var/log/mail.log
|
||||||
|
@ -23,7 +31,7 @@ template = /etc/log2mail/template.mail-fatal
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Dans ce cas, on devra avoir un fichier
|
Dans ce cas, on devra avoir un fichier
|
||||||
_/etc/log2mail/template.mail-fatal_ qui définit la structure
|
`/etc/log2mail/template.mail-fatal` qui définit la structure
|
||||||
du mail qui sera envoyé. Voici un exemple simple :
|
du mail qui sera envoyé. Voici un exemple simple :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
@ -39,36 +47,38 @@ Nous avons reconnu le terme "%m" dans "%F" %n fois :
|
||||||
Merci.
|
Merci.
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Attention, log2mail est un logiciel assez basique... et il plante
|
Attention, *Log2mail* est un assez basique… si il n'a pas les droits d'accès à
|
||||||
si il n'a pas les droits d'accès à un fichier déclaré dans sa configuration,
|
un fichier déclaré dans sa configuration, il plante !! On prendra donc bien
|
||||||
il plante !! On prendra donc bien garde
|
garde à bien vérifier les droits d'accès.
|
||||||
|
|
||||||
Pour des logs système, on devra ainsi souvent faire :
|
Pour des logs système, on devra ainsi souvent faire :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# adduser log2mail adm
|
# adduser log2mail adm
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Après toutes modifications, il ne faut pas oublié de redémarrer le deamon:
|
Après toutes modifications, il ne faut pas oublier de redémarrer le deamon :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
/etc/init.d/log2mail restart
|
# systemctl restart log2mail
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Et vérifié le process avec ps aux:
|
Et vérifié le process avec `ps aux` :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
ps aux |grep log2mail
|
$ ps aux | grep log2mail
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
## Plusieurs destinataires
|
Pour avoir plusieurs destinataires, on définit la variable _mailto_ ainsi :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
mailto = "destinataire1@mail.com destinataire2@mail.com"
|
mailto = "destinataire1@mail.com destinataire2@mail.com"
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
## Configuration avancée
|
## Configuration avancée
|
||||||
|
|
||||||
log2mail détecte les _pattern_ avec le code suivant (ligne 25 de data.cc) :
|
log2mail détecte les _pattern_ avec le code source suivant (ligne 25 de `data.cc`) :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
int inPattern::matches(const string& aLine) {
|
int inPattern::matches(const string& aLine) {
|
||||||
|
@ -76,15 +86,15 @@ int inPattern::matches(const string& aLine) {
|
||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
D'après le man de regexec(3) :
|
D'après le man de _regexec(3)_ :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
POSIX Regex Matching
|
POSIX Regex Matching
|
||||||
regexec() is used to match a null-terminated string against the precom?
|
regexec() is used to match a null-terminated string against the precom?
|
||||||
piled pattern buffer, preg. nmatch and pmatch are used to provide
|
piled pattern buffer, preg. nmatch and pmatch are used to provide
|
||||||
information regarding the location of any matches. eflags may be the
|
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
|
bitwise-or of one or both of REG_NOTBOL and REG_NOTEOL which cause
|
||||||
changes in matching behavior described below.
|
changes in matching behavior described below.
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
On peut donc utiliser les [regex POSIX](http://en.wikipedia.org/wiki/Regular_expression#POSIX)
|
On peut donc utiliser les [regex POSIX](http://en.wikipedia.org/wiki/Regular_expression#POSIX)
|
||||||
|
@ -98,13 +108,13 @@ pattern = ".*"
|
||||||
pattern = "^ERROR"
|
pattern = "^ERROR"
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Pour une configuration très avancée, on pourra astucieusement utiliser _procmail_ pour
|
Dans un mode plus avancé, on peut peut astucieusement combiner l'utilisation de *Log2mail* avec *Procmail*, une première détection sera faite avec *Log2mail* puis envoyé vers un email géré par *Procmail* pour un filtrage encore plus fin des alertes.
|
||||||
faire un filtrage encore plus fin des alertes.
|
|
||||||
|
|
||||||
## Debug
|
## 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) :
|
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/
|
# /usr/sbin/log2mail -N -f /etc/log2mail/config/
|
||||||
~~~
|
~~~
|
||||||
|
|
Loading…
Reference in a new issue