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

Développement Discussion :

developpement de plugins


Sujet :

Développement

  1. #1
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut developpement de plugins
    Bonjour,


    Je ne sais pas si je suis au bon endroit... j'ai longtemps hésité avec linux/developpement, perl ou developpement reseaux
    (les modos peuvent le déplacer de toute façon )


    dans le cadre de la rédaction d'un article sur munin, j'essayais de montrer comment créer ses propres "plugins"... avec l'exemple du parsage d'un log de vsftpd.

    d'un point de vue programmation, il ne me semble pas qu'il y ait d'erreurs... faut dire que c'est basique
    en revanche, rien ne s'affiche comme je le souhaite sur les graphes : j'ai une jolie horizontale à zéro

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    #!/usr/pkg/bin/perl
    #
    # Plugin to monitor a vsftpd server running on the machine
    #
    #
    # Requirements:
    #       - Needs access to the log file of the ftp server
    #
    # Tip: To see if it's already set up correctly, just run this plugin
    # with the parameter "autoconf". If you get a "yes", everything should
    # work like a charm already.
    #
    # Parameters supported:
    #
    #       config
    #       autoconf
    #
    # Configurable variables
    #
    #       logfile      - Override default log file
    #
    # $Log$
    # Revision 0.0.0.1  2006/07/14 19:20  gorgonite
    
    my $logfile = exists $ENV{'logfile'} ? $ENV{'logfile'} : "/var/log/vsftpd.log";
    
    my $ret = undef;
    open(my $logs, '<', $logfile) or $ret = "access to the file $logfile";
    
    if ( exists $ARGV[0] and $ARGV[0] eq "autoconf" )
    {
            if ($ret)
            {
                    print "no ($ret)\n";
                    exit 1;
            }
    
            print "yes\n";
            exit 0;
    }
    
    if ( exists $ARGV[0] and $ARGV[0] eq "config" )
    {
            print "graph_title Very Secure FTP server\n";
            print "graph_args --base 1000 -l 0\n";
            print "graph_vlabel requests\n";
            print "graph_category other\n";
            print "connections.label connections\n";
            print "connections.type DERIVE\n";
            print "connections.min 0\n";
            print "login_successes.label successful_logins\n";
            print "login_successes.type DERIVE\n";
            print "login_successes.min 0\n";
            print "login_failures.label failed_logins\n";
            #print "login_failures.type DERIVE\n";
            print "login_failures.min 0\n";
            print "upload_successes.label successful_uploads\n";
            #print "upload_successes.type DERIVE\n";
            print "upload_successes.min 0\n";
            print "upload_failures.label failed_uploads\n";
            #print "upload_failures.type DERIVE\n";
            print "upload_failures.min 0\n";
            print "download_successes.label successful_downloads\n";
            print "download_successes.type DERIVE\n";
            print "download_successes.min 0\n";
            print "download_failures.label failed_uploads\n";
            print "download_failures.type DERIVE\n";
            print "download_failures.min 0\n";
            print "deletion_successes.label successful_deletions\n";
            print "deletion_successes.type DERIVE\n";
            print "deletion_successes.min 0\n";
            print "deletion_failures.label failed_deletions\n";
            print "deletion_failures.type DERIVE\n";
            print "deletion_failures.min 0\n";
            exit 0;
    } else {
            my ($nbConnect, $nbOKLogin, $nbFailLogin) = (0,0,0);
            my ($nbOKUpload, $nbFailUpload, $nbOKDownload, $FailDownload) = (0,0,0,0);
            my ($nbOKDelete, $nbFailDelete) = (0,0);
    
            while (my $line = <$logs>) {
                    $nbConnect++ if ($line =~ "CONNECT");
                    $nbOKLogin++ if ($line =~ "OK LOGIN");
                    $nbFailLogin++ if ($line =~ "FAIL LOGIN");
                    $nbOKUpload++ if ($line =~ "OK UPLOAD");
                    $nbFailUpload++ if ($line =~ "FAIL UPLOAD");
                    $nbOKDownload++ if ($line =~ "OK DOWNLOAD");
                    $nbFailDownload++ if ($line =~ "FAIL DOWNLOAD");
                    $nbOKDelete++ if ($line =~ "OK DELETE");
                    $nbFailDelete++ if ($line =~ "FAIL DELETE");
            }
    
            print "connections.value $nbConnect\n";
            print "login_successes.value $nbOKLogin\n";
            print "login_failures.value $nbFailLogin\n";
            print "upload_successes.value $nbOKUpload\n";
            print "upload_failures.value $nbFailUpload\n";
            print "download_successes.value $nbOKDownload\n";
            print "download_failures.value $nbFailDownload\n";
            print "deletion_successes.value $nbOKDelete\n";
            print "deletion_failures.value $nbFailDelete\n";
    }
    close($logs);
    # vim:syntax=perl

    au passage, je n'ai pas bien compris l'usage de DERIVE


  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    au fait une petite image sera plus claire...

  3. #3
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    personne ne veut jouer avec moi ?



    un modo peut-il le déplacer sur le forum Développement réseaux, svp ?

    j'aurais peut-être plus de chances

  4. #4
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    gorgonite à dit:
    personne ne veut jouer avec moi ?
    on aimerait bien, mais sincèrement c'est trop fort pour nous.

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    up... les experts sont-ils revenus de vacances ?

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 866
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 866
    Points : 15 278
    Points
    15 278
    Par défaut
    les experts sont-ils revenus de vacances ?
    Eux je sais pas, en attendant, comme je connais un peu Linux et l'ami Bash (mais très peu le Perl), on va essayer d'y voir clair avec ces 2 points :
    • C'est quoi, ces "nan" sur l'image ?
    • Je ne sais pas comment tu as défini tes objets ("connections", "login_success", ...) mais on voit bien que pour tes 9 objets tu assignes 3 valeurs : "label", "type" et "min", "min" à 0, donc affiché à 0. Ensuite tu fais incrémenter des ".value" en fonction du parsing mais nulle part tu ne fais afficher ce ".value", pas plus que ".max" et ".average". Avec le peu d'informations disponibles, ça m'interpelle.

    Voilà, je me suis concentré sur les résultats affichés en bas de l'image et pas du tout sur le graphe. Un pb à la fois !
    Mes 2 cts,
    --
    jp

  7. #7
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par Jipété
    C'est quoi, ces "nan" sur l'image ?
    valeurs inconnues

    Je ne sais pas comment tu as défini tes objets ("connections", "login_success", ...) mais on voit bien que pour tes 9 objets tu assignes 3 valeurs : "label", "type" et "min", "min" à 0, donc affiché à 0. Ensuite tu fais incrémenter des ".value" en fonction du parsing mais nulle part tu ne fais afficher ce ".value", pas plus que ".max" et ".average". Avec le peu d'informations disponibles, ça m'interpelle.
    ben si les *.value sont affichés à la fin
    (nb: print en perl = echo en bash)

    Voilà, je me suis concentré sur les résultats affichés en bas de l'image et pas du tout sur le graphe. Un pb à la fois !
    logique... le graphe est généré par munin à partir des valeurs affichées

  8. #8
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 866
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 866
    Points : 15 278
    Points
    15 278
    Par défaut
    Io !
    munin connait pas, j'ai juste un peu joué avec mrtg.
    C'est quoi, ces "nan" sur l'image ?
    Ce que je voulais dire, c'est que j'ai pas vu de code pour comprendre d'où sort la string "nan". (j'avais bien compris son sens, )
    ben si les *.value sont affichés à la fin
    Au temps pour moi, ce qui m'amène à cette question : quand tu fais "$nbOKLogin++", ça incrémente quoi ? Value ? Min ? Max ?
    Et ça, "print "deletion_failures.value $nbFailDelete\n";" c'est sensé t'afficher .min, .max, .average tout seul comme un grand ?
    Je te serai probablement pas d'un grand secours sur ce coup-là, mais des fois je pose des questions tordues qui amènent le posteur à s'interroger plus fort !
    --
    jp

  9. #9
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    ben en fait, j'y connais pas grand chose non plus... j'ai modifié un plugin existant en essayant de comprendre

  10. #10
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 866
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 866
    Points : 15 278
    Points
    15 278
    Par défaut
    ben en fait, j'y connais pas grand chose non plus
    lol !
    j'ai longtemps hésité avec linux/developpement, perl ou developpement reseaux
    Moi j'aurais posté soit dans le deuxième soit dans le premier.
    Pourquoi t'es tombé ici ? À cause que c'est du ftp, donc du réseau ?
    --
    jp

  11. #11
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    nan... munin = outil de monitoring réseau

    en plus, ce post a été déplacé de linux vers ce forum

  12. #12
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 866
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 866
    Points : 15 278
    Points
    15 278
    Par défaut
    nan... munin = outil de monitoring réseau
    Vi, mais il semblerait bien que c'est pas lui qui soit en cause, puisque t'as juste posté du Perl !
    Reposte ou déplace dans le forum adéquat (j'y ai jamais mis les yeux).
    Mais avant, question bête : le fichier de log est bien rempli ? Ah, je suppose que t'as vérifié.
    C'est probablement sur le forum Perl que ce truc,
    au passage, je n'ai pas bien compris l'usage de DERIVE
    trouvera peut-être une explication - Google n'est pas très cool sur ce coup car je n'ai pas trouvé le moyen de différencier les majuscules des minuscules et du coup il me retourne plein de pages avec "derive", c'est ingérable...

    Mes 2 cts,
    --
    jp

  13. #13
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    j'ai trouvé une partie du bug...
    munin est lancé sous l'utilisateur munin, et donc avec un droit en 640 pour root.wheel, ça ne passait pas



    un lien sur le site de munin peut être utile à d'autres... http://munin.projects.linpro.no/wiki..._Munin_plugins

Discussions similaires

  1. developpement de plugin firefox
    Par kespy13 dans le forum Autres langages pour le Web
    Réponses: 4
    Dernier message: 24/07/2009, 11h58
  2. developpement par plugin
    Par altair8080 dans le forum C#
    Réponses: 10
    Dernier message: 09/12/2008, 10h00
  3. Developpement de plugin pour Birt
    Par aymen83 dans le forum BIRT
    Réponses: 0
    Dernier message: 07/04/2008, 09h41
  4. Developper un plugin d'Eclipse en Jython?
    Par questionneuse dans le forum Eclipse
    Réponses: 1
    Dernier message: 11/02/2008, 15h47
  5. [PDE]developpement Plugin
    Par metalpetsFR dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 24/06/2005, 11h48

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