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 interrogation Hyper-V


Sujet :

Programmation et administration système Perl

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Plugin Nagios interrogation Hyper-V
    Bonjour,

    après maintes recherches sur le sujet, je poste ici afin d'obtenir un peu d'aide, une idée, un indice qui me permettront de trouver la réponse à mon problème.

    Je suis en formation alternance et on me demande de mettre en place un serveur nagios avec tout un tas de sonde. L'une d'entre elle me pose particulièrement problème.

    Je dois récupérer l'état d'une machine virtuelle tournant sous Hyper-V. Après de longues recherches, je commence à développer mon propre plugin nagios en perl en m'inspirant fortement de ce tutoriel : http://djibril.developpez.com/tutori...n-nagios-perl/.

    Le problème c'est qu'en lancant le script dans un shell, j'obtiens la réponse voulue. Mais lorsque le même script est lancé par nagios, j'obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    **ePN /usr/local/nagios/libexec/check_vm2.pl: "Duplicate specification "host|h=s" for option "h"".
    Voici le code de mon plugin :
    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
    #!/usr/bin/perl
    #===============================================================================
    # Auteur : Ekath
    # Date   : 26/01/2012
    # But    : Vérification de l'état de VM
    #===============================================================================
    use strict;
    use warnings;
     
    # Chargement du module
    use Nagios::Plugin;
     
    use vars qw/ $VERSION /;
     
    # Version du plugin
    $VERSION = '1.0';
     
    my $LICENCE = "Ce plugin Nagios est gratuit et libre de droits, et vous pouvez l'utiliser à votre convenance."
    						.' Il est livré avec ABSOLUMENT AUCUNE GARANTIE.';
     
    my $plugin_nagios = Nagios::Plugin->new( 	
    	shortname => 'Check VM Status',
    	usage => 'Usage : %s [-h ou --host <Hostname>] [-n ou --name <VM Name>]',
    	version   => $VERSION,
    	license   => $LICENCE,
    );
     
    # Définition de l'argument --host ou -h pour récupérer l'adresse de l'hote
    $plugin_nagios->add_arg(
    	'host|h=s',
    	'@IP de la machine', 
    	1);
     
    # Définition de l'argument --name ou -n pour récupérer le nom de VM
    $plugin_nagios->add_arg('
    	name|n=s',
    	'Nom de la machine virtuelle',
    	1);
     
    # Activer le parsing des options de ligne de commande
    $plugin_nagios->getopts;
     
    # Définition des arguments fixes
    my $IP = $plugin_nagios->opts->host;
    my $vmn = $plugin_nagios->opts->name;
    my $ns = 'root\Virtualization';
    my $id = 'admin%mdp';
     
    # Définition de la requête
    my $query = 'SELECT EnabledState FROM Msvm_ComputerSystem WHERE ElementName = \"'.$vmn.'\"';
     
    # On execute la requête avec wmic
    my $result = `wmic -U $id --namespace="$ns" //$IP "$query"`;
     
    # On récupère la ligne de sortie et on la traite de manière à récupérer l'état de la VM
    my $rresult = reverse($result);
    $result = substr(($rresult),index($rresult,"|")+1,1);
     
    # On traite en fonction du résultat
    if ($result eq 2)
    {
    	$plugin_nagios->nagios_exit( OK, "RUNNING" );
    	exit 0;
    }
    elsif ($result eq 3)
    {
    	$plugin_nagios->nagios_exit( CRITICAL, "DOWN" );
    	exit 2;
    }
    else
    {
    	$plugin_nagios->nagios_exit (UNKNOWN, "UNKNOWN" );
    	exit 3;
    }
    Je remercie par avance toutes les personnes qui pourront me guider vers la réponse.

  2. #2
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Je pense que le module Nagios::Plugin ajoute par défaut une option "-h" pour afficher l'aide.
    Il faut donc définir ton option courte pour ton host avec une autre lettre que "h".

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je savais bien que c'était un truc tout bête!

    Un grand merci à toi Beniou, tu as résolu mon problème! Nagios récupère bien le statut de la vm.

  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
    N'oublie pas le tag !

+ 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. Problème Plugin nagios codé en Perl
    Par KraD_74 dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 03/06/2009, 15h47
  3. Firebird Plugin Nagios
    Par VLDG dans le forum Administration
    Réponses: 4
    Dernier message: 06/04/2009, 12h36
  4. Souci avec plugin nagios
    Par ploxien dans le forum Ubuntu
    Réponses: 2
    Dernier message: 24/08/2007, 14h23

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