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 :

analyse fichier log


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 30
    Points : 17
    Points
    17
    Par défaut analyse fichier log
    bonjour!
    je cherche a donner les statistiques suivantes:
    le nombre total de connexions acceptées,refusées et enfin
    le nombre de demandes de connexions (acceptées et refusées) pour chacun des
    démons suivants : ftpd telnetd rpcbind fingerd imap pop.

    voici un bout de mon fichier
    Mar 15 00:24:45 zeta.CRM.UMontreal.CA in.ftpd[28209]: connect from omega.CRM.UMontreal.CA
    Mar 15 00:26:11 poincare.CRM.UMontreal.CA rpcbind: refused connect from 64.26.80.177 to dump()
    Mar 17 01:21:35 beta.CRM.UMontreal.CA in.ftpd[13331]: connect from 63.196.54.11
    Mar 17 01:21:35 theta.CRM.UMontreal.CA in.ftpd[27801]: connect from 63.196.54.11
    Mar 17 01:21:35 truffaut.CRM.UMontreal.CA in.ftpd[18652]: connect from 63.196.54.11
    Mar 17 12:52:17 omega.CRM.UMontreal.CA in.ftpd[15959]: connect from HSE-Montreal-ppp127.qc.sympatico.ca Mar 17 12:19:47 omega.CRM.UMontreal.CA in.telnetd[19531]: connect from fitzpbe.math.auburn.edu

    voici ce que j'ai fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #!/usr/bin/perl -w
     
    use Email::Valid;
    use strict;
    use warnings;
     
    $num_args = @ARGV;
    if ($num_args != 1) {
        print "\nUne seule addresse email svp\n"
        exit;
    }
     
    unless( Email::Valid->address($num_args) ) {
        print "\nAddresse email invalide\n"
        exit;
    }
     
    print "\nfile path au log du programme tcpd?\n"
    my $userlogfile = <STDIN>;
    chomp $userlogfile;
    exit if ($userlogfile eq "");
     
    open(my $fh, '<;encoding(UTF-8)', $userlogfile)
        or die "\nErreur de lecteur du fichier '$userlogfile' $!\n";
     
    while(my $row = <$fh>) {
        chomp $row;
        print "$row\n"
    }
    foreach $ligne (<userlogfile>) {
        ($mois, $date, $heure, $addvis, $service) = split(' ', $line);
        $substrconnect = refused connect;
        if (index($line, $substrconnect) = -1) {
            $etat = connect;
        }
        $addsou = substr($line, 4 + index($line, from));
        if (index($line, to) != -1) {
            $commentaire = substr($line, index($line, to)); 
        }
    }
    mais je n'arrive a trouver le nombre de demandes de connexions (acceptées et refusées) pour chacun des
    démons : ftpd telnetd rpcbind fingerd imap pop.
    merci de me donner des pistes

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je ne vois pas trop le rapport entre:
    - le fichier de log en entrée;
    - le code que tu présentes; et
    - ce que tu demandes (et le titre de ton post).

    S'il s'agit d'extraire des données du fichier log, explique précisément quelles données tu veux extraire de ce fichier et comment tu veux agréger et présenter ces données.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    désolé de n'avoir pas été explicite.
    le programme doit lire le fichier de log et analyser chaque ligne pour trouver des balayages (“scans”) potentiels, en supposant que plus de 5 demandes (connexions acceptées ou refusées) provenant de la même adresse dans la même minute est un balayage potentiel. Quand il trouve un balayage potentiel, il envoie immédiatement un courrier électronique à l’adresse courriel (donné en paramètre), avec comme information l’heure et l’adresse du balayage.

    a la fin il doit faire
    la liste des 3 adresses sources qu’on retrouve le plus souvent dans le fichier analysé et les statistiques suivantes:
    - le nombre total de connexions acceptées
    - le nombre total de connexions refusées
    -le nombre de demandes de connexions (acceptées et refusées) pour chacun des
    démons suivants : ftpd telnetd rpcbind fingerd imap pop

    je dois utiliser les tableaux associatifs pour faire mes statistiques.

    ce que j'ai codé c'est pour les 3 premières questions . et je cherche une piste pour la dernière .

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Points : 406
    Points
    406
    Par défaut
    Voilà comment je ferais:

    Pour chaque ligne, recherche avec une expression régulière: $ligne =~ (ftpd|telnetd|rpcbind|fingerd|imap|pop).*?(connect|refused connect) Attention pas testé et pas sûr)

    Et ensuite tu construis ta table du genre :
    si $resultat{$2}{$1} existe alors $resultat{$2}{$1} +=1; sinon $resultat{$1}{$2} = 1;
    si $resultat{$2}{'total'} existe alors $resultat{$2}{'total'} +=1; sinon $resultat{$1}{'total'} = 1;

    A la fin tu auras donc une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    resultat => 'connect' => 'ftpd' =>XX
                         => 'telnetd' => X
                         => ...
                         => 'total' => 
              => 'refused connect' => 'ftpd' =>XX
                                   => 'telnetd' => X
                                   => ...
                                   => 'total'=> XXXX
    X est un Chiffre
    comme ça en parcourant ta table tu auras tu auras facilement la réponse aux 3 questions.
    exemple le nb total de connexion OK = ${'connect'}{'total'}

    Edit : J'ai pas du tout regardé pour le balayage

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    ok merci je vais le tester voir!

Discussions similaires

  1. Perl analyse de fichiers-logs
    Par finelady dans le forum Langage
    Réponses: 4
    Dernier message: 18/03/2008, 17h31
  2. Des logiciels pour l'analyse des fichiers log
    Par maya dans le forum Réseau
    Réponses: 3
    Dernier message: 14/04/2007, 22h27
  3. [Oracle 8i/Fichier de log] - fichier log pour analyse erreur
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 4
    Dernier message: 25/01/2005, 19h06
  4. Programme qui analyse un fichier log
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 20/08/2004, 14h27

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