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

Programmation et administration système Perl Discussion :

Plugin Nagios en Perl


Sujet :

Programmation et administration système Perl

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut Plugin Nagios en Perl
    Bonjour,

    Je repost toujours en rapport avec un script perl.

    J'essaie d'obtenir deux valeurs d'OID que je dois mettre dans deux variables distinctes et tout cela dans le même script.

    Voici pour le moment, le scrip qui me permet de récupérer la valeur d'un OID.
    Je sais qu'il n'y a pas les formes, mais pour le moment je recherche simplement le résultat

    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
    #! /usr/bin/perl -w
    use strict;
    use Net::SNMP;
    use Getopt::Long;
    
    my $valeur;
    my $OID = ".1.3.6.1.4.1.13576.10.1.100.1.1.3.206";
    my $OID1 = ".1.3.6.1.4.1.13576.10.1.100.1.1.3.207";
    my $host = "X.X.X.X";
    my $community = "snmpget";
    
    (my $session, my $error) = Net::SNMP->session(
                                    Hostname => $host,
                                    Community => $community);
            die "session error: $error" unless ($session);
    
    my $result = $session->get_request($OID,$OID1);
            die "request error: ".$session->error unless (defined $result);
            $session->close;
    
    
    foreach my $cle (keys(%{$result})){
         $valeur =$result->{$cle} ;
         print "$valeur\n"
    }
    
    print "$valeur"
    Et j'ai voulu retravailler le script afin qu'il puisse me fournir les valeurs des deux OIDs mais je pour l'instant je n'y arrive pas.
    En rouge les modifications apportées.
    Je pense que le problème provient du foreach, mais je ne sais pas comment je dois faire.

    EDIT : Lorsque j'effectue un print de $valeur dans le foreach, j'obtiens bien mes deux valeurs. Comment puis-je affecter la 1ère valeur à une variable et la 2ème valeur à une deuxième variable ?
    Aussi pourquoi lorsque je sais un print dans le foreach et juste après je n'ai pas le même résultat ? Dans le foreach, j'ai bine mes deux valeurs, alors que lorsque je fais un print en dehors du foreach je n'obtiens qu'une valeur

  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 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Nagios, je ne connais pas, mais pour récupérer deux valeurs d'un hashref, voici un exemple sous le debugger Perl (ligne DB<4>):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      DB<2> $result = {a => "val1", b => "val2"}
     
      DB<3> foreach my $cle (keys(%{$result})){ $valeur =$result->{$cle} ; print "$valeur\n";}
    val1
    val2
     
      DB<4> ($val_1, $val_2) = map {$result->{$_} } keys %$result;
     
      DB<5> x ($val_1, $val_2)
    0  'val1'
    1  'val2'

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Merci pour la réponse Lolo

    Si cela peut aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    my $result = $session->get_request($OID,$OID1);
            die "request error: ".$session->error unless (defined $result);
            $session->close;
     
     
    foreach my $cle (keys(%{$result})){
            $valeur =$result->{$cle} ;
    #       print "$valeur\n";
    }
     
    (my $val_1, my $val_2) = map {$result->{$_} } keys %$result;
     print "$val_1\n$val_2\n"

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bonjour,

    Voici un tutoriel pour écrire proprement un plugin Nagios en Perl.

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

Discussions similaires

  1. Concevoir facilement un plugin Nagios en Perl
    Par djibril dans le forum Programmation et administration système
    Réponses: 12
    Dernier message: 21/12/2014, 18h40
  2. erreur dexecution l'ors de lancement d'un plugin nagios en perl
    Par chella dans le forum Programmation et administration système
    Réponses: 5
    Dernier message: 09/04/2011, 00h20
  3. Concevoir facilement un plugin Nagios en Perl
    Par djibril dans le forum Linux
    Réponses: 0
    Dernier message: 05/03/2011, 21h46

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