2012-03-27 9 views
5

Stavo seguendo instructions on the net-snmp website per aggiungere il mio supporto MIB all'agente principale.aggiungi nuovo master mib

Ecco quello che ho fatto:

  1. ho creato il mio sostegno e .c file h in net-snmp/agente// cartella mibgroup.
  2. Ho copiato il mio file MIB in/usr/local/share/snmp/mibs/folder.
  3. ho corse "./configure --with-mib-moduli = "myMib""
  4. ho corse "make" e "make install"
  5. ho iniziato snmpd con "snmpd -f -Le -d - c snmpd.conf & "
  6. Posso vedere la mia struttura MIB eseguendo il comando snmpdtranslte. Tuttavia, quando provo a usare snmpget -v2c -c pubblico "MY-MIB-FILE :: myVariable", continuo a ricevere "* = Nessun oggetto disponibile su questo agente in questo OID".

ho fatto esattamente quello che dice il tutorial, e posso correre snmpget e snmpset sull'esempio NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.

Per favore aiutami a capire cosa mi sono perso qui.

+0

Avete già tentato di aggiungere alcune tracce nel vostro agente? Questo è da dove comincio. Metti 'fprintf's' in ogni fase del caricamento e dei gestori degli agenti per vedere dove si ferma a rispondere. Senza di esso, avremmo anche possibilità ... – j4x

+0

Sì, ho provato la traccia. Tutto sembra a posto e non ci sono errori. Posso vedere che il comando viene inviato e la risposta "NO such object" sta tornando, che è il codice di errore 8. – user195678

+0

Forse questo è rilevante, sto allegando il mio file MIB sotto netSnmpExamples perché non ho un OID aziendale. Quindi nel mio file MIB ho questa sezione: xxxsnmp MODULO-IDENTITÀ ULTIMO AGGIORNAMENTO "201112220000Z" ORGANIZZAZIONE "www.xxx.com" CONTACT-INFO "email: xxx @ xyz.com" DESCRIZIONE 'Verifica il mio MIB' REVISIONE '201112200000Z' DESCRIZIONE 'prima bozza' :: = {} netSnmpExamples 5 – user195678

risposta

2

Il messaggio No Such Object available on this agent at this OID si verifica quando l'agente non supporta l'oggetto MIB richiesto o quando l'indice o la variabile di istanza non è specfied.

Dal tutorial a cui è collegato, è stata aggiunta la configurazione pertinente per la stringa di comunità pubblica?

es

Eseguendo snmpconf più dettagliato here.

Vedere anche le modifiche alla configurazione menzionate nella sezione Suggerimenti per principianti e debug here.

Inoltre non sembrano avere l'indice o istanza specificata per la variabile dovrebbe essere come

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

Si consiglia inoltre di provare esplicitamente specificando l'host e la porta su cui è in esecuzione l'agente principale nel caso in cui non sia in snmpd.conf.

+0

Appleman, credo di aggiungere le modifiche alla configurazione nel file snmpd.conf. Ho il ".0" alla fine quando uso "snmpget" e "snmpset". Proverò il tuo suggerimento specificando esplicitamente host e porte. – user195678

+0

Allego il mio MIB sotto netSnmpExamples. Sto usando netSnmpExamples.5 come mio MIB OID. – user195678

6

Il "Nessun oggetto disponibile su questo agente in questa OID" indica che, per quanto riguarda netsnmpd, non c'è OID corrispondente nella sua struttura.

Non essere confuso dal successo di snmptranslate. Snmptranslate opera solo sui file MIB e non richiede affatto l'accesso a un server snmp. Quindi il fatto che snmptranslate mostri correttamente i dettagli del MIB è solo un'indicazione che il tuo mib è stato copiato correttamente su $MIBDIRS o sulle directory elencate nel tuo file .snmp/snmp.conf (ecc.).

Supponendo di seguire il tutorial, il mib implementato fornisce una singola variabile scalare. Le variabili scalari hanno un indice (es. Suffisso) di .0.Provare a eseguire uno dei seguenti comandi:


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

Oppure:


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

Quest'ultimo vi darà una lista di tutti i MIB lascia sotto quella OID, che (nel tuo caso) comprenderà la .0 nodo.

Se ciò non riesce, vale la pena verificare che il codice sia stato compilato e che sia in esecuzione correttamente. Per iniziare, controllare i dettagli alla fine del passaggio ./configure per assicurarsi che il riepilogo includa il mib. per esempio. (Derivare da ./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 
--------------------------------------------------------- 

per i primi, è possibile eseguire nm sopra l'eseguibileagent/.libs/libnetsnmpmibs.so file di snmpd e assicurarsi che la funzione init_X() che corrisponde al tuo MIB è presente. Vale anche la pena assicurarsi che sia presente la funzione init_nstAgentModuleObject(). Se si sta eseguendo make install prima di eseguire il test, vale la pena (utilizzando ldd) che la libreria libnetsnmpmibs.so in uso sia quella appena creata e che non si abbia un problema di percorso.

È possibile utilizzare il sistema di messaggistica di debug integrato aggiungendo le chiamate DEBUGMSGTL() all'interno della propria funzione init_X(). Per vedere i messaggi di debug aggiungere un'opzione -DALL sulla riga di comando snmpd.

+0

Andrew, Sembra che il mio init_x() non sia compilato in snmpd. Ma ho usato ./configure --with-mib-modules = "myMib". Sai come assicurarmi che il mio init_x() sia compilato in snmpd? – user195678

+0

Allego il mio MIB sotto netSnmpExamples. Sto usando netSnmpExamples.5 come mio OID. Non so se questo è il problema. – user195678

0

ldd vale la pena verificare, nel mio caso snmpd è stato collegato dinamicamente con Ubuntu standard libnetsnmpmibs.so e non ho ricevuto il supporto MIB personalizzato anche se ho seguito lo stesso tutorial.

Riparazioni dinamiche di collegamento e tutto ha funzionato!

1

Provare ad avviare il proprio agente dalla cartella di costruzione. -Snmp-x.x.x net/agente.

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

E interrompere tutti gli altri agenti SNMP.

Nel mio caso, se corro

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

questo comando di avvio preinstallata daemon SNMP.

0

snmpd.conf

view systemonly included .1.3.6.1.4.1.8072.2.4.1.1.1 
Problemi correlati