„nie taki obiekt dostępny na tego środka w tym OID” wskazuje, że w miarę netsnmpd to dotyczy, nie ma odpowiedniego OID w drzewie.
Nie pomylić sukcesem snmptranslate
. Snmptranslate działa tylko na plikach MIB i nie wymaga w ogóle dostępu do serwera snmp. Zatem fakt, że snmptranslate poprawnie pokazuje twoje szczegóły MIB, jest tylko wskazówką, że twój mib jest poprawnie skopiowany do $MIBDIRS
lub katalogów wymienionych w twoim pliku .snmp/snmp.conf
(itp.).
Zakładając, że jesteś z samouczka, MIB, które zostały wdrożone zapewnia pojedynczą zmienną skalarną. Zmienne skalarne mają indeks (tj. Sufiks) .0
.Spróbuj uruchomić jeden z poniższych poleceń:
snmpget -v2c -c public MY-MIB-FILE::myVariable.0
czyli
snmpwalk -v2c -c public MY-MIB-FILE::myVariable
Ten ostatni daje listę wszystkich MIB pozostawia pod tym OID, który (w danym przypadku) będą obejmować .0
węzeł.
Jeśli to zawiedzie, warto upewnić się, że kod jest kompilowany i działa poprawnie. Na początek sprawdź szczegóły na końcu kroku ./configure
, aby upewnić się, że podsumowanie zawiera twój mib. na przykład. (Wynik z ./configure --with-MIB-modułów = "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
---------------------------------------------------------
dla byłej można uruchomić nm
nad wykonywalnegoagent/.libs/libnetsnmpmibs.so
pliku
snmpd i upewnij się, że funkcja
init_X()
że odpowiada twojemu MIB jest obecny. Warto również upewnić się, że funkcja
init_nstAgentModuleObject()
jest obecna. Jeśli przed testowaniem używasz
make install
, warto upewnić się (używając
ldd
), że używana biblioteka libnetsnmpmibs.so jest właśnie tą, którą właśnie zbudowałeś i że nie masz problemu ze ścieżką.
Możesz użyć wbudowanego systemu debugowania, dodając DEBUGMSGTL()
połączenia w ramach funkcji init_X()
. Aby zobaczyć komunikaty debugowania, dodaj opcję -DALL
w wierszu poleceń snmpd.
byłaś już próbował dodać jakieś ślady w swoim agentem? Od tego zaczynam. Wpisz 'fprintf's' w każdym kroku ładowania i obsługi agentów, aby zobaczyć, gdzie przestaje odpowiadać. Bez tego mielibyśmy również możliwość. – j4x
Tak, spróbowałem śladu. Wszystko wygląda dobrze i nie ma błędów. Widzę, że polecenie jest wysyłane, a odpowiedź "NIE taki obiekt" wraca, co jest kodem błędu 8. – user195678
Może to jest istotne, Załączam mój plik MIB pod adresem netSnmpExamples, ponieważ nie mam identyfikatora OID firmy. Więc w moim pliku MIB mam tę sekcję: xxxsnmp MODUŁ-TOŻSAMOŚĆ OSTATNIO ZAKTUALIZOWANA "201112220000Z" ORGANIZACJA "www.xxx.com" KONTAKT-INFO "email: xxx @ xyz.com” OPIS «Testowanie mój MIB» ZMIAN«201112200000Z» OPIS «Pierwszy projekt» :: = {5} – user195678