Announcement

Collapse
No announcement yet.

Commande rrdtool en perl

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

  • Commande rrdtool en perl

    Bonjour,
    J'essaye de faire un plugin en perl pour nagios. Je n'arrive pas a faire le lien entre les commandes shell rrdtool et perl (je me suis inspiré de check_graph_ping.pl).

    En shell:
    rrdtool update test.rrd 1051481100:12345 1051481400:12357 1051481700:12363

    En perl :
    RRDs::update $rrd, "$start:".$rta;

    Comment faut il écrire la ligne en perl pour avoir al même chose que en shell? moi j'ai fais ca:
    RRDs::update test.rrd, "1051481100:".12345;
    est ce que c'est juste et comment puis je faire pour avoir plusieurs valeur sur la même ligne comme en shell?

    Sinon je ne vois pas dans le plugin la commande de récupération des données
    rrdtool fetch test.rrd AVERAGE --start 1051481100 --end 1...
    Elle n'est pas nécessairre dans le plugin car appelé plsu tard?

    Merci d'avance (mon projet se termine dans une semaine donc je ne vous embeteré bientot plus merci d'avance pour tout l'aide que vous m'avez déjà apporté :wink
    @bientot

  • #2
    A mon avis ca serait plutot:
    Code:
    RRDs::update test.rrd, "1051481100:12345";
    Autrement tu utilises la fonction rrd_update(...) que les masters d'Oreon ont gentillement taper avec leurs petites mimines

    Ca t'évite de t'embeter avec le package RRD...
    Code:
    update_rrd($numero_du_fichier_rrd,$start,@tableau_values);
    ou
    update_rrd($numero_du_fichier_rrd,$start,$value1,$value2,...,$valueN);
    Pour le reste c'est oreon qui s'occupe des coulisses tu n'as pas à t'en occuper 8)
    RedHat Advanced Server 4.0
    Nagios 2.3.1
    Oreon 1.3b1

    Comment


    • #3
      Bonjour, merci pour ta rep pepito
      mais pour utiliser la fonction "update_rrd" je ne dois rien inclure dans mon prog en perl comme bibliotheque???
      Merci
      @bientot

      Comment


      • #4
        oui comme dans les autres plugins déja fait... mais la wistof va s'occuper de tes pb... c'est le papa des fonctions...
        Julien Mathis
        Centreon Project Leader
        www.merethis.com |

        Comment


        • #5
          Hello,

          effectivement, inspires toi des plugins check_graph_* existants.


          sinon, grosso modo :

          Code:
          use FindBin;
          use lib "$FindBin::Bin";
          use lib "@[email protected]";
          use utils qw($TIMEOUT %ERRORS &print_revision &support);
          
          if (eval "require oreon" ) {
          	use oreon qw(get_parameters create_rrd update_rrd &is_valid_serviceid);
          	use vars qw($VERSION %oreon);
          	%oreon=get_parameters();
          } else {
          	print "Unable to load oreon perl module\n";
              exit $ERRORS{'UNKNOWN'};
          }
          il faut remplacer @[email protected] par le chemin de tes plugins nagios
          StatusMap Module - NDO Tools Module - ImportCSV Module - SNMP-UI Module - PDFReports Module
          Dons Paypal

          Comment


          • #6
            Bonjour merci,
            j'ai essayé mais j'ai eu une erreur j'ai changé la ligne

            Code:
            %oreon=get_parameters();
            par

            Code:
            %oreon=oreon::get_parameters();
            J'ai maintenant une autre erreur:

            Undefined subroutine &main::create_rrd called at temp.pl line 39.

            Elle reçoit quoi en entrée la fonction create_rrd?

            j'ai trouvé sur le forum :

            Code:
            create_rrd ($rrd,$nb_valeur,$start,...);
            Merci[/code]

            Comment


            • #7
              oreon::create_rrd ($rrd,$nb_valeur,$start,...); peut etre ?
              Intel(R) Xeon(TM) CPU 3.4GHz - MemTotal : 1034476 kB
              Centreon 2.4.1 - Nagios 3.2.1 - Nagios Plugins 1.4.15 - Manubulon Plugins tuné
              Fedora Core 5 - 2.6.20-1.2320

              Comment


              • #8
                Code:
                create_rrd ($rrd,$nb_valeur,$start,$step,"U","U","GAUGE");
                Un bon site sur rrdtool...
                RedHat Advanced Server 4.0
                Nagios 2.3.1
                Oreon 1.3b1

                Comment


                • #9
                  Bonjour,

                  J'ai testé
                  Code:
                  create_rrd ($rrd,$nb_valeur,$start,$step,"U","U","GAUGE");
                  ca ne marche pas et :

                  Code:
                  oreon::create_rrd ($rrd,$nb_valeur,$start,$step,"U","U","GAUGE");
                  non plus par contre si je fais :

                  Code:
                  RRDs::create_rrd ($rrd,$nb_valeur,$start,$step,"U","U","GAUGE");
                  j''ai l'erreur suivante :


                  Code:
                  Use of inherited AUTOLOAD for non-method RRDs::create_rrd() is deprecated at check_mesure.pl line 42, <FENT> line 1.
                  Can't locate auto/RRDs/create_rrd.al in @INC (@INC contains: /usr/local/nagios/libexec /usr/local/rrdtool/lib/perl ../lib/perl /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl .) at check_mesure.pl line 42
                  enfin j'ai deja reussi à faire pas mal de chose aujourd'hui je regarderais ca de plus pret plus tard
                  merci
                  @bientot

                  Comment


                  • #10
                    t'es sûr que t'a installé le module perl rrdtool ?
                    RedHat Advanced Server 4.0
                    Nagios 2.3.1
                    Oreon 1.3b1

                    Comment


                    • #11
                      Code:
                      RRDs::create_rrd ($rrd,$nb_valeur,$start,$step,"U","U","GAUGE");
                      normal, create_rrd est exporté par le module perl Oreon, non par RRDTOOL.

                      Code:
                      create_rrd ($rrd,$nb_valeur,$start,$step,"U","U","GAUGE");
                      une question bête, tu initialises bien les variables $rrd, $nb, etc ... ?

                      postes nous ton plugin en entier
                      StatusMap Module - NDO Tools Module - ImportCSV Module - SNMP-UI Module - PDFReports Module
                      Dons Paypal

                      Comment


                      • #12
                        Je préfère de plus en plus Ruby à Perl... :roll:
                        RedHat Advanced Server 4.0
                        Nagios 2.3.1
                        Oreon 1.3b1

                        Comment


                        • #13
                          Originally posted by pepito
                          Je préfère de plus en plus Ruby à Perl... :roll:
                          C pas bien différent tout ces langages, quand tu sais programmer l'un, c'est pareil pour l'autre.

                          Enfin moi j'ai pas de gros souci à changer de langage, juste quelques galères, quelques recherche sur le net et c bon ca marche.
                          Intel(R) Xeon(TM) CPU 3.4GHz - MemTotal : 1034476 kB
                          Centreon 2.4.1 - Nagios 3.2.1 - Nagios Plugins 1.4.15 - Manubulon Plugins tuné
                          Fedora Core 5 - 2.6.20-1.2320

                          Comment


                          • #14
                            c vrai sauf que ruby c'est plus élégant
                            pas de $ partout, ni de ; facile à oublier ...

                            Et puis en plus c'est à la mode 8)
                            RedHat Advanced Server 4.0
                            Nagios 2.3.1
                            Oreon 1.3b1

                            Comment

                            Working...
                            X