PDA

View Full Version : MAJ check_graph_traffic.pl


julio
26th April 2006, 13:01
Bonjour,

Je viens de mettre un peu a jour le check_graph_traffic a jour. Tout le monde se plaint qu'il ne fait pas son taff mais personne ne le met a jour. Donc j'ai pris le temps de reprendre un peu le code.

- un peu mieux commenté en séparrant les parties
- meilleure gestion des erreurs (enfin j'espere)
- et fini les arrondis a chaque calcules.. (ce qui etait le cas avant).

Attention il n'a pas encore été bcp testé

Bons tests...

Merci d'avance pour vos retours.

PS : Ce check_graph_traffic n'est plus compatible avec les trafficmap (trafficmap non remise dans la 1.3).

rom
26th April 2006, 14:30
(trafficmap non remise dans la 1.3).

Parce qu'on a pas eu le temps, elle le sera ulterieurement sous forme de module.

julio
6th May 2006, 14:41
Bonjour,

je viens de modifier le plugin traffic encore, la maintenant c'est la bonne valeur qui est remontée. Avant il remontait la valeur moyenne de la journée. Un peu la loose, on ne savait jamais la valeur instantannée mais la moyenne sur 24h ce qui est pas vraiment ce que l'on cherche a savoir.. Maintenant il nous remonte bien le traffic moyen entre les deux dernier checks effectués.

voila.

Bons tests.

PS : pensez à modifier à la ligne 29 la macro @NAGIOS_PLUGINS@ par le path de vos plugins.

wistof
6th May 2006, 16:06
par contre, le rrd est toujours créer en GAUGE :roll:

Urania
6th May 2006, 16:18
Je viens de dl la nouvelle version.
J'ai active le snmp du cote de mon Ap, mais j'ai le message suivant:

./check_graph_traffic.pl -H <ip_ap> -i 2
ERROR: IN Bytes : Received noSuchName(2) error-status at error-index 1.

La machine oreon se trouve en DMZ et mon AP dans le Lan, j'ai autorise sur mon fw la machine oreon a faire des requettes en snmp vers mon AP ....

Merci

julio
6th May 2006, 16:23
ton snmpd ne donne pas acces a la partie ifIndex de l'arbo snmp. Il faut configurer snmpd.conf pour donner l'acces :)

julio
6th May 2006, 16:24
par contre, le rrd est toujours créer en GAUGE :roll:

Oui mais ca permet au personne qui utiliserai l'ancien de garder leurs bases de données et le meme system. Les base Counter et Gauge ne sont pas compatible :)

Mais on va bientot sortir l'autre aussi vas :) y a du monde dessus bientot :D et comme ton premier jet marche deja bien...

Urania
6th May 2006, 18:02
ton snmpd ne donne pas acces a la partie ifIndex de l'arbo snmp. Il faut configurer snmpd.conf pour donner l'acces

Oui sauf que c'est un routeur Wifi Linksys et que je n'ai pratiquement rien a configurer, juste a "enabler" le service snmp, a valider le read-only au niveau de la comunaute public et private, et c'est tout au niveau de la config .....

merci pour les infos.[/quote]

