tools snmpwalk portable open online net network-programming net-snmp

network-programming - portable - snmpwalk online



agregar nuevo agente maestro mib (5)

Estaba siguiendo las instrucciones en el sitio web net-snmp para agregar mi propio soporte MIB al agente maestro.

Aquí esta lo que hice:

  1. Creé mi archivo .c y .h de soporte en la carpeta net-snmp / agent / mibgroup /.
  2. Copié mi archivo MIB a la carpeta / usr / local / share / snmp / mibs /.
  3. Ejecuté "./configure --with-mib-modules =" myMib ""
  4. Ejecuté "make" y "make install"
  5. Empecé snmpd con "snmpd -f -Le -d -c snmpd.conf &"
  6. Puedo ver mi estructura de MIB ejecutando el comando snmpdtranslte. Sin embargo, cuando trato de usar snmpget -v2c -c public "MY-MIB-FILE :: myVariable", sigo obteniendo " * = No hay tal objeto disponible en este agente en este OID".

Hice exactamente lo que dice el tutorial, y puedo ejecutar snmpget y snmpset en el snmpset NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject .

Por favor, ayúdame a entender lo que extrañé aquí.


El mensaje No Such Object available on this agent at this OID produce cuando el agente no admite el objeto MIB solicitado o cuando el índice o la variable de instancia no están especificados.

De la guía de aprendizaje a la que se vinculó, ¿ha agregado la configuración relevante para la cadena de comunidad pública?

P.ej

Ejecutando snmpconf como se detalla aquí .

Consulte también los cambios de configuración mencionados en la sección Sugerencias para principiantes y depuración aquí .

Tampoco parece tener el índice o instancia especificada para su variable, debería ser como

snmpget -v2c -c public MY-MIB-FILE::myVariable.0 .

También puede intentar especificar explícitamente el host y el puerto en el que se ejecuta su agente maestro en caso de que no esté en snmpd.conf .


El "Ningún objeto tal disponible en este agente en este OID" indica que, en lo que se refiere a netsnmpd, no hay un OID correspondiente en su árbol.

No se confunda con el éxito de snmptranslate . Snmptranslate solo opera en los archivos MIB y no requiere acceso a ningún servidor snmp. Entonces, el hecho de que snmptranslate muestre correctamente los datos de su MIB es solo una indicación de que su mib se copió correctamente en $MIBDIRS o en los directorios listados en su archivo .snmp/snmp.conf (etc.).

Suponiendo que está siguiendo el tutorial, el mib que ha implementado proporciona una sola variable escalar. Las variables escalares reciben un índice (es decir, sufijo) de .0 . Intente ejecutar cualquiera de los siguientes comandos:

snmpget -v2c -c public MY-MIB-FILE::myVariable.0

O:

snmpwalk -v2c -c public MY-MIB-FILE::myVariable

Este último le dará una lista de todas las hojas MIB bajo ese OID, que (en su caso) incluirá el nodo .0 .

Si eso no funciona, vale la pena asegurarse de que su código esté siendo compilado y se esté ejecutando correctamente. Para empezar, verifique los detalles al final del paso ./configure para asegurarse de que el resumen incluya su mib. p.ej. (resultado de ./configure --with-mib-modules = "nstAgentModuleObject"):

--------------------------------------------------------- Net-SNMP configuration summary: --------------------------------------------------------- SNMP Versions Supported: 1 2c 3 Net-SNMP Version: 5.4.1 Building for: linux snip Agent MIB code: nstAgentModuleObject default_modules => snmpv3mibs mibII ucd_snmp notification notification-log-mib target agent_mibs agentx disman/event disman/schedule utilities host snip ---------------------------------------------------------

Para el primero, puede ejecutar nm sobre el archivo ejecutable snmpd agent/.libs/libnetsnmpmibs.so y asegurarse de que la función init_X() que corresponde a su MIB esté presente. También vale la pena asegurarse de que la función init_nstAgentModuleObject() esté presente. Si está ejecutando make install antes de la prueba, vale la pena asegurarse (utilizando ldd ) de que la biblioteca libnetsnmpmibs.so que está utilizando es la que acaba de crear, y que no tiene un problema de ruta.

Puede usar el sistema integrado de depuración de mensajes agregando DEBUGMSGTL() llamadas dentro de su función init_X() . Para ver los mensajes de depuración agregue una opción -DALL en su línea de comandos snmpd.


ldd valía la pena echarle un vistazo, en mi caso snmpd se vinculó dinámicamente con Ubuntu libnetsnmpmibs.so estándar y no obtuve soporte MIB personalizado aunque también seguí el mismo tutorial.

Reparado cosas de enlace dinámico y todo funcionó!


Intenta iniciar tu agente desde el directorio de compilación. net-snmp-xxx / agent.

./snmpd -f -L -d -c /usr/local/etc/snmpd.conf

Y detenga todos los demás agentes SNMP.

En mi caso si corro

snmpd -f -Le -d -c snmpd.conf &

este comando inicia el daemon snmp preinstalado.


snmpd.conf

view systemonly included .1.3.6.1.4.1.8072.2.4.1.1.1