View Full Version : [RESOLU]PB avec plugin check_snmp+ check_snmp_cisco_ifstatus
waltergin
27th April 2006, 21:58
Hello tout le mond, Bon le sujet est clair j ai un pb. Je travail avec des routeurs Cisco 3750.
J ai effectuer la config suivante sur ces derniers:
snmp-server location ...
snmp-server contact ....
snmp-server community .....
access-list 120 permit ..IP..
snmp-server community ... RO 1
snmp-server host ..IP.. ...community..
snmp-server trap-source ..interface..
snmp-server enable traps
La config du plugin est la suivante:
!community!1.3.6.1.2.1.2.2.1.5!75!90
La j ai essayé tout un tas de trucs impossible d obtenir un resultat si qqun a une idée je suis preneur!!
merci d avance.
inconnuflo
27th April 2006, 22:00
en ligne de commande ca donne ? quel est le resultat obtenu ?
Je vais bientot mettre sur le wiki la partie du check_graph_snmp_value.pl
peut-etre que ca t'aidera
waltergin
27th April 2006, 22:54
En ligne de commande:
./check_snmp -H IP -C communityp -o 1.3.6.1.2.1.2.2.1.5 -w 75 -c 90
RESULTAT:
SNMP problem - No data recieved from host
CMD: /usr/local/bin/snmpget -t 1 -r 9 -m ALL -v 1 -c community IP:161 1.3.6.1.2.1.2.2.1.5
templuche
28th April 2006, 10:36
Bonjour,
Il manque l'index de ton interface à ton OID. Fait un snmpwalk sur l'OID que tu as entré en ajoutant le paramètre -On et tu verras qu'il ajoute un chiffre terminal à ton OID. Or snmpget ne gère que les OIDs "complets", les feuilles de l'arbre SNMP.
pepito
28th April 2006, 12:17
./check_snmp -H IP -C communityp -o 1.3.6.1.2.1.2.2.1.5 -w 75 -c 90
Il te manque le . devant le premier 1...
./check_snmp -H IP -C communityp -o .1.3.6.1.2.1.2.2.1.5 -w 75 -c 90
templuche
28th April 2006, 13:26
Il te manque le . devant le premier 1...
Non non, il n'est pas obligatoire :)
waltergin
28th April 2006, 15:53
Je vais tester ca templuche. Merci la suite dans le prochain episode :lol:
waltergin
28th April 2006, 16:17
Je suis encore novice avec les snmpwalk: J ai fait ca:
snmpwalk -On -c community IP .1.3.6.1.2.1.2.2.1.5
Et il me donne le resyultat suivant:
.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 1000000000
.1.3.6.1.2.1.2.2.1.5.154 = Gauge32: 1000000000
.1.3.6.1.2.1.2.2.1.5.254 = Gauge32: 1000000000
.1.3.6.1.2.1.2.2.1.5.454 = Gauge32: 1000000000
.1.3.6.1.2.1.2.2.1.5.554 = Gauge32: 1000000000
.1.3.6.1.2.1.2.2.1.5.654 = Gauge32: 1000000000
.1.3.6.1.2.1.2.2.1.5.854 = Gauge32: 1000000000
.1.3.6.1.2.1.2.2.1.5.10101 = Gauge32: 100000000
.1.3.6.1.2.1.2.2.1.5.10102 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10103 = Gauge32: 100000000
.1.3.6.1.2.1.2.2.1.5.10104 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10105 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10106 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10107 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10108 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10109 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10110 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10111 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10112 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10113 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10114 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10115 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10116 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10117 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10118 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10119 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10120 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10121 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10122 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10123 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10124 = Gauge32: 100000000
.1.3.6.1.2.1.2.2.1.5.10125 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10126 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10127 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.10128 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.14501 = Gauge32: 4294967295
?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????
OK y manque un chiffre a mon OID!!!
Je vais creuser un peu histoire de voir a quoi ca correspond.....
waltergin
28th April 2006, 16:22
Sur le site Cisco ya pas moyen davoir un peu de detail...
GRRRRRRRRR
Unfortunately we could not translate the object 1.3.6.1.2.1.2.2.1.5.14501 you were looking for. We could however translate a part of your object.
Et c est pareil pour tous... :cry:
waltergin
28th April 2006, 16:42
Est-ce que qqun un moyen de connaitre ces feuilles?
templuche
28th April 2006, 16:50
Bien entendu : il s'agit des vitesses de tes interfaces réseaux. Elles sont exprimés en bit/s. Le dernier numéro de l'OID correspond à l'identifiant de la carte réseau. Si tu fais un snmpget sur l'OID .1.3.6.1.2.1.2.2.1.2.<dernier numéro> alors tu obtiens le nom de ta carte réseau.
waltergin
28th April 2006, 17:05
J ai tester ca, le plugin marche bien. Merci mais donc au final c est un peu ce aue fait deja check_graph_traffic non?
Si qqun a des OID aui peuvent servir pour la supervision des routeurs, je les serai gré de les poster :lol:
surcouf
1st May 2006, 14:31
Sur le site Cisco ya pas moyen davoir un peu de detail...
GRRRRRRRRR
Unfortunately we could not translate the object 1.3.6.1.2.1.2.2.1.5.14501 you were looking for. We could however translate a part of your object.
Et c est pareil pour tous... :cry:
C'est normal: cet OID n'appartient pas du tout à la branche privée dédiée à Cisco qui est: .1.3.6.1.4.1.9
Il s'agit de la table ifSpeed de la MIB IF-MIB:
$ snmptranslate 1.3.6.1.2.1.2.2.1.5
IF-MIB::ifSpeed
Étant donné les traitements postérieurs et un peu complexes nécessaires pour les OIDs concernant les interfaces, il vaut mieux passer par un plugin dédié comme « check_iftraffic », « check_iferrors » ou « check_snmp_int » qu'on trouve chez nagiosexchange, par exemple.
waltergin
1st May 2006, 15:21
Ok , merci je vais allez voir du coté de nagiosexchange
waltergin
1st May 2006, 17:04
Les plugins sont interressants d auteant plus que j ai passer du temps a en faire qui font la meme fonction du moins pour la charge CPU a base de check_snmp :lol: enfin...
J ai un nouveau probleme cette fois ci avec le plugin check_snmp_cisco_ifstatus.
Je test avec celui ci les interfaces dun routeur cisco 3750 mais seulment la premiere interface repond. Pour les autres:
Interface not found on this device!!!!
Si qqun a deja eu ce probleme ou bien voit d ou cela peut venir , merci d avance
surcouf
1st May 2006, 20:22
Les plugins sont interressants d auteant plus que j ai passer du temps a en faire qui font la meme fonction du moins pour la charge CPU a base de check_snmp :lol: enfin...
J ai un nouveau probleme cette fois ci avec le plugin check_snmp_cisco_ifstatus.
Je test avec celui ci les interfaces dun routeur cisco 3750 mais seulment la premiere interface repond. Pour les autres:
Interface not found on this device!!!!
Si qqun a deja eu ce probleme ou bien voit d ou cela peut venir , merci d avance
À part deux OIDs spécifiques à la branche privée de Cisco, ce plugin utilise les OID standards des MIB RFC-1213-MIB et IF-MIB (qui fournissent quelques OIDs équivalentes comme ifDescr).
Donc, pour savoir pourquoi ça pose problème, il faudrait utiliser la commande snmpwalk sur .1.3.6.1.2.1.2
$ snmpwalk -v 1 -c public <hôte> .1.3.6.1.2.1.2
Deux OIDs sont intéressantes:
$ snmpwalk -v 1 -c public localhost ifNumber
IF-MIB::ifNumber.0 = INTEGER: 5
$ snmpwalk -v 1 -c public localhost ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
IF-MIB::ifDescr.4 = STRING: br0
IF-MIB::ifDescr.5 = STRING: sit0
waltergin
1st May 2006, 20:48
J ai deja tester ca:
IfNumner = 36
Et je retrouve bien le nom des interfaces que j ai mis lors de la programmation du routeur.
????
C est incomrehensible:
./check_snmp_cisco_ifstatus -H IP -C community -i Vlan454
Interface Vlan454 not found on device IP
surcouf
1st May 2006, 20:52
J ai deja tester ca:
IfNumner = 36
Et je retrouve bien le nom des interfaces que j ai mis lors de la programmation du routeur.
????
C est incomrehensible:
./check_snmp_cisco_ifstatus -H IP -C community -i Vlan454
Interface Vlan454 not found on device IP
Et la seconde commande que j'ai fourni donne quoi ?
waltergin
1st May 2006, 21:15
Ben y a a peu pres 3 pages!!!
Mais les lignes commencant par If-MIB::ifDescr me decrivent les 36 interfaces du routeur comme je les aient nommées:
A titre indicatif
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.154 = STRING: Vlan154
IF-MIB::ifDescr.254 = STRING: Vlan254
IF-MIB::ifDescr.454 = STRING: Vlan454
IF-MIB::ifDescr.554 = STRING: Vlan554
IF-MIB::ifDescr.654 = STRING: Vlan654
IF-MIB::ifDescr.854 = STRING: Vlan854
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet1/0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet1/0/2
IF-MIB::ifDescr.10103 = STRING: GigabitEthernet1/0/3
IF-MIB::ifDescr.10104 = STRING: GigabitEthernet1/0/4
IF-MIB::ifDescr.10105 = STRING: GigabitEthernet1/0/5
IF-MIB::ifDescr.10106 = STRING: GigabitEthernet1/0/6
IF-MIB::ifDescr.10107 = STRING: GigabitEthernet1/0/7
IF-MIB::ifDescr.10108 = STRING: GigabitEthernet1/0/8
IF-MIB::ifDescr.10109 = STRING: GigabitEthernet1/0/9
IF-MIB::ifDescr.10110 = STRING: GigabitEthernet1/0/10
IF-MIB::ifDescr.10111 = STRING: GigabitEthernet1/0/11
IF-MIB::ifDescr.10112 = STRING: GigabitEthernet1/0/12
IF-MIB::ifDescr.10113 = STRING: GigabitEthernet1/0/13
IF-MIB::ifDescr.10114 = STRING: GigabitEthernet1/0/14
IF-MIB::ifDescr.10115 = STRING: GigabitEthernet1/0/15
IF-MIB::ifDescr.10116 = STRING: GigabitEthernet1/0/16
IF-MIB::ifDescr.10117 = STRING: GigabitEthernet1/0/17
IF-MIB::ifDescr.10118 = STRING: GigabitEthernet1/0/18
IF-MIB::ifDescr.10119 = STRING: GigabitEthernet1/0/19
IF-MIB::ifDescr.10120 = STRING: GigabitEthernet1/0/20
IF-MIB::ifDescr.10121 = STRING: GigabitEthernet1/0/21
IF-MIB::ifDescr.10122 = STRING: GigabitEthernet1/0/22
IF-MIB::ifDescr.10123 = STRING: GigabitEthernet1/0/23
IF-MIB::ifDescr.10124 = STRING: GigabitEthernet1/0/24
IF-MIB::ifDescr.10125 = STRING: GigabitEthernet1/0/25
IF-MIB::ifDescr.10126 = STRING: GigabitEthernet1/0/26
IF-MIB::ifDescr.10127 = STRING: GigabitEthernet1/0/27
IF-MIB::ifDescr.10128 = STRING: GigabitEthernet1/0/28
IF-MIB::ifDescr.14501 = STRING: Null0
surcouf
2nd May 2006, 00:06
Ben y a a peu pres 3 pages!!!
Mais les lignes commencant par If-MIB::ifDescr me decrivent les 36 interfaces du routeur comme je les aient nommées:
A titre indicatif
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.154 = STRING: Vlan154
IF-MIB::ifDescr.254 = STRING: Vlan254
IF-MIB::ifDescr.454 = STRING: Vlan454
IF-MIB::ifDescr.554 = STRING: Vlan554
IF-MIB::ifDescr.654 = STRING: Vlan654
IF-MIB::ifDescr.854 = STRING: Vlan854
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet1/0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet1/0/2
IF-MIB::ifDescr.10103 = STRING: GigabitEthernet1/0/3
IF-MIB::ifDescr.10104 = STRING: GigabitEthernet1/0/4
IF-MIB::ifDescr.10105 = STRING: GigabitEthernet1/0/5
IF-MIB::ifDescr.10106 = STRING: GigabitEthernet1/0/6
IF-MIB::ifDescr.10107 = STRING: GigabitEthernet1/0/7
IF-MIB::ifDescr.10108 = STRING: GigabitEthernet1/0/8
IF-MIB::ifDescr.10109 = STRING: GigabitEthernet1/0/9
IF-MIB::ifDescr.10110 = STRING: GigabitEthernet1/0/10
IF-MIB::ifDescr.10111 = STRING: GigabitEthernet1/0/11
IF-MIB::ifDescr.10112 = STRING: GigabitEthernet1/0/12
IF-MIB::ifDescr.10113 = STRING: GigabitEthernet1/0/13
IF-MIB::ifDescr.10114 = STRING: GigabitEthernet1/0/14
IF-MIB::ifDescr.10115 = STRING: GigabitEthernet1/0/15
IF-MIB::ifDescr.10116 = STRING: GigabitEthernet1/0/16
IF-MIB::ifDescr.10117 = STRING: GigabitEthernet1/0/17
IF-MIB::ifDescr.10118 = STRING: GigabitEthernet1/0/18
IF-MIB::ifDescr.10119 = STRING: GigabitEthernet1/0/19
IF-MIB::ifDescr.10120 = STRING: GigabitEthernet1/0/20
IF-MIB::ifDescr.10121 = STRING: GigabitEthernet1/0/21
IF-MIB::ifDescr.10122 = STRING: GigabitEthernet1/0/22
IF-MIB::ifDescr.10123 = STRING: GigabitEthernet1/0/23
IF-MIB::ifDescr.10124 = STRING: GigabitEthernet1/0/24
IF-MIB::ifDescr.10125 = STRING: GigabitEthernet1/0/25
IF-MIB::ifDescr.10126 = STRING: GigabitEthernet1/0/26
IF-MIB::ifDescr.10127 = STRING: GigabitEthernet1/0/27
IF-MIB::ifDescr.10128 = STRING: GigabitEthernet1/0/28
IF-MIB::ifDescr.14501 = STRING: Null0
Bien alors, en étudiant le code, il semblerait que son auteur ait fait un imper dans sa conception. Dans la fonction « find_match », la boucle suivante est utilisée :
$index = 1;
while ($index <= $number_of_interfaces) {
$oid_temp = $oid_ifdescr . $index;
print "Interface: ". Dumper($oid_temp);
if (!defined($s->get_request($oid_temp))){
}
else {
foreach ($s->var_bind_names()) {
$temp_interface_descr = $s->var_bind_list()->{$_};
}
if (lc($temp_interface_descr) eq lc($target_interface)) {
$target_interface_index = $index;
}
}
$index++;
}
Le problème est que ton cas n'est pas du tout pris en compte. L'auteur a manifestement présumé que les index des interfaces étaient forcément inférieurs au nombre (ifNumber) de ces mêmes interfaces. Ceci est complètement faux car ton cas n'est pas isolé et j'ai souvent vu des index bien plus élevés que le nombre total de celles-ci. Je me demande même s'il n'avait pas conçu ce plugin pour Linux ou un autre système d'exploitation disposant de peu d'interfaces en général et l'aurait ajouté à son package pour Cisco sans jamais ne l'avoir testé !...
waltergin
2nd May 2006, 15:27
Ok merci bien, de toute facon je ne vais pas utiliser ce plugin finalement...