Announcement

Collapse
No announcement yet.

Modif de oreon.pm

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

  • Modif de oreon.pm

    salut,

    j'ai fait une minuscule modif dans le fichier oreon.pm mais qui m'aide beaucoup!
    A la ligne 117 j'ai rajouté :
    Code:
    s/\n//;
    qui m'enleve donc les \n...

    C'est tout con mais du coup je peux passer directement un tableau de valeur sans en connaitre le nombre!

    Par exemple, je me suis créé un plugin check_graph_by_ssh.pl (qui utilise check_by_ssh) dans lequel je passe en paramètre le nom de la machine distante et la commande à exécuter dessus.
    Le nombre de paramètre retourné n'est pas toujours le même... ce qui était chiant à gérer!

    eh ben plus maintenant 8)
    Ca me crée tout dynamiquement en fonction du nombre de paramètres renvoyés! Yaha!
    RedHat Advanced Server 4.0
    Nagios 2.3.1
    Oreon 1.3b1

  • #2
    humm... pas tout saisi...

    donc tu as rajouté ça ?
    sub update_rrd([email protected])
    {
    my @rrd_arg;
    my ($rrd, $start,@values) = @_;
    $start = time unless($start);

    my $ERROR = RRDs::error;
    for (@values) {
    s/,/\./ ;
    s/\n//;
    $str_value .= ":" . $_;
    }
    RRDs::update ($rrd, "$start$str_value");
    $ERROR = RRDs::error;
    if ($ERROR) {
    print "unable to update '$rrd' : $ERROR\n" ;
    exit 3;
    }
    }
    pourquoi tu le fais pas dans ton plugin directement ?
    update_rrd est par défaut dynamique...
    StatusMap Module - NDO Tools Module - ImportCSV Module - SNMP-UI Module - PDFReports Module
    Dons Paypal

    Comment


    • #3
      je me suis créé un plug in check_graph_by_ssh.pl qui prend en paramètre le nom d'une commande à grapher.

      Le problème c'est que suivant la commande à grapher, je ne reçois pas le même nombre de valeur (entre 1 et 4).

      Quand j'ai voulu utiliser update_rrd(...), je me suis aperçu qu'il fallait que je lui donne une à une chacune des valeurs que je souhaitais grapher (ou alors je l'utilisais mal mais en tout cas ça me renvoyais une erreur "RRD can't parse variable to float...").

      Code:
      update_rrd ($rrd,$start,$valeur1,...$valeurN);
      ce qui m'obligeait à créer un plugin par commande:
      * un plugin pour les commandes qui me renvoit une seule valeur
      * un plugin pour les commandes qui me renvoit deux valeurs
      * ...

      Maintenant, je crée mon graphe de manière dynamique:

      Code:
      create_rrd ($rrd,$nb_valeur,$start,...);
      update_rrd($rrd,$start,@valeurs);
      sans me préoccuper du nombre de valeur à récupérer...
      RedHat Advanced Server 4.0
      Nagios 2.3.1
      Oreon 1.3b1

      Comment


      • #4
        les deux fonctionnent :
        Code:
        update_rrd ($rrd,$start,$valeur1,...$valeurN);
        ou
        Code:
        update_rrd ($rrd,$start,@valeur);
        je pense que tes valeurs $valeurN contenaient des \n.
        il faudrait plus revoir ta fonction de parsing de ton code retour de check_by_ssh...

        mais bon, je garde ta modif sous le coude, ça peut etre pratique 8)
        StatusMap Module - NDO Tools Module - ImportCSV Module - SNMP-UI Module - PDFReports Module
        Dons Paypal

        Comment


        • #5
          effectivement j'avais bien un script qui me renvoyait un \n.
          Mais même en l'enlevant je retrouvais mon erreur du début.

          En remettant le s/\n// , plus d'erreur...
          RedHat Advanced Server 4.0
          Nagios 2.3.1
          Oreon 1.3b1

          Comment

          Working...
          X