Euh je viens de faire mumuse avec snmpwalk, mais vu que je ne capte rien a snmp ... :(

sudo snmpwalk -v 1 -c public 192.168.xx.xx
SNMPv2-MIB::sysDescr.0 = STRING: Linux (none) 2.4.20 mips
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.1575.1.5
SNMPv2-MIB::sysUpTime.0 = Timeticks: (75515) 0:12:35.15
SNMPv2-MIB::sysContact.0 = STRING: moimeme
SNMPv2-MIB::sysName.0 = STRING: linksys_routeur
SNMPv2-MIB::sysLocation.0 = STRING: ici
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::snmpInPkts.0 = Counter32: 11
SNMPv2-MIB::snmpOutPkts.0 = Counter32: 9
SNMPv2-MIB::snmpInBadVersions.0 = Counter32: 0
SNMPv2-MIB::snmpInBadCommunityNames.0 = Counter32: 4
SNMPv2-MIB::snmpInBadCommunityUses.0 = Counter32: 0
SNMPv2-MIB::snmpInASNParseErrs.0 = Counter32: 0
SNMPv2-MIB::snmpInTooBigs.0 = Counter32: 0
SNMPv2-MIB::snmpInNoSuchNames.0 = Counter32: 0
SNMPv2-MIB::snmpInBadValues.0 = Counter32: 0
SNMPv2-MIB::snmpInReadOnlys.0 = Counter32: 0
SNMPv2-MIB::snmpInGenErrs.0 = Counter32: 0
SNMPv2-MIB::snmpInTotalReqVars.0 = Counter32: 20
SNMPv2-MIB::snmpInTotalSetVars.0 = Counter32: 0
SNMPv2-MIB::snmpInGetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpInGetNexts.0 = Counter32: 23
SNMPv2-MIB::snmpInSetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpInGetResponses.0 = Counter32: 0
SNMPv2-MIB::snmpInTraps.0 = Counter32: 0
SNMPv2-MIB::snmpOutTooBigs.0 = Counter32: 0
SNMPv2-MIB::snmpOutNoSuchNames.0 = Counter32: 0
SNMPv2-MIB::snmpOutBadValues.0 = Counter32: 0
SNMPv2-MIB::snmpOutGenErrs.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetNexts.0 = Counter32: 0
SNMPv2-MIB::snmpOutSetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetResponses.0 = Counter32: 0
SNMPv2-MIB::snmpOutTraps.0 = Counter32: 0
SNMPv2-MIB::snmpEnableAuthenTraps.0 = INTEGER: disabled(2)

Si ca peut aider ...
Merci

elessar51
30th May 2006, 16:59
bon merci julio pour ce pluggin je vais le tester tout de suite :)
hum :D

surcouf
30th May 2006, 17:15
ton snmpd ne donne pas acces a la partie ifIndex de l'arbo snmp. Il faut configurer snmpd.conf pour donner l'acces

Oui sauf que c'est un routeur Wifi Linksys et que je n'ai pratiquement rien a configurer, juste a "enabler" le service snmp, a valider le read-only au niveau de la comunaute public et private, et c'est tout au niveau de la config .....

merci pour les infos.

