View Full Version : Centreon and snmp V3
alexloom
08-29-2008, 12:56 PM
Salut,
Voila mon problème :
J'ai centreon 1.4.2 et nagios 2.12 et j'ai voulu utiliser la commande check_centreon_snmp_traffic. (sur des switchs 3Com, aucun pb de ce coté la)
Celle-ci marche bien en version 2c avec la communauté mais quand je passe en version 3 avec login et mot de passe ça me mets ça :
Use of uninitialized value in pattern match (m//) at /usr/share/perl5/Net/SNMP.pm line 2544.
UNKNOWN: SNMP Session : Time synchronization failed during discovery
J'ai cherché et j'ai trouvé que c'était du à ça
Engine id discovery did not work when sending SNMPv3 request
to IPv4 Address over IPv6 socket.
grosso modo je pourrai pas utiliser SNMP v3 pour une adresse IPv4. :(
Je pense qu'une solution serait de mettre ce plugins : snmp++v3.2.21
Ils disent que ça corrige le problème cependant je n'arrive pas à le trouver sur la toile...:neutral:
Est ce que quelqu'un aurait une idée?
Je dois absolument faire du snmp v3 avec centreon pour le traffic et récupérer les graphes pour faire des stats et pour php-weathermap. Passer en IPv6 est hors de question.
Si quelqu'un a une piste ou même la solution ou le plugin, je suis preneur. Je finis mon stage dans 3 semaines....:(
Je continue de chercher de mon coté et je vous tiens au courant.
Merci de me répondre.
PS: désolé si ce problème est dans un thread mais j'ai cherché plusieurs fois avant de poster et rien trouvé de similaire.
surcouf
08-29-2008, 04:23 PM
Salut,
Voila mon problème :
J'ai centreon 1.4.2 et nagios 2.12 et j'ai voulu utiliser la commande check_centreon_snmp_traffic. (sur des switchs 3Com, aucun pb de ce coté la)
Celle-ci marche bien en version 2c avec la communauté mais quand je passe en version 3 avec login et mot de passe ça me mets ça :
Use of uninitialized value in pattern match (m//) at /usr/share/perl5/Net/SNMP.pm line 2544.
UNKNOWN: SNMP Session : Time synchronization failed during discovery
J'ai cherché et j'ai trouvé que c'était du à ça
Engine id discovery did not work when sending SNMPv3 request
to IPv4 Address over IPv6 socket.
grosso modo je pourrai pas utiliser SNMP v3 pour une adresse IPv4. :(
Je pense qu'une solution serait de mettre ce plugins : snmp++v3.2.21
Ils disent que ça corrige le problème cependant je n'arrive pas à le trouver sur la toile...:neutral:
Est ce que quelqu'un aurait une idée?
Je dois absolument faire du snmp v3 avec centreon pour le traffic et récupérer les graphes pour faire des stats et pour php-weathermap. Passer en IPv6 est hors de question.
Si quelqu'un a une piste ou même la solution ou le plugin, je suis preneur. Je finis mon stage dans 3 semaines....:(
Je continue de chercher de mon coté et je vous tiens au courant.
Merci de me répondre.
PS: désolé si ce problème est dans un thread mais j'ai cherché plusieurs fois avant de poster et rien trouvé de similaire.
Je crois que tu es allé un peu en besogne avec ta recherche sur Google.
Je ne vois aucun rapport entre le module Perl Net::SNMP et snmp++v3.2.21.
Il serait intéressant de nous dévoiler la ligne de commande que tu as employé (sans le mot de passe, bien sûr) et de tester les mêmes paramètres avec snmpwalk.
alexloom
09-01-2008, 09:17 AM
Salut,
D'abord merci de me répondre;
voilà la commande que j'ai entré
./check_centreon_snmp_traffic -H 10.58.192.149 -i GigabitEthernt1/0/25 -w 100 -c 150 -v 3 -u admin -p ****
remarque : ca me fait la même chose avec snmp_load...
Sinon j'ai fait un snmpwalk et j'ai pas vu de problème (peut être que je l'ai mal fait..). Au sujet de snmpv...++ j'ai mis ca parce que dans les features ils disent que ce truc corrige les requêtes snmp V3 vers IPv4.
surcouf
09-01-2008, 09:32 AM
Salut,
D'abord merci de me répondre;
voilà la commande que j'ai entré
./check_centreon_snmp_traffic -H 10.58.192.149 -i GigabitEthernt1/0/25 -w 100 -c 150 -v 3 -u admin -p ****
remarque : ca me fait la même chose avec snmp_load...
Sinon j'ai fait un snmpwalk et j'ai pas vu de problème (peut être que je l'ai mal fait..). Au sujet de snmpv...++ j'ai mis ca parce que dans les features ils disent que ce truc corrige les requêtes snmp V3 vers IPv4.
Quel est le résultat et la ligne de commande employée pour snmpwalk ?
alexloom
09-01-2008, 04:20 PM
La ligne de commande
debian:/var/lib/ods/database# snmpwalk /usr/local/nagios/libexec/check_centreon_snmp_traffic -H 10.58.192.149 -i GigabitEthernet1/0/25 -w 100 -c 150 -v 3 -u admin -p *******
le résultat:
Configuration directives understood:
No log handling enabled - turning on stderr logging
In snmpwalk.conf and snmpwalk.local.conf:
includeRequested (1|yes|true|0|no|false)
excludeRequested (1|yes|true|0|no|false)
printStatistics (1|yes|true|0|no|false)
dontCheckOrdering (1|yes|true|0|no|false)
timeResults (1|yes|true|0|no|false)
In snmp.conf and snmp.local.conf:
doDebugging (1|0)
debugTokens token[,token...]
logTimestamp (1|yes|true|0|no|false)
mibdirs [mib-dirs|+mib-dirs|-mib-dirs]
mibs [mib-tokens|+mib-tokens]
mibfile mibfile-to-read
showMibErrors (1|yes|true|0|no|false)
strictCommentTerm (1|yes|true|0|no|false)
mibAllowUnderline (1|yes|true|0|no|false)
mibWarningLevel integerValue
mibReplaceWithLatest (1|yes|true|0|no|false)
printNumericEnums (1|yes|true|0|no|false)
printNumericOids (1|yes|true|0|no|false)
escapeQuotes (1|yes|true|0|no|false)
dontBreakdownOids (1|yes|true|0|no|false)
quickPrinting (1|yes|true|0|no|false)
numericTimeticks (1|yes|true|0|no|false)
oidOutputFormat integerValue
suffixPrinting integerValue
extendedIndex (1|yes|true|0|no|false)
printHexText (1|yes|true|0|no|false)
printValueOnly (1|yes|true|0|no|false)
dontPrintUnits (1|yes|true|0|no|false)
hexOutputLength integerValue
dumpPacket (1|yes|true|0|no|false)
reverseEncodeBER (1|yes|true|0|no|false)
defaultPort integerValue
defCommunity string
noTokenWarnings (1|yes|true|0|no|false)
noRangeCheck (1|yes|true|0|no|false)
persistentDir string
tempFilePattern string
noDisplayHint (1|yes|true|0|no|false)
16bitIDs (1|yes|true|0|no|false)
clientaddr string
serverSendBuf integerValue
serverRecvBuf integerValue
clientSendBuf integerValue
clientRecvBuf integerValue
noPersistentLoad (1|yes|true|0|no|false)
noPersistentSave (1|yes|true|0|no|false)
defDomain application domain
defTarget application domain target
defSecurityModel string
defSecurityName string
defContext string
defPassphrase string
defAuthPassphrase string
defPrivPassphrase string
defAuthMasterKey string
defPrivMasterKey string
defAuthLocalizedKey string
defPrivLocalizedKey string
defVersion 1|2c|3
defAuthType MD5|SHA
defPrivType DES|AES
defSecurityLevel noAuthNoPriv|authNoPriv|authPriv
In snmpapp.conf and snmpapp.local.conf:
defDomain application domain
defTarget application domain target
engineID string
engineIDType num
engineIDNic string
surcouf
09-01-2008, 05:13 PM
La ligne de commande
debian:/var/lib/ods/database# snmpwalk /usr/local/nagios/libexec/check_centreon_snmp_traffic -H 10.58.192.149 -i GigabitEthernet1/0/25 -w 100 -c 150 -v 3 -u admin -p *******
La commande serait plutôt :
$ snmpwalk -v 3 -a MD5 -u admin -A ******* 10.58.192.149 ifDescr
ou :
$ snmpwalk -v 3 -a SHA -u admin -A ******* 10.58.192.149 ifDescr
ou :
$ snmpwalk -v 3 -l authNoPriv -a SHA -u admin -A ******* 10.58.192.149 ifDescr
ou :
$ snmpwalk -v 3 -l authNoPriv -a MD5 -u admin -A ******* 10.58.192.149 ifDescr
alexloom
09-02-2008, 03:21 PM
debian:/usr/local/nagios/libexec# snmpwalk -v 3 -a MD5 -u admin -A ***** 10.58.192.149 ifDescr
IF-MIB::ifDescr.14 = STRING: NULL0
IF-MIB::ifDescr.16 = STRING: InLoopBack0
IF-MIB::ifDescr.31 = STRING: Vlan-interface1
IF-MIB::ifDescr.4227614 = STRING: Aux1/0/0
IF-MIB::ifDescr.4227626 = STRING: Ethernet1/0/1
IF-MIB::ifDescr.4227634 = STRING: Ethernet1/0/2
IF-MIB::ifDescr.4227642 = STRING: Ethernet1/0/3
IF-MIB::ifDescr.4227650 = STRING: Ethernet1/0/4
IF-MIB::ifDescr.4227658 = STRING: Ethernet1/0/5
IF-MIB::ifDescr.4227666 = STRING: Ethernet1/0/6
IF-MIB::ifDescr.4227674 = STRING: Ethernet1/0/7
IF-MIB::ifDescr.4227682 = STRING: Ethernet1/0/8
IF-MIB::ifDescr.4227690 = STRING: Ethernet1/0/9
IF-MIB::ifDescr.4227698 = STRING: Ethernet1/0/10
IF-MIB::ifDescr.4227706 = STRING: Ethernet1/0/11
IF-MIB::ifDescr.4227714 = STRING: Ethernet1/0/12
IF-MIB::ifDescr.4227722 = STRING: Ethernet1/0/13
IF-MIB::ifDescr.4227730 = STRING: Ethernet1/0/14
IF-MIB::ifDescr.4227738 = STRING: Ethernet1/0/15
IF-MIB::ifDescr.4227746 = STRING: Ethernet1/0/16
IF-MIB::ifDescr.4227754 = STRING: Ethernet1/0/17
IF-MIB::ifDescr.4227762 = STRING: Ethernet1/0/18
IF-MIB::ifDescr.4227770 = STRING: Ethernet1/0/19
IF-MIB::ifDescr.4227778 = STRING: Ethernet1/0/20
IF-MIB::ifDescr.4227786 = STRING: Ethernet1/0/21
IF-MIB::ifDescr.4227794 = STRING: Ethernet1/0/22
IF-MIB::ifDescr.4227802 = STRING: Ethernet1/0/23
IF-MIB::ifDescr.4227810 = STRING: Ethernet1/0/24
IF-MIB::ifDescr.4227817 = STRING: GigabitEthernet1/0/25
IF-MIB::ifDescr.4227825 = STRING: GigabitEthernet1/0/26
IF-MIB::ifDescr.4227833 = STRING: GigabitEthernet1/0/27
IF-MIB::ifDescr.4227841 = STRING: GigabitEthernet1/0/28
surcouf
09-02-2008, 03:51 PM
debian:/usr/local/nagios/libexec# snmpwalk -v 3 -a MD5 -u admin -A ***** 10.58.192.149 ifDescr
Essaie celle-ci :
$ snmpwalk -v 3 -l noAuthNoPriv -a MD5 -u admin -A ***** 10.58.192.149 ifDescr
alexloom
09-02-2008, 04:53 PM
debian:/usr/local/nagios/libexec# snmpwalk -v 3 -l noAuthNoPriv -a MD5 -u admin -A ***** 10.58.192.149 ifDescr
IF-MIB::ifDescr.14 = STRING: NULL0
IF-MIB::ifDescr.16 = STRING: InLoopBack0
IF-MIB::ifDescr.31 = STRING: Vlan-interface1
IF-MIB::ifDescr.4227614 = STRING: Aux1/0/0
IF-MIB::ifDescr.4227626 = STRING: Ethernet1/0/1
IF-MIB::ifDescr.4227634 = STRING: Ethernet1/0/2
IF-MIB::ifDescr.4227642 = STRING: Ethernet1/0/3
IF-MIB::ifDescr.4227650 = STRING: Ethernet1/0/4
IF-MIB::ifDescr.4227658 = STRING: Ethernet1/0/5
IF-MIB::ifDescr.4227666 = STRING: Ethernet1/0/6
IF-MIB::ifDescr.4227674 = STRING: Ethernet1/0/7
IF-MIB::ifDescr.4227682 = STRING: Ethernet1/0/8
IF-MIB::ifDescr.4227690 = STRING: Ethernet1/0/9
IF-MIB::ifDescr.4227698 = STRING: Ethernet1/0/10
IF-MIB::ifDescr.4227706 = STRING: Ethernet1/0/11
IF-MIB::ifDescr.4227714 = STRING: Ethernet1/0/12
IF-MIB::ifDescr.4227722 = STRING: Ethernet1/0/13
IF-MIB::ifDescr.4227730 = STRING: Ethernet1/0/14
IF-MIB::ifDescr.4227738 = STRING: Ethernet1/0/15
IF-MIB::ifDescr.4227746 = STRING: Ethernet1/0/16
IF-MIB::ifDescr.4227754 = STRING: Ethernet1/0/17
IF-MIB::ifDescr.4227762 = STRING: Ethernet1/0/18
IF-MIB::ifDescr.4227770 = STRING: Ethernet1/0/19
IF-MIB::ifDescr.4227778 = STRING: Ethernet1/0/20
IF-MIB::ifDescr.4227786 = STRING: Ethernet1/0/21
IF-MIB::ifDescr.4227794 = STRING: Ethernet1/0/22
IF-MIB::ifDescr.4227802 = STRING: Ethernet1/0/23
IF-MIB::ifDescr.4227810 = STRING: Ethernet1/0/24
IF-MIB::ifDescr.4227817 = STRING: GigabitEthernet1/0/25
IF-MIB::ifDescr.4227825 = STRING: GigabitEthernet1/0/26
IF-MIB::ifDescr.4227833 = STRING: GigabitEthernet1/0/27
IF-MIB::ifDescr.4227841 = STRING: GigabitEthernet1/0/28
J'ai essayé la commande check_snmp_int.pl avec la commande
debian:/usr/local/nagios/libexec# ./check_snmp_int.pl -H 10.58.192.149 -l admin -w ***** -w 100 -c 200 -n GigabitEthernet1/0/25
Mais j'ai ça. J'ai loupé qqchose ou quoi?
Put snmp login info!
Usage: ./check_snmp_int.pl [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>) [-p <port>] -n <name in desc_oid> [-i -a -D] [-r] [-f[eSyY]] [-k[qBMGu] -g -w<warn levels> -c<crit levels> -d<delta>] [-o <octet_length>] [-t <timeout>] [-s] --label [-V]
sinon avec check_snmp
debian:/usr/local/nagios/libexec# ./check_snmp -H 10.58.192.149 -o 4227817 -l GigabitEthernet1/0/25 -P 3 -U admin -A ******
GigabitEthernet1/0/25
Mais j'obtiens toujours ca :
problème-Pas de données reçues de l'hôte
Commande: /usr/local/bin/snmpget -t 1 -r 5 -m '' -v 3 [authpriv] 10.58.192.149:161 4227817
je commence à perdre espoir que ca marche un jour...:(
surcouf
09-03-2008, 09:46 AM
J'ai essayé la commande check_snmp_int.pl avec la commande
debian:/usr/local/nagios/libexec# ./check_snmp_int.pl -H 10.58.192.149 -l admin -w ***** -w 100 -c 200 -n GigabitEthernet1/0/25
Mais j'ai ça. J'ai loupé qqchose ou quoi?
Put snmp login info!
Usage: ./check_snmp_int.pl [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>) [-p <port>] -n <name in desc_oid> [-i -a -D] [-r] [-f[eSyY]] [-k[qBMGu] -g -w<warn levels> -c<crit levels> -d<delta>] [-o <octet_length>] [-t <timeout>] [-s] --label [-V]
Oui, tu as saisi deux fois l'option -w. Pour définir le mot de passe, il faut utiliser l'option -x.
Sans doute une faute de frappe.
sinon avec check_snmp
debian:/usr/local/nagios/libexec# ./check_snmp -H 10.58.192.149 -o 4227817 -l GigabitEthernet1/0/25 -P 3 -U admin -A ******
GigabitEthernet1/0/25
Mais j'obtiens toujours ca :
problème-Pas de données reçues de l'hôte
Commande: /usr/local/bin/snmpget -t 1 -r 5 -m '' -v 3 [authpriv] 10.58.192.149:161 4227817
je commence à perdre espoir que ca marche un jour...:(
L'option -o de check_snmp attend un OID complet, pas le numéro d'index :
$ ./check_snmp -H 10.58.192.149 -o ifDescr.4227817 -l GigabitEthernet1/0/25 -P 3 -U admin -A ******
alexloom
09-03-2008, 04:06 PM
Salut,
Je croyais que c'était l'oid.
Du coup je sais pas comment on récupère le vrai OID dont j'ai besoin.
Si quelqu'un le sait qu'il hésite pas :)
Bon je vais quand même demander à mon ami google.
surcouf
09-03-2008, 04:25 PM
Salut,
Je croyais que c'était l'oid.
Du coup je sais pas comment on récupère le vrai OID dont j'ai besoin.
Si quelqu'un le sait qu'il hésite pas :)
Bon je vais quand même demander à mon ami google.
Si tu préfères demander à ton ami Google que relire ma réponse, libre à toi.
alexloom
09-04-2008, 10:23 AM
Salut,
Ok, j'avais relu ta réponse mais ça me mettait toujours le résultat : "Pas de données reçus de l'hôte."
Cependant avec l'option -L ça marche :
debian:/usr/local/nagios/libexec# ./check_snmp -H 10.58.192.149 -o ifDescr.4227817 -l GigabitEthernet1/0/25 -P 3 -U admin -A *** -L authNoPriv
j'obtiens : GigabitEthernet1/0/25 OK - GigabitEthernet1/0/25 | IF-MIB::ifDescr.4227817=GigabitEthernet1/0/25
Donc ça marche.
Par contre j'ai toujours le même problème pour check_centreon_snmp_traffic -> synchronization failed...
Je me demande si ce n'est pas une erreur dans le script. Je vais regarder ça de plus près.
surcouf
09-04-2008, 03:49 PM
Salut,
Ok, j'avais relu ta réponse mais ça me mettait toujours le résultat : "Pas de données reçus de l'hôte."
Cependant avec l'option -L ça marche :
debian:/usr/local/nagios/libexec# ./check_snmp -H 10.58.192.149 -o ifDescr.4227817 -l GigabitEthernet1/0/25 -P 3 -U admin -A *** -L authNoPriv
j'obtiens : GigabitEthernet1/0/25 OK - GigabitEthernet1/0/25 | IF-MIB::ifDescr.4227817=GigabitEthernet1/0/25
Donc ça marche.
Par contre j'ai toujours le même problème pour check_centreon_snmp_traffic -> synchronization failed...
Je me demande si ce n'est pas une erreur dans le script. Je vais regarder ça de plus près.
Je comprends mieux : oui, il y a un problème avec le plugin car il ne précise pas le niveau de sécurité, qui est par défaut à noAuthNoPriv, ce qui explique pourquoi ça ne fonctionne pas.
alexloom
09-05-2008, 10:00 AM
Salut,
J'ai pas vu d'options pour changer le niveau de sécurité..;:(
T'as surement raison pour l'erreur dans le pluggin seulement je ne connais pas le perl (je comprends un peu mais j'en ai jamais fait) donc c'est chaud pour
le modifier.
Si t'as une solution ca serait pas de refus :D
Je vais un peu voir si je trouve des trucs sur le neet pour ce pluggin.
alexloom
09-05-2008, 01:50 PM
J'ai vu dans /usr/share/perl5/Net/SNMP.pm
By default a securityLevel of 'noAuthNoPriv' is assumed. If the B<-authkey>
or B<-authpassword> arguments are specified, the securityLevel becomes
'authNoPriv'.
Ca voudrait dire qu'il gère tout seul le niveau de sécurité.
Du coup je vois pas du tout d'où peut venir l'erreur..:mad:
Please help:!:
(Plus que deux semaines avant la fin de mon stage)
alexloom
09-08-2008, 03:49 PM
Un petit up parce que j'ai toujours ce problème.
Je crois avoir ciblé d'où vient le problème.
Quand j'utilise la commande check_centreon_snmp_traffic... l'erreur c'est en fait
if ((!$this->{_error}) || ($this->{_error} =~ /usmStatsNotInTimeWindows/)) {
$this->_error_clear;
$this->_error('Time synchronization failed during discovery');
}
c'est le usmStatsNotInTimeWindows qui ne va pas mais j'ai trouvé personne avec le même problème.
Quand j'utilise check_snmp_int.pl (trouvé sur manubulon) j'ai l'erreur suivante
ERROR opening session: Send failure: Argument invalide during discovery.
Je n'ai pas non plus trouvé la solution. S'il vous plait un peu d'aide. Je ne suis tout de même pas le seul avec ce problème :???:
surcouf
09-08-2008, 04:50 PM
Un petit up parce que j'ai toujours ce problème.
Je crois avoir ciblé d'où vient le problème.
Quand j'utilise la commande check_centreon_snmp_traffic... l'erreur c'est en fait
if ((!$this->{_error}) || ($this->{_error} =~ /usmStatsNotInTimeWindows/)) {
$this->_error_clear;
$this->_error('Time synchronization failed during discovery');
}
c'est le usmStatsNotInTimeWindows qui ne va pas mais j'ai trouvé personne avec le même problème.
Quand j'utilise check_snmp_int.pl (trouvé sur manubulon) j'ai l'erreur suivante
ERROR opening session: Send failure: Argument invalide during discovery.
Je n'ai pas non plus trouvé la solution. S'il vous plait un peu d'aide. Je ne suis tout de même pas le seul avec ce problème :???:
Peux-tu vérifier la configuration de la date sur ton équipement ?
alexloom
09-09-2008, 10:07 AM
Salut,
Sur mon équipement 08:55:45 UTC Tue 09/09/2008 la bonne date est la bonne heure.
Sur mon serveur mar 9 sep, 08:49:07 la bonne date aussi. j'utilise NTP pour la date du serveur.
Les deux heures sont correctes. (j'ai essayé de mettre presque la même heure sur le switch et le serveur à la seconde près mais ça ne change rien).
J'ai trouvé que l'erreur venant de UsmStatsNotInTime est due au fait que le local engineTime est plus grand que le NetworkElement EngineTime. Mais c'est pas le cas...
J'ai mis la date de mon switch avec NTP avec comme serveur celui ou est nagios. Ils ont maintenant la même heure pourtant j'ai toujours le même problème.
je suis un peu perdu. Est ce que check_centreon_snmp_traffic ou check_snmp_int fonctionnent sn SNMPv3 chez tout le mode ?
Je n'ai plus qu'une semaine avant de finir mon stage. Je dois absolument faire marcher ça...
De l'aide s'il vous plait.
alexloom
09-09-2008, 01:52 PM
up.
J'ai fait des requêtes snmp directes avec snmpget
snmpget -v 3 -u admin -a MD5 -A ***** -l authNoPriv 10.58.192.149 ifInErrors.4227
et j'obtiens bien quelque chose IF-MIB::ifInErrors.4227817 = Counter32: 58 Comme quoi le switch accepte sans pb ces requêtes.
Surcouf (ou n'importe qui) une idée??
surcouf
09-09-2008, 02:35 PM
De quelles versions de Net-SNMP et Net::SNMP disposes-tu ?
Et de quelle distribution ?
Et, en outre, peux-tu exécuter la commande suivante :
$ snmpwalk -v 3 -u admin -a MD5 -A ***** -l authNoPriv 10.xx.xxx.xxx snmpEngine
alexloom
09-09-2008, 03:23 PM
Salut,
merci de ne pas m'oublier.
la commande snmpwalk -v 3 -u admin -a MD5 -A **** -l authNoPriv 10.x.X.X snmpEngine
donne
SNMP-FRAMEWORK-MIB::snmpEngineID.0 = Hex-STRING: 80 00 00 2B 00 1E C1 CC 29 40 68 77
SNMP-FRAMEWORK-MIB::snmpEngineBoots.0 = INTEGER: 14
SNMP-FRAMEWORK-MIB::snmpEngineTime.0 = INTEGER: 1660038 seconds
SNMP-FRAMEWORK-MIB::snmpEngineMaxMessageSize.0 = INTEGER: 1500
sinon j'ai installé la version5.4.1.2 de net snmp
pour la distribution : debian etch 4.0
surcouf
09-09-2008, 05:42 PM
Salut,
merci de ne pas m'oublier.
la commande snmpwalk -v 3 -u admin -a MD5 -A **** -l authNoPriv 10.x.X.X snmpEngine
donne
SNMP-FRAMEWORK-MIB::snmpEngineID.0 = Hex-STRING: 80 00 00 2B 00 1E C1 CC 29 40 68 77
SNMP-FRAMEWORK-MIB::snmpEngineBoots.0 = INTEGER: 14
SNMP-FRAMEWORK-MIB::snmpEngineTime.0 = INTEGER: 1660038 seconds
SNMP-FRAMEWORK-MIB::snmpEngineMaxMessageSize.0 = INTEGER: 1500
sinon j'ai installé la version5.4.1.2 de net snmp
pour la distribution : debian etch 4.0
Et la version du module Perl Net::SNMP ?
$ dpkg -l libnet-snmp-perl |tail -1
surcouf
09-09-2008, 05:59 PM
Essaie ce petit script pour tester :
#!/usr/bin/perl
#
use strict;
use warnings;
use Data::Dumper;
use SNMP;
my $user = shift;
my $password = shift;
my $table = shift;
my @oids = @ARGV;
my %snmpOpts = (
'AuthPass' => $password,
'AuthProto' => 'MD5',
'Community' => undef,
'DestHost' => 'localhost',
'PrivPass' => undef,
'PrivProto' => undef,
'RemotePort' => '161',
'SecLevel' => 'authNoPriv',
'SecName' => $user,
'Version' => '3',
);
my $session = SNMP::Session->new( %snmpOpts );
my $results = $session->gettable(
$table,
noindexes => 1,
columns => [ @oids ],
);
print "DEBUG: results = ". Dumper($results) ."\n";
Pour l'utiliser, une fois l'avoir copié et installé le module Perl SNMP (paquet libsnmp-perl sous Debian), exécute-le ainsi :
$ perl script.pl admin xxxxx ifTable ifDescr
Ce plugin utilise le module Perl SNMP, du projet Net-SNMP, celui-là même qui fournit l'agent snmpd et snmptrapd, à ne pas confondre avec le module perl Net::SNMP.
alexloom
09-10-2008, 09:50 AM
Salut,
voila le résultat:
perl: symbol lookup error: /usr/local/lib/libnetsnmp.so.9: undefined symbol: RAND_bytes
surcouf
09-10-2008, 07:25 PM
Salut,
voila le résultat:
perl: symbol lookup error: /usr/local/lib/libnetsnmp.so.9: undefined symbol: RAND_bytes
Tu l'as compilé toi-même, je suppose...
Pourquoi as-tu compilé et installé la version 5.4.1 ?
alexloom
09-11-2008, 09:52 AM
Salut,
Oui je l'ai compilé moi-même. Le gars qui travaillait avec moi m'avait conseillé de le faire.
C'est la première fois que j'ai cette erreur. Je l'ai recompilé (au cas où j'aurais mal fait) en précisant bien
./configure --with-openssl=/usr/lib --with-perl-modules
Mais j'ai toujours l'erreur.:mad:
Est ce que tu sais comment y remédier?
surcouf
09-11-2008, 09:53 AM
Salut,
Oui je l'ai compilé moi-même. Le gars qui travaillait avec moi m'avait conseillé de le faire.
C'est la première fois que j'ai cette erreur. Je l'ai recompilé (au cas où j'aurais mal fait) en précisant bien
./configure --with-openssl=/usr/lib --with-perl-modules
Mais j'ai toujours l'erreur.:mad:
Est ce que tu sais comment y remédier?
Essaie d'utiliser le paquet binaire fourni avec Debian : au moins, il marche correctement, lui.
Pourquoi t'a-t-il donné ce conseil ?
alexloom
09-11-2008, 10:43 AM
Pourquoi t'a-t-il donné ce conseil ?
Il l'avait installé il y a u 1 an quand il a mis nagios et oeron sur un autre serveur. (seulement il n'utilisait pas des check avec snmpv3 donc il devait pas avoir vu le problème)
ok, j'ai désinstallé le net-snmp que j'avais compilé; J'ai mis celui que tu as dit (par gestionnaire de paquet) et .... ça ne marche toujours pas. j'ai les mêmes erreurs.
J'ai loupé quelque chose ou quoi? Tu peux me donner la liste des trucs à faire (je dois en oublier -.-)
surcouf
09-11-2008, 12:29 PM
Il l'avait installé il y a u 1 an quand il a mis nagios et oeron sur un autre serveur. (seulement il n'utilisait pas des check avec snmpv3 donc il devait pas avoir vu le problème)
ok, j'ai désinstallé le net-snmp que j'avais compilé; J'ai mis celui que tu as dit (par gestionnaire de paquet) et .... ça ne marche toujours pas. j'ai les mêmes erreurs.
J'ai loupé quelque chose ou quoi? Tu peux me donner la liste des trucs à faire (je dois en oublier -.-)
Si tu as la même erreur relative à /usr/local/lib/libnetsnmp.so.9, c'est que tu ne l'as pas complètement désinstallé.
alexloom
09-11-2008, 01:03 PM
Si tu as la même erreur relative à /usr/local/lib/libnetsnmp.so.9, c'est que tu ne l'as pas complètement désinstallé.
J'ai désinstallé tout ce qui était relatif à net-snmp j'ai réinstallé par le gestionnaire. J'ai réeinstallé les paquets perl (perl-net-snmp, perl snmp...) et j'ai toujours cette erreur.:evil:
Je vois pas quoi faire d'autre.
Après la désinstallation j'avais fait un updatedb puis un locate et il n'y avait plus aucun fichier contenant net-snmp donc j'avais bien tout désinstallé.
Je suis sec d'idée...
surcouf
09-11-2008, 01:50 PM
J'ai désinstallé tout ce qui était relatif à net-snmp j'ai réinstallé par le gestionnaire. J'ai réeinstallé les paquets perl (perl-net-snmp, perl snmp...) et j'ai toujours cette erreur.:evil:
Je vois pas quoi faire d'autre.
Après la désinstallation j'avais fait un updatedb puis un locate et il n'y avait plus aucun fichier contenant net-snmp donc j'avais bien tout désinstallé.
Je suis sec d'idée...
peux-tu faire un locate SNMP.pm et à partir du chemin complet fourni, un ldd sur ce fichier.
alexloom
09-11-2008, 03:05 PM
Voila ce que ça donne :
debian:/home/nagios# locate SNMP.pm
/usr/lib/perl5/SNMP.pm
/usr/local/lib/perl/5.8.8/SNMP.pm
/usr/share/perl5/Net/SNMP.pm
debian:/home/nagios# ldd /usr/lib/perl5/SNMP.pm
not a dynamic executable
debian:/home/nagios# ldd /usr/local/lib/perl/5.8.8/SNMP.pm
not a dynamic executable
debian:/home/nagios# ldd /usr/share/perl5/Net/SNMP.pm
not a dynamic executable
Est ce normal que j'ai 3 fois le fichier SNMP.pm?
surcouf
09-12-2008, 01:43 AM
Voila ce que ça donne :
debian:/home/nagios# locate SNMP.pm
/usr/lib/perl5/SNMP.pm
/usr/local/lib/perl/5.8.8/SNMP.pm
/usr/share/perl5/Net/SNMP.pm
Est ce normal que j'ai 3 fois le fichier SNMP.pm?
3 fois, non.
Le premier est celui du module SNMP du projet Net-SNMP fourni par le paquet Debian.
Le second est celui qui a été installé par la compilation. Soit tu n'as pas fait le ménage, soit la base de locate n'est pas à jour : un coup d'updatedb et tu ré-essaies.
Le dernier est celui du module Net::SNMP (à ne pas confondre avec le premier).
alexloom
09-12-2008, 09:44 AM
Salut,
Le second est celui qui a été installé par la compilation. Soit tu n'as pas fait le ménage, soit la base de locate n'est pas à jour : un coup d'updatedb et tu ré-essaies.
Ok, j'ai supprimé le dossier (je n'avais pas le choix, pas de désinstallation possible). Du coup ton script marche (enfin je crois).
Si j'ai bien compris le xxxx c'est le mot de passe du 'localhost' et quand je le rentre il me met :
Error: passphrase chosen is below the length requirements of the USM (min=8).
Can't call method "gettable" on an undefined value at script.pl line 33
mon mot de passe est trop petit (8 mini contre 6 pour moi..)? j'ai changé mon mot de passe de la machine et finalement j'obtiens ceci :
DEBUG: results = $VAR1 = {};
c'est normal ou pas?
(je sais pas si ça a à voir mais snmpd était lancé quand j'ai fait la commande)
Sinon j'ai essayé ton script en modifiant localhost par l'adresse du switch et la il affiche
DEBUG: results = $VAR1 = {
'4227810' => {
'ifDescr' => 'Ethernet1/0/24'
},
et ce pour toutes les interfaces.
alexloom
09-12-2008, 05:11 PM
Salut,
Essaie ce petit script pour tester :
Pour l'utiliser, une fois l'avoir copié et installé le module Perl SNMP (paquet libsnmp-perl sous Debian), exécute-le ainsi :
Ce plugin utilise le module Perl SNMP, du projet Net-SNMP, celui-là même qui fournit l'agent snmpd et snmptrapd, à ne pas confondre avec le module perl Net::SNMP.
Surcouf, est-ce qu'on peut modifier le plugin check_centreon_snmp_traffic pour utiliser le module Perl SNMP et pas Net::SNMP qui pose problème?
Je ne m'y connais pas en perl mais si ça marche avec ton script ça peut peut-être marché avec ce plugin...
PS : J'ai vraiment besoin d'aide parce que mon chef risque de ne pas valider mon stage si je n'arrive pas à faire fonctionner le monitoring trrafic en snmpv3.
alexloom
09-15-2008, 09:55 AM
up
Il y a quand même quelqu'un qui peut m'aider:confused:
Je suis pas tout seul a avoir ce pb...
surcouf
09-15-2008, 11:00 PM
Salut,
Ok, j'ai supprimé le dossier (je n'avais pas le choix, pas de désinstallation possible). Du coup ton script marche (enfin je crois).
Si j'ai bien compris le xxxx c'est le mot de passe du 'localhost' et quand je le rentre il me met :
Error: passphrase chosen is below the length requirements of the USM (min=8).
Can't call method "gettable" on an undefined value at script.pl line 33
mon mot de passe est trop petit (8 mini contre 6 pour moi..)? j'ai changé mon mot de passe de la machine et finalement j'obtiens ceci :
DEBUG: results = $VAR1 = {};
c'est normal ou pas?
(je sais pas si ça a à voir mais snmpd était lancé quand j'ai fait la commande)
Sinon j'ai essayé ton script en modifiant localhost par l'adresse du switch et la il affiche
DEBUG: results = $VAR1 = {
'4227810' => {
'ifDescr' => 'Ethernet1/0/24'
},
et ce pour toutes les interfaces.
Donc, il s'agit bien d'un problème venant du module Perl Net::SNMP.
Il fallait évidemment remplacer localhost par l'adresse de ton switch et cela fonctionne.
surcouf
09-15-2008, 11:02 PM
Salut,
Surcouf, est-ce qu'on peut modifier le plugin check_centreon_snmp_traffic pour utiliser le module Perl SNMP et pas Net::SNMP qui pose problème?
Je ne m'y connais pas en perl mais si ça marche avec ton script ça peut peut-être marché avec ce plugin...
PS : J'ai vraiment besoin d'aide parce que mon chef risque de ne pas valider mon stage si je n'arrive pas à faire fonctionner le monitoring trrafic en snmpv3.
Tu as modifié ton mot de passe pour valider le précédent test.
As-tu tester à nouveau avec check_centreon_snmp_traffic ? Sinon, peux-tu faire le test ?
PS: sans vouloir me jeter des fleurs, je dois être le plus expérimenté ici bas par rapport à SNMP mais j'étais en week-end prolongé.
alexloom
09-16-2008, 09:52 AM
Salut,
Tu as modifié ton mot de passe pour valider le précédent test.
As-tu tester à nouveau avec check_centreon_snmp_traffic ? Sinon, peux-tu faire le test ?
Oui j'ai changé de mot de passe et le test fonctionne avec ton script. Par contre il y a toujours le même problème :(
Use of uninitialized value in pattern match (m//) at /usr/share/perl5/Net/SNMP.pm line 2544.
UNKNOWN: SNMP Session : Time synchronization failed during discovery
Ce qui semble normal puisque je n'ai pas modifié le code...
Vu que tu est fort en snmp, Est ce qu'il y a moyen de modifier le plugin pour qu'il utilise le module Perl Net-snmp qui fonctionne au lieu du module NET::SNMP.:?:
Les commandes snmpget utilise quel module parce qu'elles fonctionnent correctement en v3? ( j'ai voulu comprendre le fonctionnement du module et retrouver par snmpget les valeurs qu'il récupère, faire le calcul ... faire un plugin quoi mais j'ai tellement d'erreur de compilation et pas le temps de tout déboger que j'ai abandonné :) )
surcouf
09-16-2008, 03:02 PM
Salut,
Oui j'ai changé de mot de passe et le test fonctionne avec ton script. Par contre il y a toujours le même problème :(
Use of uninitialized value in pattern match (m//) at /usr/share/perl5/Net/SNMP.pm line 2544.
UNKNOWN: SNMP Session : Time synchronization failed during discovery
Ce qui semble normal puisque je n'ai pas modifié le code...
Vu que tu est fort en snmp, Est ce qu'il y a moyen de modifier le plugin pour qu'il utilise le module Perl Net-snmp qui fonctionne au lieu du module NET::SNMP.:?:
C'est possible mais cela nécessite de revoir un peu le code du plugin.
Quelle version du plugin utilises-tu ?
Les commandes snmpget utilise quel module parce qu'elles fonctionnent correctement en v3? ( j'ai voulu comprendre le fonctionnement du module et retrouver par snmpget les valeurs qu'il récupère, faire le calcul ... faire un plugin quoi mais j'ai tellement d'erreur de compilation et pas le temps de tout déboger que j'ai abandonné :) )
Les commandes telles que snmpget, snmpwalk, etc. font partie du projet Net-SNMP et il s'agit d'exécutables compilés liés à la bibliothèque de Net-SNMP (ce qui explique pourquoi ça marche).
alexloom
09-16-2008, 05:15 PM
Salut,
J'utilise la version 1.4.2.2 de centreon et les plugins sont ceux fournis avec.
alexloom
09-16-2008, 05:18 PM
C'est possible mais cela nécessite de revoir un peu le code du plugin.
genre changement massif ou quelques lignes à modifier?
surcouf
09-17-2008, 01:29 PM
genre changement massif ou quelques lignes à modifier?
Un changement assez massif puisque les appels changent mais surtout, la méthode gettable du module SNMP, équivalente à la get_table de Net::SNMP, est assez différente.
alexloom
09-17-2008, 03:55 PM
Ok, donc c'est pas envisageable en 2 jours.
Est ce que la snmpv3 fonctionne avec les plugins check_centreon_snmp... centreon fournis avec centreon 2?
Y a t'il un moyen de changer la version de Net::SNMP? Peut-être qu'avec une version plus récente ces plugins fonctionneraient... (c'est juste une idée)