¿Por qué los agentes SNMP necesitan archivos MIB?

¿Por qué los agentes SNMP necesitan archivos MIB?

Después de leer sobre SNMP y algunas de las preguntas que me ayudan aquí, creo que entiendo la función del agente como un servicio SNMP para el dispositivo (al igual que SQL, es una API para el almacenamiento).

Cuando ejecuta una consulta SQL, el motor SQL hace todo el trabajo y devuelve el resultado. No necesita saber cómo y dónde se realiza el almacenamiento.

Pero los MIB no son almacenamiento real, entonces, ¿cuál es el papel de mi agente?
si el agente solo registra el MIB como sigo en estotutorial, por lo que no se usa como controlador en absoluto y significa que hay un almacenamiento pyhiscal que puede configurar y acceder allí sin omitir el controlador. en el tutorial todo lo haces esto:

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

no es necesario que el controlador procese las llamadas.

Digamos que quiero monitorear la cola de solicitudes pendientes de mi aplicación, por lo que quiero un agente que active todas las solicitudes SNMP para application_pending_request y devuelva la profundidad de la cola. ¿Por qué necesito tener una MIB real cuando todo lo que necesito es sondear la cola de mi aplicación para obtener resultados?

Respuesta1

Tiene un malentendido fundamental sobre cómo funciona SNMP. Comparación rápida y sucia:Las MIB SNMP son nombres de host similares. Las MIB asignan OID a un nombre descriptivo, por ejemplo
.1.3.6.1.2.1.1.1.0=> SNMPv2-MIB::sysDescr.0=> Host Description(salida sin nombre).

Para recuperar información de un servidor SNMP (agente), esa informacióndebepublicarse en un OID específico.
Para que un demonio SNMP publique información necesita (normalmente) dos cosas:

  1. Una forma de obtener esa información (guión, programa, etc.)
  2. Un lugar para colocar esa información (un OID)
    (Algunos demonios SNMP también pueden requerir un archivo MIB que asigne el OID)

Para poder recuperar la información, debe conocer el OID; puede ser un OID numérico o un nombre "descriptivo" de un archivo MIB en suSNMP Cliente.

Los "navegadores" SNMP normalmente requieren un archivo MIB porque sin uno lo único que pueden presentarle es una lista de números sin sentido.

Entonces la respuesta a tu pregunta es "NoNECESIDADLos archivos MIB son útiles para los humanos que necesitan interactuar con SNMP".


Tomando su ejemplo (informar la longitud de una cola), parece del tutorial que le gustó que estuviera usando net-snmp(UCD-SNMP).
net-snmpincluye funciones integradas para este tipo de cosas: lea la página de manual y el archivo de configuración de ejemplo (preste especial atención a la execdirectiva para ejecutar scripts externos: normalmente ejecutará un script que imprima la longitud de la cola y consultará ese OID en su software de monitoreo/Cliente SNMP)

información relacionada