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 ?