IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[langage] Surveillance de logs en temps réel, Perl un bon choix ?


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 46
    Points : 56
    Points
    56
    Par défaut [langage] Surveillance de logs en temps réel, Perl un bon choix ?
    Salut,

    J'aimerai développer un outil de surveillance des logs.
    Un truc qui se déclenche dès que qqch y est écrit et si ca correspond à une signature qui déclenche un traitement.

    Pour imager, dès qu'un stacktrace de tel type (un planton java) y est écrit :
    - extraction des traces de la sessionId dans un fichier dédié,
    - analyse du stacktrace pour trouver le 1er administrateur de package (j'ai une table de liens package/email)
    - zippage de l'extrait de log et envoi d'un mail à l'email trouvé en table.

    Perl est l'idéal pour extraire l'activité d'une session de la grosse log.
    Perl semble bien pour analyser la stacktrace.
    Pour les accès DB, le zippage et la production d'un mail, perl n'est peut-être pas le mieux placé mais il sait faire.

    Par contre, c'est pour la surveillance que je me pose des questions...

    Avez-vous déjà fait un truc comparable en perl ?

    Au fait, comme personne n'est parfait, les serveurs à surveiller sont sous w2k.
    Mais j'ai réussi à y faire héberger ActivePerle5 pour y faire tourner des scripts d'arrêt et de relance.

    Et comme idéalement ca devrait tourner en prod, il me faut un truc "intelligent".
    Donc pas un truc qui balaie toute la log tout les 15min

    A vous lire...

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 587
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 587
    Points : 2 036
    Points
    2 036
    Par défaut
    Pour te donner une petite idée d'un programme de surveillance que j'ai écrit en Perl :

    - Mon script se comporte comme un démon (ou service), il tourne en permanence sur mon ordinateur (NT 2000).

    - Toutes les n secondes, le script se connecte à un autre ordinateur (NT 2000) se situant sur le réseau de ma société, lequel ordinateur est censé faire des gravures de CD à fond les manettes via un système de 6 à 8 graveurs. Sur cette seconde machine, un autre script Perl tourne en permanence et fait du fork() à tout va afin de pouvoir gérer un maximum les créations d'images ISO et les gravures sur CD de ces images. Lorsqu'il fork(), il y a à ce moment là 2 traitements Perl sur cette machine et le binaire de Perl (perl.exe) apparaît donc 2 fois dans le gestionnaire des tâches.

    - Mon programme vérifie à distance le contenu du log qui regroupe toutes les infos de créations d'images ISO et les gravures ainsi que les éventuelles pannes de graveurs ou problèmes d'imprimantes (chargée d'imprimer des infos directement sur le CD gravé). Il vérifie également que le fork() fonctionne toujours.

    - Au moindre problème, mon script envoie un mail destiné aux responsables de l'exploitation de la seconde machine.

    pour le fork, me suis mal exprimé : en fait, le 1er perl.exe est une petite application graphique en Tk qui fait un appel système pour lancer un second perl, d'où les 2 perl.exe.

    - Dernière chose : si mon script ne trouve qu'un ou aucun perl.exe dans les progs tournant sur la machine distante, il relance l'appli Tk, laquelle reprend là où elle s'était arrêtée.

    Ca te donne un petit apperçu de ce que Perl est capable de faire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 46
    Points : 56
    Points
    56
    Par défaut
    Merci de ta réponse, je me doute bien que perl sais faire des miracles

    Par contre, je suis vraiment débutant en perl et j'avoue ne pas savoir faire un daemon
    Aurais-tu sous le coude un petit script qui sait se mettre en wait pendant x millisecondes (secondes ou minutes) avant de continuer ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 46
    Points : 56
    Points
    56
    Par défaut
    Ne cherchez plus !

    Je viens de trouver Win32::Sleep(TIME) ainsi que le module Win32:aemon

    Comme dirait l'autre : Yapluka

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/06/2010, 17h41
  2. Log des temps excessif d'un ping
    Par llaffont dans le forum Linux
    Réponses: 4
    Dernier message: 07/10/2008, 01h46
  3. log4j : voir les log en temps réel
    Par restricteur dans le forum Logging
    Réponses: 1
    Dernier message: 12/10/2007, 01h47
  4. Réponses: 6
    Dernier message: 12/09/2006, 19h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo