2012-03-27 10 views
5

Podążałem za instructions on the net-snmp website, aby dodać moją własną obsługę MIB do głównego agenta.dodaj nowego agenta wzorcowego mib

Oto co zrobiłem:

  1. tworzę .c wsparcia i .h plik net-snmp/agent/mibgroup/folderu.
  2. Skopiowałem plik MIB do katalogu/usr/local/share/snmp/mibs /.
  3. wpadłem "./configure --with-MIB-modules = "myMib""
  4. wpadłem "make" i "make install"
  5. zacząłem snmpd z „snmpd -f -Le -d - c snmpd.con & "
  6. widzę mojej struktury MIB uruchamiając polecenie snmpdtranslte. Jednak gdy próbuję użyć snmpget -v2c -c public "MY-MIB-FILE :: myVariable", otrzymuję "* = Brak takiego obiektu na tym agencie w tym OID".

Zrobiłem dokładnie to, co mówi, poradnik i mogę uruchomić snmpget i snmpset na przykład NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject.

Proszę, pomóż mi zrozumieć, czego tu brakowało.

+0

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

+0

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

+0

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

Odpowiedz

2

Komunikat No Such Object available on this agent at this OID pojawia się, gdy agent nie obsługuje w ogóle żądanego obiektu MIB lub gdy zmienna indeksu lub instancji nie została wyspecyfikowana.

z samouczka ty związane, nie dodasz odpowiednią konfigurację dla strun społeczności publicznie?

Np

Uruchamiając snmpconf jako szczegółowym here.

Zobacz także zmian konfiguracyjnych wymienionych w sekcji Początkujący i debugowanie Tips here.

też nie wydają się mieć indeks lub wystąpienie określonego dla zmiennej powinna być jak

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

Możesz również spróbować jawnie określić hosta i port, na którym działa twój główny agent, na wypadek gdyby nie był to numer snmpd.conf.

+0

Appleman, myślę, że dodam zmiany konfiguracji w pliku snmpd.conf. Mam ".0" na końcu, gdy używam "snmpget" i "snmpset". Wypróbuję Twoją sugestię, wyraźnie określając host i porty. – user195678

+0

Dołączam mój MIB w netSnmpExamples. Używam netSnmpExamples.5 jako mój OIB MIB. – user195678

6

„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.

+0

Andrew, Wydaje się, że moje init_x() nie jest skompilowany do snmpd. Ale użyłem ./configure --with-mib-modules = "myMib". Czy wiesz, jak upewnić się, że mój init_x() jest skompilowany do snmpd? – user195678

+0

Załączam moje MIB w netSnmpExamples. Używam netSnmpExamples.5 jako mojego OID. Nie wiem, czy to jest problem. – user195678

0

ldd warto sprawdzić, w moim przypadku snmpd dynamicznie połączony ze standardowym Ubuntu libnetsnmpmibs.so i nie miałem zwyczaj MIB wsparcie choć również po tej samej samouczek.

Naprawiono łączenie dynamiczne i wszystko działało!

1

Spróbuj uruchomić agenta z katalogu kompilacji. net-snmp-x.x.x/agent.

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

Zatrzymaj wszystkich innych agentów SNMP.

W moim przypadku, gdy biegnę

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

tego polecenia uruchomić zainstalowanego demona SNMP.

0

snmpd.con

view systemonly included .1.3.6.1.4.1.8072.2.4.1.1.1