Announcement

Collapse
No announcement yet.

Bande passante utilisée chaque mois

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

  • Bande passante utilisée chaque mois

    Bonjour,

    Je me pose une question.
    Comment faire pour controler le nombre de Mo (voir To) transférés chaque mois ? En fait j'aimerai pouvoir fournir aux clients des statitiques de bande passante utilisée chaque mois...

    Merci d'avance

  • #2
    Apparament "RMON" fait cela, quelqu'un à plus d'infos ?

    Comment


    • #3
      RMON est une sonde réseau si je ne me trompe.
      En effet cela remonte beaucoup d'info mais saura tu les exploiter
      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


      • #4
        C'est en partie le but de mon post précédent dans cette section :cool:

        Pour l'instant je suis en train de modifier le check_graph_traffic à ma sauce pour fournir la bande passante utilisée par host par jours/semaines/mois/année ^^
        Oreon 1.4
        Nagios 2.9
        RRDTool 1.2.20
        Slackware 11

        Comment


        • #5
          Code:
          Pour l'instant je suis en train de modifier le check_graph_traffic à ma sauce pour fournir la bande passante utilisée par host par jours/semaines/mois/année ^^
          As tu msn ? On pourrait s'aider. Car je dois fournir sa pour mon boss

          Comment


          • #6
            Yep mon msn est dans mon profil tu peux le prendre :grin: sinon passe sur irc je pense qu'on devrait tous s'y connecter donc j'y suis dès que je le peux
            Oreon 1.4
            Nagios 2.9
            RRDTool 1.2.20
            Slackware 11

            Comment


            • #7
              Hop Ajouté. Pour IRC je vais voir sa de suite

              Comment


              • #8
                Originally posted by hsbzh View Post
                C'est en partie le but de mon post précédent dans cette section :cool:

                Pour l'instant je suis en train de modifier le check_graph_traffic à ma sauce pour fournir la bande passante utilisée par host par jours/semaines/mois/année ^^

                ca se fait par SNMP, un cron suffit... c'est tout bete...

                Si tu reprend le plugin de traffic il marche en bit/s
                Julien Mathis
                Centreon Project Leader
                www.merethis.com |

                Comment


                • #9
                  Par SNMP ? Je vois pas trop comment. Aurais tu une commande ?

                  Merci

                  Comment


                  • #10
                    bah ca marche pareil pour le traffic, t'as les octets qui passe sur la carte reseau.. tu addissionne a chaque fois les données et hop c joué... et tu remet a 0 au debut du mois...
                    Julien Mathis
                    Centreon Project Leader
                    www.merethis.com |

                    Comment


                    • #11
                      Bon, j'ai modifié le check_graph_traffic pour ajouter cette petite option, en sachant qu'il faut aussi prendre en compte le reboot du serveur, donc la remise à zero des données.. Donc j'utilise deux tables. Je prefere encore tester le script pour voir si les données sont plausible, et si c'est tout bon, je le partagerai

                      Comment


                      • #12
                        Voici mon check_graph_traffic modifié :
                        http://www.evox.fr.nf/uploads/05747430011793121038.rar

                        Les parties ajoutés :
                        Code:
                        use DBI;
                        use POSIX qw/strftime/;
                        Code:
                        my $datasource = "dbi:mysql:database=monitoring";
                        my $user = "user";
                        my $pass = "pass";
                        my $date = strftime("%Y-%m-%d", localtime());
                        
                        my $dbh = DBI->connect($datasource, $user, $pass);
                        Code:
                        if($in_bits_unit eq "G")
                        {
                        	$in_bits=$in_bits*1000;
                        	$in_bits_unit="M";
                        }
                        if($out_bits_unit eq "G")
                        {
                        	$out_bits=$out_bits*1000;
                        	$out_bits_unit="M";
                        }
                        
                        my $requete="SELECT count(*) as NbVal FROM `default` where `srv` = '$opt_H'";
                        my $sth = $dbh->prepare($requete);
                        $sth-> execute() || die "pb de selection : $DBI::errstr";
                        my $valeur;
                        
                        $valeur = $sth->fetchrow_hashref;
                        
                        my $NbVal = $valeur -> {NbVal};
                        	
                        if($NbVal eq 0)
                        {
                        	$dbh->do("INSERT into `default` values('','$opt_H',0)");
                        		
                        }
                        
                        my $op = "SELECT `depart` AS NbDepart FROM `default` WHERE `srv` = '$opt_H'";
                        my $opr = $dbh->prepare($op);
                        $opr->execute || die "Pb requete NbDep";
                        my $valr;
                        $valr = $opr->fetchrow_hashref;
                        my $depr = $valr -> {NbDepart};
                        
                        
                        
                        my $J = strftime("%d", localtime());
                        my $M = strftime("%m", localtime());
                        my $Y = strftime("%Y", localtime());
                        
                        my $sq = "SELECT count(*) AS NbValeur FROM `valeur` WHERE `srv` = '$opt_H' and `jour` = '$J' and `mois` = '$M' and `annee` = '$Y'";
                        my $sr = $dbh->prepare($sq);
                        $sr->execute;
                        my $Valeur = $sr->fetchrow_hashref;
                        my $NbValeur = $Valeur->{NbValeur};
                        
                        
                        if($NbValeur eq 0)
                        {
                        	$dbh->do("INSERT into `valeur` values('','$opt_H','$J','$M','$Y',0)");
                        }
                        
                        
                        my $outbit=sprintf("%.0f", $out_bits);
                        if($depr > $out_bits)
                        {
                        	$dbh->do("UPDATE `default` SET `depart` = $outbit WHERE `srv` = '$opt_H'");
                        	$dbh->do("UPDATE `valeur` SET `total_out` = total_out + $outbit WHERE `srv` = '$opt_H' and `jour` = '$J' and `mois` = '$M' and `annee` = '$Y'");
                        } else
                        {
                        	my $NewBit = $outbit - $depr;
                        	$dbh->do("UPDATE `valeur` SET `total_out` = total_out + $NewBit WHERE `srv` = '$opt_H' and `jour` = '$J' and `mois` = '$M' and `annee` = '$Y'");	
                        	$dbh->do("UPDATE `default` SET `depart` = $outbit WHERE `srv` = '$opt_H'");
                        
                        }
                        
                        $sth->finish();
                        Les deux tables de la base de donnée "Monitoring" :
                        Code:
                        CREATE TABLE `default` (
                          `id` int(10) NOT NULL auto_increment,
                          `srv` varchar(50) NOT NULL,
                          `depart` int(30) NOT NULL,
                          PRIMARY KEY  (`id`)
                        ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=127 ;
                        Code:
                        CREATE TABLE `valeur` (
                          `id` int(10) NOT NULL auto_increment,
                          `srv` varchar(30) NOT NULL,
                          `jour` varchar(5) NOT NULL,
                          `mois` varchar(7) NOT NULL,
                          `annee` varchar(4) NOT NULL,
                          `total_out` int(10) NOT NULL,
                          PRIMARY KEY  (`id`)
                        ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=252 ;

                        Je tiens a signalé que ce n'est pas de la belle programmation, je découvre le Perl Et aussi que le plugin modifié est pour moi en BETA, je suis entrain de vérifier l'exactitude des données.

                        Bonne journée

                        Comment


                        • #13
                          Je viens de trouver un ptit prob, apparament a cause d'un arrondit. Je corrige et je vous donne sa

                          Comment


                          • #14
                            héhé

                            renomme le autrement sinon les gens vont ecraser chez eux le vrai plugin
                            Julien Mathis
                            Centreon Project Leader
                            www.merethis.com |

                            Comment


                            • #15
                              yep julio c'est vrai que par cron ça pourrait le faire... mais à ce moment là on pourrait passer non plus par snmp mais par iptables aussi, comme ça on peut monitorer un serveur sans avoir à installer snmp dessus

                              ps : bientôt les sources de mon mod + tuto oreon sous slack !
                              Oreon 1.4
                              Nagios 2.9
                              RRDTool 1.2.20
                              Slackware 11

                              Comment

                              Working...
                              X