5 votes

Pourquoi les agents SNMP ont-ils besoin de fichiers MIB ?

Après avoir lu sur SNMP et certaines des questions posées ici, je pense comprendre le rôle de l'agent en tant que service SNMP pour l'appareil (comme SQL, c'est une API pour le stockage).

Lorsque vous exécutez une requête SQL, le moteur SQL fait tout le travail et renvoie le résultat - vous n'avez pas besoin de savoir comment et où le stockage est effectué.

Mais les MIB ne sont pas un stockage réel, alors quel est le rôle de mon agent ?
Si l'agent n'enregistre que la MIB comme je l'ai fait dans le cas suivant tutoriel Il n'est donc pas du tout utilisé comme gestionnaire et cela signifie qu'il existe un stockage physique que l'on peut définir et auquel on peut accéder sans contourner le gestionnaire. Dans le tutoriel, tout ce que vous faites, c'est ceci :

netsnmp_register_int_instance("my example int variable",
                                  my_registration_oid,
                                  OID_LENGTH(my_registration_oid),
                                  &example1, NULL);

il n'est pas nécessaire que le gestionnaire traite les appels.

Supposons que je veuille surveiller la file d'attente des requêtes en attente de mon application, je veux donc un agent qui déclenche toutes les requêtes SNMP pour application_pending_request et qui renvoie la profondeur de la file d'attente. Pourquoi ai-je besoin d'une MIB alors qu'il me suffit d'interroger la file d'attente de mon application pour obtenir un résultat ?

8voto

voretaq7 Points 78924

Vous avez une incompréhension fondamentale du fonctionnement de SNMP. Comparaison rapide et sale : Les MIB SNMP sont comparables à des noms d'hôtes. . Les MIB associent les OID à un nom convivial -- par exemple
.1.3.6.1.2.1.1.1.0 => SNMPv2-MIB::sysDescr.0 => Host Description (sortie uname).

Afin de récupérer des informations d'un serveur SNMP (agent), ces informations doit être publié à un OID spécifique.
Pour qu'un démon SNMP puisse publier des informations, il a (généralement) besoin de deux choses :

  1. Un moyen d'obtenir cette information (script, programme, etc.)
  2. Un endroit où placer cette information (un OID)
    (Certains démons SNMP peuvent également avoir besoin d'un fichier MIB correspondant à l'OID).

Pour pouvoir récupérer les informations, vous devez connaître l'OID - il peut s'agir d'un OID numérique ou d'un nom "amical" tiré d'un fichier MIB sur votre ordinateur. SNMP Client .

Les "navigateurs" SNMP ont généralement besoin d'un fichier MIB, car sans celui-ci, tout ce qu'ils peuvent vous présenter est une liste de chiffres sans signification.

La réponse à votre question est donc "Vous n'avez pas". BESOIN Les fichiers MIB ne sont utiles que pour les humains qui ont besoin d'interagir avec SNMP".


Si l'on prend votre exemple (le signalement d'une longueur de file d'attente), il semble, d'après le tutoriel que vous avez consulté, que vous utilisiez net-snmp (UCD-SNMP).
net-snmp comprend des fonctions intégrées pour ce genre de choses -- lisez la page de manuel et l'exemple de fichier de configuration (portez une attention particulière à l'option exec directive pour l'exécution de scripts externes : typiquement, vous exécuteriez un scripts qui imprime la longueur de la file d'attente, et interrogerait cet OID dans votre logiciel de surveillance/client SNMP).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X