JoeSnmp - existierende Klasse- die diese Aufruft // SnmpWalk

SNMP, Telnet, Syslog, Statustools, RTools, ...

Moderatoren: TommyTC, alf, Petrus, andreastc, DSL-Hexe, nobody

JoeSnmp - existierende Klasse- die diese Aufruft // SnmpWalk

Beitragvon Ruth » Mo 21.11.2005 - 15:57

Hallo forum
2 Fragen:
1. weiss jemand, ob es für den Aufruf des LGPL-Snmp-Package JoeSnmp Klassen existieren, die den Aufruf dieses Packages starten können? (GetSnmp...)
2. snmpWalk
läuft der snmpwalk automatisch weiter, bis nichts mehr kommt oder muss man ein Ende angeben?
Über Tips und Tricks wär ich sehr dankbar
Grünschnabel Ruth
Ruth
User
 
Beiträge: 14
Registriert: Fr 09.09.2005 - 12:40

Re: JoeSnmp - existierende Klasse- die diese Aufruft // Snmp

Beitragvon mikko » Mo 21.11.2005 - 21:03

Ruth hat geschrieben:1. weiss jemand, ob es für den Aufruf des LGPL-Snmp-Package JoeSnmp Klassen existieren, die den Aufruf dieses Packages starten können? (GetSnmp...)


nicht das ich wüßte. die klassen mußt du dir selbst schreiben. ich hatte hier: http://forum.2-com.de/draytek-vigor-thema4078.html doch mal den "SimpleClient" gepostet. das ist doch ein snmpget. das mußt du dir natürlich an deine gegebenheiten anpassen. sollte imho aber nicht das problem sein, oder?
es gibt aber auch beispiele auf sourceforge.

Ruth hat geschrieben:2. snmpWalk
läuft der snmpwalk automatisch weiter, bis nichts mehr kommt oder muss man ein Ende angeben?
Über Tips und Tricks wär ich sehr dankbar
Grünschnabel Ruth


das ende eines snmp-walks fängst du mit:
Code: Alles auswählen
vb.getValue().typeId() == SnmpEndOfMibView.ASNTYPE

im snmp-handler ab. mußt du natürlich in eine if-abfrage einbauen.


hier noch die antworten auf deine pn, da die hier so gut reinpassen:
Ruth hat geschrieben:1. GetSnmp
weisst Du, ob für den Aufruf des LGPL-Snmp-Package JoeSnmp Klassen existieren, die den Aufruf dieses Packages starten können? (GetSnmp...), wahrscheinlich so ähnlich wie der simpleClient, den du mir mal geschickt hast, oder?

siehe ganz oben. den "SimpleClient" ein wenig umgebaut, schon hast du dein getsnmp. die "main"-methode nennst du meinetwegen "getsnmp". dann kannst du die klasse aus jeder x-beliebigen klasse so aufrufen:

Code: Alles auswählen
SimpleClient snmp = new SimpleClient();
snmp.getsnmp();


die parameterübergabe und ein- und ausgabe mußt du natürlich nach deinen wünschen modifizieren.

Ruth hat geschrieben:2. Bulk
Hast Du zufällig Beispielcode, wie es ablaufen könnte, wenn ich mit einem Bulk SnmpWalks abschicken möchte


also einen bulk gibt es nur bei get. das hat folgende bewandnis: damit man netzwerktraffic spart und den agent entlastet braucht man nicht mehrere get's hintereinander senden, sondern verpackt die gewünschten oid's in einen bulk. man sendet für verschiedene anfragen also nur ein paket. ein walk läuft anders ab. da "durchwandert" man den kompletten baum von oben bis unten, bis das ende erreicht ist. einen bulk habe ich so gelöst:

Code: Alles auswählen
SnmpVarBind[] vblist;
vblist = new SnmpVarBind [oid.length];
for (int i = 0; i <= oid.length-1; i++)
{
vblist[i] = new SnmpVarBind(oid[i]);
}
           
SnmpPduRequest pdu = new SnmpPduRequest(SnmpPduPacket.GET, vblist);
pdu.setRequestId(SnmpPduPacket.nextSequence());


