2.4 KiB
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
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.