Euh je viens de faire mumuse avec snmpwalk, mais vu que je ne capte rien a snmp ... :(

La sortie de la commande que tu as fourni montre bien que l'agent SNMP ne remonte aucune information concernant les interfaces. On devrait avoir des OIDs commençant soit par RFC1213-MIB::, soit par IF-MIB::, s'ils sont traduits (sinon, c'est .1.3.6.1.2.1.2).

Que donne la commande suivante ?
sudo snmpwalk -v 1 -c public 192.168.xx.xx .1.3.6.1.2.1.2

julio
13th June 2006, 11:52
Besoin d'un témoignage !

Bonjour, chez un client j'ai avec l'utilisation de ce plugin des gros piques de bande passante qui ne devrait pas etre... je m'explique..

On graph avec mrtg et les graphs sont normaux. Mais avec le check_graph_traffic j'ai de temps à autre des gros piques de traffic qui apparraissent... genre 7 Mo alors que je traffic moyen est de qq ko...

Personne n'a ce problème ?

elTino
13th June 2006, 14:16
J'ai exactement le meme type de graph Julio (certain piques à 14 Mb), le probleme est qu'a cause de ça on ne voit pas avec precision le traffic "normale".

julio
13th June 2006, 14:41
okok mince alors... moi j'ai pâs ca chez moi... quel type de ressources ? Réseau ? Serveur ?

DonKiShoot
13th June 2006, 15:00
J'ai tjs eu ca sur mes graphiques avec des scripts fait maison et je n'ai jamais trouvé.
Le hic c'est que ça ne le fait pas tout le temps mais à intervalle relativement régulier.
Mon materiel étant uniquement cisco, je me demande si ce n'est pas une histoire de compteur incrémental qui se reset tout seul :wink:

julio
13th June 2006, 15:08
ha ouais.... mince c'est assez embettant ca... moi je ne comprend pas vraiment non plus.... sur redhat j'ai aucun problème..

MRTG a l'air de bien le gerer, car ca ne le fait pas avec MRTG....

qq un a une idée ?

Mafalda
21st June 2006, 10:01
Je n'apporte malheureusement pas de réponse, mais je peux ajouter que chez moi le pb s'observe sur des machines linux, windows, sur des cisco, etc ...

Et effectivement aucun de ces pics ne se retrouvent pas sur les graph mrtg.

wistof
22nd June 2006, 03:07
J'ai tjs eu ca sur mes graphiques avec des scripts fait maison et je n'ai jamais trouvé.
Le hic c'est que ça ne le fait pas tout le temps mais à intervalle relativement régulier.
Mon materiel étant uniquement cisco, je me demande si ce n'est pas une histoire de compteur incrémental qui se reset tout seul :wink:

j'ai la meme chose sur mes graphs firewall (cacti et oreon), ça correspond au moment ou je pousse ma nouvelle config...

je sais pas si ce script peut faire l'affaire (pas testé) ? un volontaire ?

http://forums.cacti.net/about5214-0-asc-0.html

ou


HOWTO remove spikes from RRD graphs

If you happen to use rrdtool to create graphs to monitor equipment you might have come upon some “spikes” in your graphs. These are perfectly normal and happend due to machines that have rebooted and have reset their counters or other anomalies that might occur.

There is a script called removespikes.pl made specially to fix these cases. You can either find the tool here: http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/contrib/removespikes.tar.gz or get it from my blog removespikes.pl.gz

Extract it, and then type something in the command line like the following:
for i in /location/of/rrds/*; do /full/path/to/removespikes.pl $i; done;

You should probably see some messages like these:

Chopping peak at <!– 2005-10-25 17:00:00 EEST / 1130248800 –>
Chopping peak at <!– 2005-10-25 19:00:00 EEST / 1130256000 –>

That’s all…enjoy your graphs.

http://www.void.gr/kargig/blog/category/networking/

wistof
22nd June 2006, 03:34
allez... je m'y colle... un test rapide....

DonKiShoot
22nd June 2006, 10:25
Bon ba y a plus qu'a étudier le source pour l'intégrer à mes scripts rrd :wink:

Et merci pour l'astuce :D

DonKiShoot
22nd June 2006, 11:03
Bon ca ouvre la base, ça corrige les écarts trop important et ça referme.
C'est un paliatif mais l'idéal ce serait de ne pas stocker ces erreurs mais ça c'est une autre paire de manche
:wink:

Mafalda
22nd June 2006, 16:15
Voià voilà, si ca vous intéresse, voici le plugin check_graph_traffic corrigé par mes soins.

Je ne regle pas le pb mais je le contourne : quand IN_BYTES est < à LAST_IN_BYTES au lieu de chercher à calculer le débit on reprend la valeur du débit précédent.

Ca fait une valeur fausse mais ca evite les pics et les graphes sont lisibles.

Comme d'hab', c'est pas certifié que ca marche. Ca a fonctionné lors de mes tests, a vous de voir ;) .

DonKiShoot
22nd June 2006, 17:03
Tu n'as pas l'impression que ta courbe va être croissante puis stagnante avec une règle de calcul comme tu explique :D

L'idée serait de passer par une valeur max qui annule l'enregistrement tout simplement et rentre un unknown à la place en cas de dépassement de seuil.

Mafalda
22nd June 2006, 17:06
non non

en fait le traitement reste le meme sauf que l'on masque le pic avec une fausse valeur.

Le In_byte tout petit deviendra le last_in_bytes et au check suivant tout rentrera dans l'ordre.

Enfin, si j'ai fait une erreur, hésitez pas à me le dire ;)

mais ca fait des courbes correctes chez moi.

julio
22nd June 2006, 17:19
y a une solution pour avoir la vraie valeur.

je ne sais pas jusqu'a combien va le compteur mais si on a l'ancienne valeur si le seuil est dépassé ce coup ci le nb de bite transferé est en fait le delta du max du compteur et de l'ancienne valeur additionné à la nouvelle valeur remontée.

Mafalda
22nd June 2006, 17:26
Sur mes linux, le compteur se reinitialise à 2^32.

julio
22nd June 2006, 18:37
Aller hop une nouvelle mise a jour.

Maintenant ca devrait etre bon, ca gere la rotation de compteur ;)

il marche chez moi.. Dites moi si ca va pas.

gregounet
22nd June 2006, 20:33
Hello ici,

Moi ca m'interesse bien de mettre de plugin, mais juste histoire de pas faire de bétises, vous pouvez faire un petit how-to?

Parce que pour le néophyte c'est pas forcement évident de pas faire de bétises.

Tchous

rom
22nd June 2006, 23:14
En fait c le check_graph_plugin patché, donc aucune difference si ce n'est qu'il fonctionne mieux.
Tu copies ton ancien et tu le remplaces par celui ci.

Pour les arguments a passer en parametres, la subtilite consiste a connaitre le numero de l'interface, pour ca tu fais :
./check_graph_traffic.pl -H IP -s

gregounet
29th June 2006, 19:16
Hello,

J'ai un petit soucis,

Tout d'un coup (tout d'un "generer" en fait) j'ai eu une erreur sur le check_graph_traffic:

ERROR: IN Bytes : Received noSuchName(2) error-status at error-index 1.

Le problème existe sur tout mes serveurs sauf 1.
Les différents serveurs sont sur des windows server 2000 et 2003.

Si vous avez une idée sur la question.

Bien à vous.


Greg

nicolas13mrs
13th March 2007, 14:48
J'arrive peu être un peu tard mais j'ai testé les différente version de vos plugin et pour chaque version j'ai:

oreon:/usr/local/nagios/libexec# ./check_graph_traffic_565.pl -H 10.152.53.183 -C public -s
ERROR: Description Table : No response from remote host '10.152.53.183'.

Server sous win sserver 2003 r2
Voila
merci par avance

Nicolas

surcouf
13th March 2007, 15:26
J'arrive peu être un peu tard mais j'ai testé les différente version de vos plugin et pour chaque version j'ai:

oreon:/usr/local/nagios/libexec# ./check_graph_traffic_565.pl -H 10.152.53.183 -C public -s
ERROR: Description Table : No response from remote host '10.152.53.183'.

Server sous win sserver 2003 r2

Tout d'un coup (tout d'un "generer" en fait) j'ai eu une erreur sur le check_graph_traffic:

ERROR: IN Bytes : Received noSuchName(2) error-status at error-index 1.

Le problème existe sur tout mes serveurs sauf 1.
Les différents serveurs sont sur des windows server 2000 et 2003.

Pour vous deux : http://www.xenux.net/?article=49&skin=skin1
Vérifiez que vous avez toutes les options cochées avec vos services SNMP.

nicolas13mrs
13th March 2007, 15:38
Merci surcouf
Je viens de tout reconfiguré et sa marche!!!
C'est fou comme d'une version à l'autre de win serv le comportement et différent

Merci encore

Nicolas

joy5
26th March 2007, 10:45
Bonjour,

Perso, chez moi le check_graph_traffic n'a jamais fonctionné. Même la dernière version de julio. Lors des tests de métrologie que j'ai pu effectué, les courbes étaient fausses, en montagne russes.

Voilà ce que j'ai fait pour obtenir des graphes plus proche de la réalité:

-check_intervalle=1min
Je ne sais pas si change énormément mais j'ai remarqué une légère amélioration. Par contre j'ai une question. Sachant que rrdtool possède un intervalle de 5min, si on récupère des valeurs toute les min que ce passe t-il? Oreon effectue une moyenne de ces 5 valeurs ou c'est la derniere mesurée qui est updaté dans RRD?

-Modification du check_graph_traffic.pl pour changer le type de graph de "gauge" à "counter" lors de la création du fichier rrd. J'y ai aussi modifié le code à l'update. Voici le code:

##################################################
##### RRDTool create rrd
##

if ($opt_g) {
if (! -e $rrd) {
create_rrd ($rrd,2,$start,$step,"U","U","COUNTER");
}


## RRDtools update
if ($opt_g) {
$start = time;
$in_traffic=int($in_traffic);
$out_traffic=int($out_traffic);
update_rrd($rrd,$start, sprintf("%.0f",abs($in_traffic)), sprintf("%.0f",abs($out_traffic)));
}


}

A essayer chez vous si vous le souhaitez! Pour info j'utilise RRDtool 1.2.15!

A+