dabei ist oid[] ein array mit den gewünschten oid's, dessen values man erhalten möchte. man muß aber aufpassen, da der agent nicht beliebig große bulks beantwortet. dies hängt aber separat von jeden agent selbst ab. bei meinen vigor 2500 habe ich mal tests gemacht, wobei er bulks bis nahe mtu-größe beantwortet hat.

Ruth hat geschrieben:3. snmpWalk
läuft der snmpwalk automatisch weiter, bis nichts mehr kommt oder muss man ein Ende angeben?

siehe oben.
mikko
Ambitionierter User
 
Beiträge: 69
Registriert: Di 05.10.2004 - 19:38

Vielen Dank!!!

Beitragvon Ruth » Di 22.11.2005 - 09:01

Hi Mikko,
vielen Dank für die tollen Antworten! :P ! Echt Klasse.
Noch ne fragen :-) ich muss zwischen hp und dell server unterscheiden. zum teil brauch ich ja da ver. mibs (herstellerspezifisch). dafür hab ich eine ini-datei generiert und möchte nach abfrage des jeweiligen herstellers dann die verschiedenen werte mit hilfe der oid abfragen. ist dass später über die varbindlist ohne weiteres zu verwirklichen?
ich soll nämlich im code recht flexibel bleiben, bei evtl. neuen Anforderungen, kann somit der user nur in der ini-datei die neuerungen angleichen..

ich hab übrigends nach beispielcode auf source forge gesucht und irgendwie nicht das snmpwalkexample gefunden...
Ruth
User
 
Beiträge: 14
Registriert: Fr 09.09.2005 - 12:40

Re: Vielen Dank!!!

Beitragvon mikko » Di 22.11.2005 - 09:45

Ruth hat geschrieben:Hi Mikko,
vielen Dank für die tollen Antworten! :P ! Echt Klasse.
Noch ne fragen :-) ich muss zwischen hp und dell server unterscheiden. zum teil brauch ich ja da ver. mibs (herstellerspezifisch). dafür hab ich eine ini-datei generiert und möchte nach abfrage des jeweiligen herstellers dann die verschiedenen werte mit hilfe der oid abfragen. ist dass später über die varbindlist ohne weiteres zu verwirklichen?
ich soll nämlich im code recht flexibel bleiben, bei evtl. neuen Anforderungen, kann somit der user nur in der ini-datei die neuerungen angleichen..

ja, natürlich. ich würde das so machen: einen parameter im ini-file für die anzahl der hersteller. danach kann man sich richten und nacheinander jeden server mit den zugehörigen hersteller-oid's abfragen. die entsprechenden werte holt man sich aus dem ini-file und fügt sie in die varbindlist (paketgröße beachten). die abfrage ansich muß jedoch für jeden server separat geschehen, da ja die ip's verschieden sind. ich würde das dann noch alles in threads packen, da man dadurch ungemein zeit sparen kann (falls mehrere agents nicht antworten).
ich weiß nicht, wie du die ini-files generierst. es gibt zwar pakete für java, welche ini-files unterstützen, aber von haus aus schafft das java nicht. da gibt es nur property-files. die sind ähnlich wie ini-files - jedoch unstrukturiert. dafür lassen die sich wunderbar handeln. um verschiedene strukturen zu verwirklichen, könnte man verschiedene property-files generieren (für jeden hersteller ein file).

Ruth hat geschrieben:ich hab übrigends nach beispielcode auf source forge gesucht und irgendwie nicht das snmpwalkexample gefunden...

ich hab jetzt momentan nicht die url zur hand. die beispiele liegen auf sourceforge auf dem joesnmp-cvs-server. dort ist auch ein walk-beispiel. wenn du es nicht findest, kannst du dich nocheinmal melden, da schau ich heute abend noch mal nach der genauen url.
mikko
Ambitionierter User
 
Beiträge: 69
Registriert: Di 05.10.2004 - 19:38


Zurück zu Tools und Fernwartung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron