Announcement

Collapse
No announcement yet.

Plugin "check_graph"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Plugin "check_graph"

    Bonjour à tous,

    Cela fait une semaine maintenant que je planche sur la création de graphes qui me permettraient de remonter les infos sur les températures de mes serveurs Dell. Je suis allé sur nagiosexchange.org et j'ai trouvé mon bonheur (cf le fichier attaché check_graph_dell_temperature.zip).

    En ligne de commande le plugin marche niquel :
    Code:
    #([email protected]:/usr/local/nagios/libexec)#./check_graph_dell_temperature.pl -H DEV-3-2 -v 1 -C public
    OK - 250 : 25.00
    Par contre, Oreon n'arrive pas à créer le fichier rrd permettant la création des graphes et il m'envoit cette erreur :

    **ePN /usr/local/nagios/libexec//check_graph_dell_temperature.pl: "Use of uninitialized value in concatenation (.) or string at (eval 15) line 153,".

    Effectivement si on regarde la ligne 153 du script, il y a ça :

    my $result = $session->get_request(-varbindlist => [$OID.".".$sensor, $OID_DESC.".".$sensor]);


    J'ai tenté pas mal de manips pour y remédier mais rien n'y fait. J'aimerais donc savoir ou ça merdoie. Le plus étrange est que Oreon-1.3-RC2, Nagios 2.5, et tous les graphes créés fonctionnent parfaitement. en fait tout fonctionne depuis des mois, sauf ce plugin maintenant.

    Une idée ?

    A+

    P.S : L'update d'Oreon ne serait pas d'actualité pour l'instant
    Attached Files

  • #2
    Originally posted by Beniti View Post
    Bonjour à tous,

    Cela fait une semaine maintenant que je planche sur la création de graphes qui me permettraient de remonter les infos sur les températures de mes serveurs Dell. Je suis allé sur nagiosexchange.org et j'ai trouvé mon bonheur (cf le fichier attaché check_graph_dell_temperature.zip).

    En ligne de commande le plugin marche niquel :
    Code:
    #([email protected]:/usr/local/nagios/libexec)#./check_graph_dell_temperature.pl -H DEV-3-2 -v 1 -C public
    OK - 250 : 25.00
    Par contre, Oreon n'arrive pas à créer le fichier rrd permettant la création des graphes et il m'envoit cette erreur :

    **ePN /usr/local/nagios/libexec//check_graph_dell_temperature.pl: "Use of uninitialized value in concatenation (.) or string at (eval 15) line 153,".

    Effectivement si on regarde la ligne 153 du script, il y a ça :

    my $result = $session->get_request(-varbindlist => [$OID.".".$sensor, $OID_DESC.".".$sensor]);


    J'ai tenté pas mal de manips pour y remédier mais rien n'y fait. J'aimerais donc savoir ou ça merdoie. Le plus étrange est que Oreon-1.3-RC2, Nagios 2.5, et tous les graphes créés fonctionnent parfaitement. en fait tout fonctionne depuis des mois, sauf ce plugin maintenant.
    Par "ePN", il faut comprendre "embedded Perl Nagios" soit l'interpréteur Perl embarqué par Nagios. Pour tester tes scripts Perl avec il faut utiliser la méthode[1] décrite par la documentation, car il y a en effet certaines règles à respecter :

    Be aware of what ePN is transforming your plugin too, and if all else fails try and debug the transformed version.

    As you can see below p1.pl rewrites your plugin as a subroutine called 'hndlr' in the package named 'Embed::<something_related_to_your_plugin_file_nam e>'.

    Your plugin may be expecting command line arguments in @ARGV so pl.pl also assigns @_ to @ARGV.

    This in turn gets 'eval' ed and if the eval raises an error (any parse error and run error), the plugin gets chucked out.

    The following output shows how a test ePN transformed the check_rpc plugin before attempting to execute it. Most of the code from the actual plugin is not shown, as we are interested in only the transformations that the ePN has made to the plugin). For clarity, transformations are shown in red:


    package main;
    use subs 'CORE::GLOBAL::exit';
    sub CORE::GLOBAL::exit { die "ExitTrap: $_[0]
    (Embed::check_5frpc)"; }
    package Embed::check_5frpc; sub hndlr { shift(@_);
    @[email protected]_;
    #! /usr/bin/perl -w
    #
    # check_rpc plugin for Nagios
    #
    # usage:
    # check_rpc host service
    #
    # Check if an rpc serice is registered and running
    # using rpcinfo - $proto $host $prognum 2>&1 |";
    #
    # Use these hosts.cfg entries as examples
    #
    # command[check_nfs]=/some/path/libexec/check_rpc $HOSTADDRESS$ nfs
    # service[check_nfs]=NFS;24x7;3;5;5;unix-admin;60;24x7;1;1;1;;check_rpc
    #
    # initial version: 3 May 2000 by Truongchinh Nguyen and Karl DeBisschop
    # current status: $Revision: 1.1.1.1 $
    #
    # Copyright Notice: GPL
    #
    ... rest of plugin code goes here (it was removed for brevity) ...
    EDIT: Pour résoudre le problème essaie de réaliser la concaténation de la chaîne représentant l'OID AVANT son utilisation au moyen d'une nouvelle variable (qu'il ne faut pas oublier de déclarer (cf. "use strict;").

    [1]: http://nagios.sourceforge.net/docs/2...eddedperl.html
    Raphaël 'SurcouF' Bordet
    Je ne teste pas mes plugins en root, tu ne testes pas tes plugins en root...
    Dons Paypal

    Comment


    • #3
      Originally posted by Beniti View Post
      Bonjour à tous,

      Cela fait une semaine maintenant que je planche sur la création de graphes qui me permettraient de remonter les infos sur les températures de mes serveurs Dell. Je suis allé sur nagiosexchange.org et j'ai trouvé mon bonheur (cf le fichier attaché check_graph_dell_temperature.zip).

      En ligne de commande le plugin marche niquel :
      Code:
      #([email protected]:/usr/local/nagios/libexec)#./check_graph_dell_temperature.pl -H DEV-3-2 -v 1 -C public
      OK - 250 : 25.00
      Par contre, Oreon n'arrive pas à créer le fichier rrd permettant la création des graphes et il m'envoit cette erreur :

      **ePN /usr/local/nagios/libexec//check_graph_dell_temperature.pl: "Use of uninitialized value in concatenation (.) or string at (eval 15) line 153,".

      Effectivement si on regarde la ligne 153 du script, il y a ça :

      my $result = $session->get_request(-varbindlist => [$OID.".".$sensor, $OID_DESC.".".$sensor]);


      J'ai tenté pas mal de manips pour y remédier mais rien n'y fait. J'aimerais donc savoir ou ça merdoie. Le plus étrange est que Oreon-1.3-RC2, Nagios 2.5, et tous les graphes créés fonctionnent parfaitement. en fait tout fonctionne depuis des mois, sauf ce plugin maintenant.

      Une idée ?

      A+

      P.S : L'update d'Oreon ne serait pas d'actualité pour l'instant
      Hello,

      avant de rentrer dans un debug plus poussé, pourrais-tu nous expliquer comment tu as intégré ce plugin dans Oreon ? la définition du check_command ? les arguments définis dans ton service ?

      merci
      StatusMap Module - NDO Tools Module - ImportCSV Module - SNMP-UI Module - PDFReports Module
      Dons Paypal

      Comment


      • #4
        Merci pour les réponses

        Originally posted by surcouf View Post
        Par "ePN", il faut comprendre "embedded Perl Nagios" soit l'interpréteur Perl embarqué par Nagios. Pour tester tes scripts Perl avec il faut utiliser la méthode[1] décrite par la documentation, car il y a en effet certaines règles à respecter :



        EDIT: Pour résoudre le problème essaie de réaliser la concaténation de la chaîne représentant l'OID AVANT son utilisation au moyen d'une nouvelle variable (qu'il ne faut pas oublier de déclarer (cf. "use strict;").

        [1]: http://nagios.sourceforge.net/docs/2...eddedperl.html
        Ah oui, ça ne m'arrange pas ça ^^ . Recoder dans le script, je n'ai pas les capacités pour.

        Originally posted by wistof View Post
        Hello,

        avant de rentrer dans un debug plus poussé, pourrais-tu nous expliquer comment tu as intégré ce plugin dans Oreon ? la définition du check_command ? les arguments définis dans ton service ?

        merci
        oh, ce n'est pas vraiment éxotique comme commande :

        $USER1$/check_graph_dell_temperature.pl -H $HOSTADDRESS$ -v 1 -C public -S $ARG1$

        Normalement, le script remonte la température et propose par le biais de array manager situé sur les serveurs Dell des degrés critiques (donc pas besoin de définir des seuils de warning et critique dans la commande). le -H et le -S suffisent pour grapher. (Je tiens à préciser également qu'en ligne de commande, si je rajoute par exemple "-S 13", rrdtool créera un fichier 13.rrd dans le dossier /usr/local/oreon/rrd... Tout ça pour dire que toutes les applis bossent niquel)

        Comment

        Working...
        X