Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mayo 21, 2010 por Johan Rask en Java, Consejos y trucos | 95 Comentarios
Johan Rask
Actualización 2010-09-22: Obtención asíncrona que se prueba con Awaitility.
https://blog.jayway.com/2010/05/21/introduction-to-snmp4j/
Traducción Andrés E. Castillo -23-nov-2019
SNMP es una tecnología ampliamente aceptada y se utiliza para monitorizar
una amplia variedad de dispositivos, pero como resulta que muy pocas personas (al
menos entre los programadores java) parecen saber algo sobre cómo construir
soluciones basadas en snmp.
Este post no discutirá nada en absoluto sobre la teoría de SNMP, sino que me
centraré en cómo construir una solución simple usando snmp4j. Así que, si tu jefe te
acaba de decir que implementes cualquier tipo de tecnología snmp en un producto
java y no tienes ni idea de por dónde empezar, este post es para ti.
Desafortunadamente, es imposible cubrir todos los aspectos de snmp4j (y
honestamente tengo mucho que aprender), pero con suerte esto te pondrá en
marcha rápidamente.
Crearemos un cliente simple y un agente simple (con soporte para snmp
versión 2c) que utilizaremos en una prueba automatizada.
Cómo empezar
Este proyecto de ejemplo está construido usando maven 2.2.1 y java6.
También podría ser bueno descargar las fuentes de snmp4j de
http://www.snmp4j.org.
Snmp4j es la tecnología líder de código abierto para soluciones java basadas
en snmp y tiene una API tanto para clientes snmp (o administradores) como para
agentes y está licenciada bajo Apache 2.
Eso fue muy fácil, y es básicamente el mismo código que puedes encontrar en
la clase org.snmp4j.Snmp, así que no estamos proporcionado algo nuevo. Vale, ¿y
qué si queremos probar a este cliente sin acceder al router físico? Eso es lo siguiente.
Creación de un agente snmp súper simple
Si crear un cliente snmp es fácil, crear un agente snmp (y saber lo que estás
haciendo) es mucho más difícil. Para ayudarle a empezar, snmp4j proporciona dos
clases; BaseAgent que puede ser subclasificado para construir su agente persona-
lizado, y TestAgent que es una clase ejecutable que extiende BaseAgent. El problema
una vez que empiezas a ver estas clases es que es muy difícil entender lo que hacen
a menos que seas un experto en snmp, así que en su lugar he creado una
implementación de agente que sólo contiene la funcionalidad mínima para soportar
snmp v2c. Básicamente lo que he hecho es arrancar las partes de TestAgent que
realmente no necesitaba para esta demo.
Probando el cliente contra el agente
A continuación, engancharemos al agente y al cliente en una prueba JUnit
para verificar que funciona como se espera.