[Java] SNMP problemen

Pagina: 1
Acties:

  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10-2025
Ik ben bezig om een netwerk monitorings systeempje te maken met behulp van SNMP alleen ik heb hier een aantal vragen over.

Ten eerste, had ik zelf ook nog een paar onduidelijkheden m.b.t. SNMP en Java. Ik heb echt google al 2 dagen afgezocht en heb verschillende samples gevonden (ook al waren ze zeer schaars). Ik word er zelf een beetje wanhopig van want het zou zo simpel moeten zijn.

Affijn, dat terzijde, SNMP werkt dus met een zogenaamde Agent en NMS die data kan opvragen van de agent. Nu vroeg ik mij af hoe dat in Java in zn werk gaat. Er zou ook een MIB database moeten zijn waarin alle statistieken staan en waar ook de traps in afgehandeld worden. In geen van de samples werd een MIB naar mijn weten gebruikt. Ik snap het protocol maar ik snap niet hoe het toegepast moet worden. Nergens staat duidelijk met goede voorbeelden wat hoe het precies werkt.

Het is mij ook niet echt duidelijk hoe die MIB gegevens aangeroepen dienen te worden. Ik heb gezocht op MIB browsers om zo achter codes van bepaalde componenten te komen maar ook dit brengt me meer vraagtekens dan oplossingen.

Ik hoop dat er iemand op tweakers van Java en SNMP verstand heeft want ook de search hier levert weinig op. Alvast bedankt!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-


  • djengizz
  • Registratie: Februari 2004
  • Niet online
Meestal wordt JMX gebruikt om te communiceren met SNMP agents vanuit Java. Ook betaan er verschillende JMX - SNMP adapters waarvan sommige ook MIB gebruiken (en MBean notificaties omzetten naar SNMP traps). Zie bijvoorbeeld:

http://www.adventnet.com/products/snmpadaptor/

Op de JMX site van Sun vind je er waarschijnlijk wel meer.

  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10-2025
hardstikke bedankt, ik ga dr naar kijken.

  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10-2025
Ik heb ernaar gekeken en ze hebben me onwijs geholpen, met name die samples was precies wat ik nodig had. Alleen heeft het mij voor 50% geholpen.

