2009-11-30 11 views
1

J'ai essayé d'écrire un agent d'encapsulation snmp pour mon application JMX Enabled qui traduira toutes les informations contenues dans les MBeans JMX en attributs SNMP.Essayer de comprendre ce que fait snmp4jAgentJMX et si cela convient à mes besoins

Je suis un peu perdue à essayer de comprendre par où commencer et quoi utiliser. D'après ce que j'ai lu, snmp4j est probablement la bibliothèque go to snmp pour Java mais je n'ai pas réussi à comprendre les exemples de code qui sont dans Snmp4jAgent. En outre, à la lecture du description pour SNMP4JAgentJMX sur le site Web des auteurs, je pense que Snmp4jAgentJMX pourrait m'aider à écrire cet agent, mais je ne comprenais pas comment l'utiliser. En fait, en regardant l'exemple de code (org.snmp4j.agent.mo.jmx.example.JMXTestAgent), je n'ai pas pu trouver la partie où le code s'inscrit avec un MBean ou un JMX Factory, ce qui m'a amené à supposer que ce que je ne comprenais pas correctement ce que ce code fait. J'apprécierais beaucoup les exemples de code et/ou des tutoriels ou de la documentation pour quelqu'un qui n'a pas eu d'expérience avec SNMP.

Merci!

Répondre

1

L'agent SNMP fourni par jmx2snmp est incomplet et contient des erreurs. Il n'y a plus rien à faire pour écrire un agent SNMP. Par exemple, SNMPv1 n'est pas correctement pris en charge (état d'erreur). GETBULK n'est pas supporté (obligatoire pour SNMPv2). GETNEXT a appelé un OID non existant dans l'agent, ne renvoie pas l'OID suivant mais noSuchObject à la place (qui ne doit jamais être retourné sur un GETNEXT), SET n'est pas supporté du tout, et probablement de nombreux autres problèmes.

Par conséquent, je recommande d'utiliser SNMP4J-AgentJMX conjointement avec SNMP4J-Agent et SNMP4J (en tant qu'auteur de ceux-ci). L'agent exmple effectue le mappage entre JMX et SNMP lors de l'initialisation dans la classe d'instrumentation MIB JvmManagementMibInst dans la méthode addJvmManagementMibInstrumentaton.

Ici vous trouverez de nombreux exemples de la façon dont la cartographie descriptive peut être faite. Si vous avez déjà une spécification MIB, vous pouvez utiliser AgenPro pour générer la classe Mub stub et vous n'aurez à faire que le mappage comme indiqué dans l'exemple de classe JvmManagementMibInst.java. Si vous n'avez pas encore de MIB, je vous recommande également d'utiliser un outil de conception MIB (tel que MIB Designer) pour créer la MIB car il s'agit probablement d'un processus interactif et vous devrez restructurer le MIB lorsque vous découvrez des moyens plus faciles de mapper à JMX.

+0

Wow. C'était il y a 3,5 ans! Mais j'aime ta réponse :-) – Ben

0

Après beaucoup de recherches, j'ai trouvé this paquet qui utilise l'agent snmp4j pour envelopper JMX et distribuer des services SNMP.

Avec ce package, tout ce que vous avez à faire est de vous enregistrer auprès du MBean et de modifier le mappage JMX-SNMP.