2012-03-27 12 views
5

Estaba siguiendo instructions on the net-snmp website para agregar mi propio soporte MIB al agente maestro.agregar nuevo agente maestro mib

Esto es lo que hice:

  1. he creado mi .c apoyo y archivo .h en net-snmp// carpeta de agente/mibgroup.
  2. He copiado mi archivo MIB en la carpeta/usr/local/share/snmp/mibs /.
  3. me corrieron "./configure --with-mib-módulos = "myMib""
  4. me corrieron "Marca" 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 recibiendo "* = No hay tal objeto disponible en este agente en este OID".

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

Por favor, ayúdame a entender lo que me perdí aquí.

+0

ha intentado ya añadir algunos rastros de su agente? Aquí es donde comienzo. Coloque 'fprintf's' en cada paso de la carga y los controladores de su agente para ver dónde deja de responder. Sin él, tendríamos posibilidades también ... – j4x

+0

Sí, probé el rastro. Todo se ve bien y no hay errores. Veo que el comando se envía y la respuesta "NO dicho objeto" está volviendo, que es el código de error 8. – user195678

+0

Quizás esto sea relevante, adjunto mi archivo MIB en netSnmpExamples porque no tengo un OID de la compañía. Entonces en mi archivo MIB tengo esta sección: xxxsnmp MODULE-IDENTITY ÚLTIMA ACTUALIZACIÓN "201112220000Z" ORGANIZACIÓN "www.xxx.com" CONTACTO-INFORMACIÓN "email: xxx @ xyz.com" DESCRIPCIÓN 'Probando mi MIB' REVISIÓN '201112200000Z' DESCRIPCIÓN 'primer borrador' :: = {5} netSnmpExamples – user195678

Respuesta

2

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

Desde el tutorial al que se ha vinculado, ¿ha agregado la configuración relevante para la cadena pública de la comunidad ?

por ejemplo

Mediante la ejecución de snmpconf como here detallada.

Consulte también los cambios de configuración mencionados en la sección Consejos para principiantes y depuración here.

Es posible que no parecen tener el índice o la instancia especificada por la variable que debe ser como

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

Es posible que también desee intentar especificar explícitamente el host y el puerto en el que se ejecuta su agente principal en caso de que no esté en snmpd.conf.

+0

Appleman, creo que agrego los cambios de configuración en el archivo snmpd.conf. Tengo el ".0" al final cuando uso "snmpget" y "snmpset". Voy a intentar su sugerencia al especificar explícitamente el host y los puertos. – user195678

+0

Estoy adjuntando mi MIB en netSnmpExamples. Estoy usando netSnmpExamples.5 como mi MIB OID. – user195678

6

El "Ningún objeto 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 deje confundir por 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 enumerados 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, el sufijo) de .0.Pruebe a 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 todos los MIB deja bajo ese OID, que (en su caso) incluirá la .0 nodo.

Si eso no funciona, vale la pena asegurarse de que su código se está compilando 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-módulos = ""): 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 
--------------------------------------------------------- 

En el primer caso, puede ejecutar nm sobre el ejecutableagent/.libs/libnetsnmpmibs.so archivo snmpd y asegúrese de que la función que init_X() corresponde a su MIB presente. También vale la pena asegurarse de que la función init_nstAgentModuleObject() esté presente. Si está ejecutando make install antes de realizar pruebas, 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 utilizar 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 comando snmpd.

+0

Andrew, Parece que mi init_x() no está compilado en snmpd. Pero utilicé ./configure --with-mib-modules = "myMib". ¿Sabes cómo asegurarte de que mi init_x() se compila en snmpd? – user195678

+0

Adjunto mi MIB en netSnmpExamples. Uso netSnmpExamples.5 como mi OID. No sé si este es el problema. – user195678

0

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

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

1

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

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

Y detenga todos los demás agentes SNMP.

En mi caso si me quedo

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

este comando Iniciar el demonio SNMP preinstalada.

0

snmpd.conf

view systemonly included .1.3.6.1.4.1.8072.2.4.1.1.1 
Cuestiones relacionadas