Iets wat mij nog totaal onduidelijk is hoe java communiceert met het systeem en dan (waarschijnlijk) met de MIB's. Wat ik ervan begrepen heb zijn de MIB's bestandjes waarin je precies in kan zetten welke code wat aanroept (bijv. CPU load of network activity). Hoe gebruikt Java (met name in dit voorbeeld, als MIB's gebruikt worden) de MIB's om de statistieken op te vragen?

Nu weet ik niet of het ook nog anders kan. MIB's lijken mij het meest gebruikersvriendelijk aangezien ik een applicatie (een agent en een NMS) die controleert of een server up of down is, met de mogelijkheid op uitbreidingen van de op te vragen data.

Dus, als iemand mij uit kan leggen hoe MIB's werken in een Java environment en hoe je die MIB's het beste kan maken (heb er een paar maar in een txt zijn ze bijna onleesbaar en een compiler/browser die ik had gevonden hielpen mij ook niet verder) zou ik heel erg geholpen zijn.

Alvast bedankt.

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

die MIB's zijn tekst bestandjes met een bepaalde structuur.
eens je de syntax daarvan snapt (kun je wel vinden) zal je ook het hele zootje snappen...

we hebben dit vorig jaar in de lessen gehad, maar het zit me alweer ver... :/
het komt erop neer dat je in de MIB's de boomstructuur verder gaat uitbouwen.
let erop dat eenmaal je een tak benoemt hebt, je die tak kan gebruiken (dit kan wel eens verwarrend overkomen weet ik nog)
bvb iso.org.dod.public.internet (of zoiets) kan soms gewoon als "internet" voorkomen eens het bovenaan ergens zo gedefinieerd is. verder is het dus gewoon verder uitdiepen van die boomstructuur.

bestandjes worden dan gecompiled en gebruikt door de software.

ASSUME makes an ASS out of U and ME


  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10-2025
HIGHGuY schreef op maandag 12 september 2005 @ 21:27:
die MIB's zijn tekst bestandjes met een bepaalde structuur.
eens je de syntax daarvan snapt (kun je wel vinden) zal je ook het hele zootje snappen...

we hebben dit vorig jaar in de lessen gehad, maar het zit me alweer ver... :/
het komt erop neer dat je in de MIB's de boomstructuur verder gaat uitbouwen.
let erop dat eenmaal je een tak benoemt hebt, je die tak kan gebruiken (dit kan wel eens verwarrend overkomen weet ik nog)
bvb iso.org.dod.public.internet (of zoiets) kan soms gewoon als "internet" voorkomen eens het bovenaan ergens zo gedefinieerd is. verder is het dus gewoon verder uitdiepen van die boomstructuur.

bestandjes worden dan gecompiled en gebruikt door de software.
Ja klopt, zover was ik deels al. Er zijn een aantal posities predefined (de eerst 6 ofzo) en daarna kan je zelf benoemen en een functie eraan koppelen. Jouw voorbeeld klopt ook, je krijgt dan 1.3.6.3.nogwat.je eigen nummerreeks.

Wat ik mij nou dus afvroeg is hoe dit in zn werk gaat met Java. Je zegt dat de bestandjes gecompileerd worden door de software, maar welke software? Moet de java agent dat doen? En als dat zo is, hoe?

De afgelopen 5 dagen heb ik mij heel erg verdiept in SNMP, ik snap zo goed als alles. De theorie dus. Alleen heb ik nou geen idee hoe het in het echt in zn werk gaat. Ik heb in zo'n MIB gekeken en er staat onderaan zo'n entry ook een [id=X] waarbij x dus een getal is. Waarschijnlijk als je een bepaalde nummer reeks invult met dat ID nummer erbij krijg je die functie terug maar er staat verder niet bij hoe de functie werkt. Er staat dan alleen bijv een naam bij, wat voor type het terug geeft (int, string etc.) die ID en nog een paar dingen.

Wel bedankt voor je reactie. Ik begin een beetje hopeloos te worden. Het lijkt net of de (schaarse) voorbeelden die ik vind niet met MIB's werken (althans niet op een logische duidelijk manier dat ik snap hoe het hele zaakje in Java werkt) en Java helemaal niet wordt gebruikt om SNMP toe te passen. Wat ik erg vreemd vind.

Ik hoop dat er iemand is die een allesverhelderende antwoord kan geven anders denk ik er serieus over om het dan maar met een andere taal te proberen als daar wel genoeg voorbeelden van zijn. Wat ik persoonlijk een "nederlaag" vind.

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

mijn cursussen liggen op m'n studentenkamer, dus ik kan ze helaas niet openslaan...
als ik me niet vergis wordt dat compilen gedaan door de server, en heeft de client genoeg aan de textversies.
welk formaat de gecompileerde versie is weet ik niet, maar dit kan je wsch wel ergens vinden. Misschien is die wel gemakkelijker te parsen

kijk alvast hier even voor uitleg over de verschillende MIB's
http://www.ibr.cs.tu-bs.de/cgi-bin/sbrowser.cgi

Als je het protocol van SNMP snapt (de get/bulk/getnext/... opdrachten) dan kun je denk'k al weg.
dan kun je ofwel hardcoderen (heel veel nuttige dingen zijn er niet standaard in SNMP tenzij je MIB's kan downloaden voor bepaalde software/hardware in jouw machine) ofwel verder zoeken op die MIB's

als ik terug op studentenkamer ben wil'k wel eens die cursus terug openslaan voor je.

eventueel kun je eens de software van Weblogic decompilen voor zover dat toegestaan is.

ASSUME makes an ASS out of U and ME


  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10-2025
Heel graag! Ben klein beetje verder gekomen maar nu ik mijn post zo lees is het misschien onduidelijk wati k nou precies wil weten.

Ik had een auteur van een SNMP-stack een mailtje gestuurd in de hoop dat hij mij eventueel ook verder kon helpen. Wellicht dat ik nu hier en via mijn mail een antwoord krijg maar gezien het feit dat ik er zo weinig over vind is dat alleen maar beter.

Affijn, een passage uit mijn mailtje hoe het probleem in elkaar steekt
project: a SNMP-agent that sends a Trap whenever a application gives an error. The current situation I talk about, looks as following.

sub-Server \
sub-Server ----> Server(main) -> Application <-> SNMP-Agent -> SNMP NMS
sub-Server /

The application retrieves trough a special API-set the connectionstate between the Mainserver and the subservers. Whenever a connection is broken a trap should be send towards a SNMP NMS system which will be phase two in my project.

Currently I am in phase one, meaning I have to integrate the SNMP agent within the existing Java application.

My questions are the following:

*How do I define a trap in a Java SNMP Agent and can you give me an example? (I assume it has something to do with MIB-files but im totally clueless as none of the samples I found actually use a MIB file)

*What use does the PDU method have? Once again, my interpertation on this is that the PDU unit sends something to the agent and then the agent sends a trap? Which is contradictionary since a trap isn't generated by anything but the agent himself.

*OID's; apparantly when sending a trap you need to specify it as well but I use an application to check the connections. (Generally speaking the con's are placed in a map and whenever an update is in, it checks what is alive and what isnt)

*And finally, generally some help on how to approach the problem though explaining the above will help me incredibly nontheless!

Once more I sincerly hope you find time to reply to this mail. I've been searching the web for 2 weeks now, from 9 to 6 every day and im going nuts over this.
Zoals altijd, alvast bedankt!

  • killingdjef
  • Registratie: Januari 2004
  • Laatst online: 19-10-2025
Joizus! dat ziet eruit als een geschenkt uit de hemel !!!!
Ik heb ze uitgeprint en lees ze morgen onderwijl ik in de trein zit.
Ik heb een vermoeden dat het veel zal helpen, heel erg bedankt.
Pagina: 1