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.
fonte
2012-04-03 03:32:28
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
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
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