2012-11-14 5 views
2

Récemment, nous avons créé des fichiers MIB pour le système NMS, mais je suis tombé sur le fait qu'après avoir déployé les MIB sur la machine Linux, je devais ajouter 101.1 à la fin, comme pour les mibs Linux standard uniquement. .0 doit être ajouté. Je ne suis pas capable de comprendre cela pourquoi ma valeur est retournée dans 101.1 et non .0.Requête concernant SNMP get

Par exemple quand je le fais avec MIBs linux je reçois la valeur

snmpget -v 2c -c public localhost 1.3.6.1.2.1.1.3.0 
SNMPv2-MIB::sysUpTime.0 = Timeticks: (105543) 0:17:35.43 

Mais pour mon mib au travail, je dois ajouter 101,1

Quand je fais une promenade avec mon MIB Je reçois ce qui suit.

snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.****.1.2.3 

SNMPv2-SMI::enterprises.****.1.2.3.1.1 = INTEGER: 1 
SNMPv2-SMI::enterprises.****.1.2.3.2.1 = STRING: "getSystemMemoryUsage.sh" 
SNMPv2-SMI::enterprises.****.1.2.3.3.1 = STRING: 
"/opt/nagios/plugins/fetch_scripts/System/getSystemMemoryUsage.sh" 
SNMPv2-SMI::enterprises.****.1.2.3.100.1 = INTEGER: 0 
SNMPv2-SMI::enterprises.****.1.2.3.101.1 = STRING: "388 MB" 
SNMPv2-SMI::enterprises.****.1.2.3.102.1 = INTEGER: 0 
SNMPv2-SMI::enterprises.****.1.2.3.103.1 = "" 

Quelqu'un peut-il un conseil pourquoi un tel comportement dans notre MIB et ce qui doit être fait pour que mon MIB se comportent comme Linux Mibs où je viens d'ajouter à la fin .0 et obtenir la valeur. Le TYPE D'OBJET est scalaire pour tous.

vous tous Remerciant à l'avance

Répondre

4

La nomenclature MIB prend en charge les données représentées sous forme de lignes de table et non scalaires tabulaires. Les données présentées sous forme de scalaires sont accessibles à l'aide de l'index OID.0. La partie ".0" indique l'accès à l'objet scalaire - instance d'objet unique dans le système. Les tables contiennent des colonnes (chaque colonne représente une sorte de données) et des lignes (chaque ligne représente une instance de table - une sorte d'entité qui supporte cette table).

Dans votre exemple, vous essayez d'accéder à une table dans votre MIB Enterprise. Cette table contient un index (il peut y avoir une ou plusieurs tables MIB indexées). Pour déterminer premier index disponible dans ce tableau, vous pouvez commencer par commande snmpgetnext de manière suivante:

snmpgetnext -v2c -c public localhost .1.3.6.1.4.1.****.1.2.3 

ou

snmpgetnext -v2c -c public localhost .1.3.6.1.4.1.****.1.2.3.0 

ou

snmpgetnext -v2c -c public localhost .1.3.6.1.4.1.****.1.2.3.0.0 

Comme vous pouvez voir toutes les commandes ci-dessus vous donne la première instance de ligne existante en mettant à jour deux dernières parties OID (.0.0). Ces deux OID n'ont pas besoin d'être spécifiés explicitement, donc vous pouvez utiliser un seul index nul (.0) ou même ne pas avoir à les spécifier du tout.

Pour comprendre comment les index de ces tables sont décrits, vous devez vous référer à votre Enterprise MIB - find table décrite par cet OID: .1.3.6.1.4.1. * * .1.2.3 et en savoir plus sur le schéma d'indexation et ce que ces index représentent. MIB bien écrit devrait contenir cette information.

interprétation peut être la suivante:

  • * .1.1 = 1 - colonne de données avec id = 1 pour l'index de l'entité 1
  • * .2.1 = "getSystemMemoryUsage.sh" - colonne de données avec id = 2 pour l'index d'entité 1 représentant le nom du script (syntaxe STRING)
  • * .3.1 = "/opt/nagios/plugins/fetch_scripts/System/getSystemMemoryUsage.sh" - colonne de données avec id = 3 pour l'index d'entité 1 représentant le chemin du script complet (STRING)
  • * .100.1 = 0 - colonne de données avec id = 100 pour l'indice de l'entité représentant une certaine valeur d'entier et ainsi de suite ...

indexation sur colonne (0,1, 0,2, 0,3, 0,100, 0,101 .. .) peut contenir des lacunes si les concepteurs de MIB s'attendent à ajouter quelques colonnes à l'avenir entre .3 et .100. ou simplement l'index d'entité 1 ne supporte pas ces colonnes (si elles sont définies dans MIB). Il est permis d'ignorer des colonnes vides.

Si vous souhaitez en savoir plus sur les différences entre les objets scalaires et colonnaires, reportez-vous à RFC1212.