PDA

View Full Version : [JAVA] JMX - SNMP


tylerdurden83
02-03-2010, 22:47
Qualche anima pia ha un po di materiale/link a riguardo?
Magari un semplice tutorial su come utilizzare snmp con java? Sul sito sun ho trovato l'ira di Dio di roba in quanto a mole e complessità, non ne uscirei manco in 1 anno...
All'anima di SimpleNMP.... :mc:

tylerdurden83
08-03-2010, 12:01
uppino

banryu79
08-03-2010, 12:17
Non so neanche che "roba" sia, però ho trovato un link potenzialmente interessante, non so se l'avevi già "incontrato":
- http://blogs.sun.com/jmxetc/entry/simple_is_not_easy

khelidan1980
08-03-2010, 12:22
- http://blogs.sun.com/jmxetc/entry/simple_is_not_easy

giusto per rassicurarlo :asd:

banryu79
08-03-2010, 13:40
Zio gobbo, in effetti è un universo a se stante... Solo la pagina introduttiva in wikipedia fa impressione :asd:

@tylerdurden83:
Scusa, per curiosità, perchè ti serve "sta roba"?

tylerdurden83
08-03-2010, 15:52
Avevo letto il blog, ma grazie comunque!
Provo a spiegarti a cosa mi serve.

Ti dico cosa c'è ora:

ho un software(java), un server in ascolto su una certa porta. Ogni nuova accept sulla socket crea un thread. questo thread riceve dal client una "parola chiave", e a seconda della parola chiave fa certe azioni. Ad esempio: se riceve "CA_START" sa che deve aprire un fileinputstream su un certo log e mandarmi un parse di dati presi da quel log, se riceve "STOP" si mette in pausa, se riceve "IS_UP_AND_RUNNING" mi restituisce se è online o meno, e così via.

In pratica ho creato un semplice protocollo basato su stringhe testuali. SNMP permette di "standardizzare" la cosa.
Ad esempio:

un router ha un demone(agent) snmp in piedi sulla porta 162. c'è una mib, un'alberatura che permette di localizzare risorse. il router ha mappato su (random, solo a titolo di esempio) cisco.routerModelloX.system.activetime (che nell'albero/mib corrisponde magari a 1.42.5.189) il valore "da quanto tempo sono up?". E' possibile mediante un manager snmp (client che manda una request sulla 161) richiedere al router da quanto tempo è in piedi, facendo appunto snmp get 1.42.5.189. La mib può essere locale o condivisa (ie path datoti dalla IANA). Se vogliamo fare un paragone, quello che per il mio serverino era una socket su cui sparo la stringa "IS_UP_AND_RUNNING" puo essere paragonato all'invio di un messaggio snmp get 1.42.5.189.

I vantaggi, oltre all'utilizzo di uno standard etc, sono l'interoperabilità con altre applicazioni che usano snmp. Per citare ancora l'esempio di prima, un manager snmp può monitorare da quanto è in piedi un router oppure il mio serverino esattamente allo stesso modo (snmp get a.b.c.d).

banryu79
08-03-2010, 16:41
Ah però, complimenti, sembra decisamente interessante :)

Comunque, da come ne parli mi par di capire che non ti senti "sperduto", semplicemente hai trovato che "sta roba" richiede un botto di documentazione da assorbire perchè tu possa orientarti bene e acquisire tutte quelle conoscenze teoriche che ti servirebbero per avere idea, con cognizione di causa, di che "morte morire" per implementare il protocollo SNMP e rieducare alla nuova forma di comunicazione le tue due applicazioni, il client e il server.

Non so a che scopo fai questo (e di conseguenza con che limiti di risorse), ma mi pare abbastanza chiaro che ti toccherà studiare molto.

Purtroppo non ti so aiutare in nessun modo, dato che per me "sta roba" è arabo :D (incrociamo le dita che magari ti legge qualcuno che ne sa qualcosa) .
Nel frattempo, in bocca al lupo :)