Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2011, 11h16   #1
Invité régulier
 
Inscription : mars 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 3
Points : 6
Points : 6
Par défaut Surveiller un fichier de log

Bonjour,

Je cherche une application pour Centos 5.5 qui permet de surveiller un fichier de log et de réaliser une action si il voit passer un mot-clé/phrase-clé entré sous regex.

J'ai trouvé quelques pistes sans résultats (LogWatch, logcheck, swatch)

On m'a aussi proposé de créer un script en partant de cette commande : "tail -f file.log | grep keyword" mais cela ne gère pas les regex et j'aurai préféré une application.

Je suis étonné de ne rien trouvé sur le net car cela me semble assez basique.

En gros ce que je cherche à faire :

Si message "WARNING ......" dans les logs
Faire : service ..... restart

D'avance merci !
sebtelecom est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/03/2011, 11h34   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par sebtelecom Voir le message
On m'a aussi proposé de créer un script en partant de cette commande : "tail -f file.log | grep keyword" mais cela ne gère pas les regex et j'aurai préféré une application.

Je suis étonné de ne rien trouvé sur le net car cela me semble assez basique.

En gros ce que je cherche à faire :

Si message "WARNING ......" dans les logs
Faire : service ..... restart

D'avance merci !
Salut,

Il faut utiliser "egrep" ou "grep -E"

man grep :

Code :
1
2
-E, --extended-regexp
    Interpréter le MOTIF comme une expression rationnelle étendue (voir plus bas).
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 09/03/2011, 11h46   #3
Invité régulier
 
Inscription : mars 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 3
Points : 6
Points : 6
Merci, je vais voir de creuser de ce coté, mais j'aurais préféré utiliser une application qui gère cela, ça doit bien exister quand même...
sebtelecom est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/03/2011, 14h35   #4
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Peut-être avec monit ?

http://mmonit.com/monit/documentatio...ontent_testing
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 10/03/2011, 09h07   #5
Invité régulier
 
Inscription : mars 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 3
Points : 6
Points : 6
Merci, j'ai essayé de creuser "monit" mais il ne remplit pas exactement la fonction que je recherche, il peut stopper ou bien relancer un service mais je n'ai pas trouver comment exécuter des commandes personnalisées.

Mon grep fonctionne correctement, mais je ne sais pas finaliser mon script.

tail -f /var/log/asterisk/messages | egrep [WARNING].*:.*Received.*response:.*Forbidden.*from.*

J'aurai préféré trouver une application à installer et à paramétrer pour être sur de ne pas créer un script qui pourrait me planter le serveur si j'oublie une hypothèse, je ne suis pas expert en la matière.
sebtelecom est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/03/2011, 10h03   #6
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Petite remarque en passant : tu devrais échapper tes [] dans ton egrep et mettre des guillemets?
Code :
1
2
3
4
$ echo "[ERROR] toto.sh : Abort when Received 4 response: Forbidden access from 10.0.0.1" | egrep "[WARNING].*:.*Received.*response:.*Forbidden.*from.*"
[ERROR] toto.sh : Abort when Received 4 response: Forbidden access from 10.0.0.1
$ echo "[ERROR] toto.sh : Abort when Received 4 response: Forbidden access from 10.0.0.1" | egrep "\[WARNING\].*:.*Received.*response:.*Forbidden.*from.*"
$
Ceci mis à part, monit permet heureusement d'exécuter n'importe quelle commande !
Citation:
EXEC can be used to execute an arbitrary program and send an alert. If you choose this action you must state the program to be executed and if the program require arguments you must enclose the program and its arguments in a quoted string. You may optionally specify the uid and gid the executed program should switch to upon start. For instance:

exec "/usr/local/tomcat/bin/startup.sh"
as uid nobody and gid nobody

The uid and gid switch can be useful if the program to be started cannot change to a lesser privileged user and group. This is typically needed for Java Servers. Remember, if Monit is run by the superuser, then all programs executed by Monit will be started with superuser privileges unless the uid and gid extension was used.
Par exemple (extrait de la doc monit) :
Code :
1
2
3
check file httpd.conf with path /etc/httpd/httpd.conf
       if changed timestamp
          then exec "/etc/init.d/httpd graceful"
Cet exemple surveille un changement de timestamp du fichier httpd.conf (causé par exemple par une modification que tu aurais faite) et relance httpd s'il la détecte...

Tu pourrais donc faire ceci :
Code :
1
2
check file messages with path /var/log/asterisk/messages
       if match "\[WARNING\].*:.*Received.*response:.*Forbidden.*from.*" then exec "/some/script"
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 11
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h06.


 
 
 
 
Partenaires

Hébergement Web