Sistema de administración y monitoreo de equipos

Anuncio
Sistema de administración y
monitoreo de equipos
Christian Sulluchuco Abarca
Robert Ruiz Reyes
David Rodríguez Condenzo
RESUMEN
El presente proyecto trata acerca del monitoreo de
equipos de red a través del uso de la tecnología Java
y el protocolo SNMP. La utilización de estas tecnologías dieron como resultado el desarrollo de un sistema
de administración de equipos de red muy funcional y
robusto, ya que se aprovecharon al máximo todas las
bondades que el protocolo SNMP brinda en cuanto al
monitoreo de equipos así como la gran aceptación que
este protocolo tiene entre los fabricantes de equipos
de red.
ABSTRACT
36
The present project treats about of the monitoring of network devices across the Java technology and the SNMP
protocol. The use of theses technologies gave like proved
a Network Management System robust and very functional, taking advantage to the maximum of all the kindness
that the SNMP protocol offers for the monitoring as well
as the great acceptance that this protocol has between
manufactures and network equipment.
PALABRAS CLAVES
SNMP, Java, Hosts JCSnmp, OpenSource, Agentes, J2SE5
Este protocolo SNMP permite la administración de los
equipos de la red, de cualquier fabricante, siempre y cuando dichos equipos lo soporten. Actualmente, los fabricantes han adoptado a SNMP como el protocolo estándar
para la administración de sus equipos, el cual permite obtener información sobre la configuración y operación de
una gran variedad de equipos de red. SNMP proporciona
un método de administración de concentradores, routers,
bridges y equipos de servidor o estación de trabajo. Toda
la administración se lleva a cabo desde un equipo central
donde se ejecuta un software denominado administración de redes.
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS (JCSnmp2)
JCSnmp2 es un software desarrollado para ejecutarse en
una arquitectura Web, está escrito en el lenguaje de programación Java y permite la administración de equipos
de red mediante el protocolo SNMP.
JCSnmp2 integra una serie de proyectos OpenSource3 basados en la tecnología Java. El software proporciona como
resultado final una interfase intuitiva para la administración y monitoreo de los equipos de la red, además de ser
muy funcional, lo cual permite al administrador de la red
ejecutar la mayoría de sus labores.
INTRODUCCIÓN
En la actualidad la administración y monitoreo de equipos
de una red son tareas esenciales para todo administrador
de red. Por lo tanto es necesario que esta persona disponga de las herramientas necesarias que le ayuden en
sus labores de administración. En la búsqueda de herramientas que permitan realizar estas tareas se evaluaron
varios programas como HP Openview, MRTG, entre otros.
Algunos de estos programas se caracterizan por su costo
elevado y otros por su relativa funcionalidad limitada. Por
ello, se tomó la decisión de desarrollar un software llamado JCSnmp2, el cual trata de satisfacer estas necesidades
utilizando para ello el protocolo SNMP.
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
Asimismo, JCSnmp2 está diseñado para que sea de fácil
interacción y rápido entendimiento en cuanto a las funciones que proporciona.
JCSnmp2 permite al usuario recolectar información de
los agentes4 que considere importante para luego almacenarlos en una base datos, después generar gráficos y
reportes estadísticos en HTML cuando el usuario lo desee.
JCSnmp2 es capaz de guardar una serie de valores que
se producen como resultado de la obtención periódica
de información de los agentes, de este modo se puede
conservar un historial del comportamiento de los equipos para un posterior análisis. Otra característica importante de JCSnmp2 es que permite hacer un seguimiento
Para realizar el proyecto se utilizaron las siguientes librerías y herramientas de desarrollo:
Apache Jakarta Tomcat es un proyecto de Software
Libre de la fundación Apache. Tomcat es un contenedor de Servlets y JSP creado a partir de un código
donado por SUN Microsystems a la Apache Software
Foundation. Tomcat ha crecido hasta convertirse en
la implementación oficial de referencia de Servlets y
JSP sustituyendo a la implementación de SUN original.
Esto lo convierte en el contenedor sobre el que todos
los demás prueban su adhesión a las especificaciones
J2SE5.
Protocolo SNMP
MySQL
periódico del consumo de ancho de banda de un equipo
específico.
Asimismo, para la generación de graficas, JCSnmp2 hace
uso de la librería JFreeChart, para lo concerniente a reportes en HTML.
LIBRERÍAS Y TECNOLOGÍA USADAS
Simple Network Management Protocol (SNMP) o protocolo simple de gestión de redes, es el protocolo de administración utilizado por el Sistema desarrollado.
SNMP proporciona un método de administración de
host1 de redes como concentradores, bridges, enrutadores, impresoras y equipos de servidor o estaciones de trabajo desde un equipo central que ejecuta un software de
administración de redes.
SNMP define un protocolo de bajo nivel que proporciona
tres operaciones básicas:
• Consultar, permite obtener un valor de una variable.
• Actualizar, permite almacenar un valor dentro de una
variable.
• Notificar, permite generar alertas de eventos detectados en el sistema del host1 administrado.
En la actualidad existen tres versiones del protocolo SNMP.
La utilizada en el proyecto es la versión 1 por ser la más difundida y por existir más información disponible.
Tomcat
• Fabricante :
• Versión
:
• Web
:
The Apache Software Foundation
5.5.4
http://jakarta.apache.org/tomcat/
• Fabricante :
• Versión
:
• Web
:
MySQL AB
4.1.7
http://www.mysql.com
MySQL es la base de datos Open Source más popular y de
mayor crecimiento en la industria de Base de Datos. Está
basada en su dedicación de proveer una solución que no
sea complicada, reduciendo de este modo el TCO (Total
Cost OwnerShip). MySQL ofrece las siguientes ventajas
claves:
• Confiabilidad y performance.
• Fácil de usar.
• Provee acceso al código fuente.
• Soporte Multiplataforma.
• Millones de desarrolladores entrenados y capacitados.
37
JAVA
• Fabricante :
• Versión
:
• Web
:
Sun Mycrosystems
J2SE5
http://java.sun.com
JCSnmp2 está escrito en su totalidad en código Java y
para elaborar el proyecto se utilizó el J2SE5 con el cual
se implementó la lógica de la aplicación. Una de las principales razones por las cuales fue desarrollado en dicho
Figura 1 - El Administrador SNMP solicita a los agentes SNMP de los equipos administrados información de estados.
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
lenguaje fue su robustez y su capacidad de ser multipla-
Struts permite desarrollar aplicaciones basándose en el
taforma.
modelo 2, el cual es una variación del paradigma de diseño MVC (Model View Controller).
Java Snmp Package
• Fabricante :
Jonathan Sevy
Struts provee su propio componente Controlador (Con-
• Versión
:
1.3
troller) y se integra con otras tecnologías para proveer el
• Web
:
http://gicl.cs.drexel.edu/people/
Modelo (Model) y la Vista(View). Para el Modelo (Model),
sevy/snmp/snmp_package.html
Struts puede interactuar con tecnologías de acceso a da-
Java Snmp Package es una implementación Open Source del protocolo SNMP que permite usarlo como un paquete en java. Esta librería provee soporte para operaciones básicas del cliente y agente SNMP definidas en
las versiones 1 y 2 del protocolo SNMP.
Este paquete provee un mecanismo para realizar operaciones “getting and setting” de los valores de los OIDs
tos como JDBC y EJB, así como con librerías de terceros,
como Hibernate, Batis y otros. Para la Vista (View), Struts
trabaja bien con JavaServer Pages, incluyendo JSTL y JSF,
así como con Plantillas de Velocity, XSLT y otros sistemas
de presentación.
El uso de esta librería en el proyecto se debió a que
provee un patrón de desarrollo en cuanto a aplicacio-
a través de una interface de comunicación y permite
nes web que permite que estas tengan una estructura
representar las estructuras de los objetos SNMP en los
ordenada.
objetos java equivalentes.
DISEÑO LÓGICO
JfreeChart
38
• Fabricante :
JFree
En el diseño de JCSnmp2 se tuvieron en cuenta varios pa-
• Versión
:
0.9.20
trones de diseño usados en aplicaciones J2EE5:
• Web
:
http://www.jfree.org/jfreechart/
• Acceso a datos a los Agentes SNMP, esta capa le
JfreeChart es una librería OpenSource de clases java que
permite a la aplicación obtener información de los
permiten la generación de gráficas, con la cual se pueden
agentes SNMP instalados en los equipos administra-
generar los siguientes tipos de gráficas:
dos. Las clases de esta capa se conectan mediante
• pie charts (2D and 3D);
el protocolo UDP a los agentes SNMP de los equipos
• bar charts (regular and stacked, with an optional 3D
administrados.
effect);
• line and area charts;
• scatter plots and bubble charts;
• time series, high/low/open/close charts and candle
stick charts;
• combination charts;
• Pareto charts;
• Acceso a datos a la Base de Datos, esta capa le permite
a la aplicación guardar, consultar y eliminar información en la base de datos MySQL.
• Fachada (Facade), esta capa contiene toda la lógica
de la aplicación, comunicándose directamente con las
• Gantt charts;
• wind plots, meter charts and symbol charts;
• wafer map charts;
capas de acceso a datos a los agentes SNMP y a la Base
de Datos y la capa Controladora.
• Controlador, esta capa permite la interacción entre la
Struts
• Fabricante :
Apache Software Foundation
vista y la capa de Fachada. Se encarga asimismo de de-
• Versión
:
1.2.4
volver las vistas adecuadas a cada petición hecha por
• Web
:
http://struts.apache.org/
el usuario.
Struts es un proyecto de Software Apache Foundation
• Vista, esta capa esta conformada por los archivos
que provee un Framework Open Source para el desarrollo
jsp y html que se encargan de mostrar información
de aplicaciones web Java.
al usuario.
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
39
Figura 2 - Este diagrama de clases muestra cómo está formada la capa de Acceso a Datos (DAO) a los agentes SNMP.
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
40
Figura 3 - Este diagrama muestra las clases que representan el modelo de datos del Sistema, con las cuales interactúan las capas de Acceso a
Datos a los agentes SNMP y a la Base de Datos.
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
FUNCIONALIDAD
JCSnmp2 presenta las siguientes funcionalidades:
Interfaces, Hardware, Software y Servicios de Red:
para así presentar la información al usuario de forma
ordenada.
Monitoreo
FUNCIONAMIENTO
JCSnmp2 permite monitorear los equipos mediante una
IP específica, un rango de IPs o una red IP. El monitoreo
de equipos permite obtener toda la información posible
A continuación se muestra un diagrama en el cual se indica todo el proceso que hace JCSnmp2 para mostrar la
41
Figura 4 - Este diagrama muestra la forma en la cual trabaja el Sistema JCSnmp2.
de los equipos a través del protocolo SNMP, esto implica:
inventario de software y hardware, estadísticas de ancho
de banda de las interfaces de red de los equipos e información de los servicios de red que ofrecen los equipos.
información al usuario partiendo desde una petición hecha por el mismo.
1 El usuario a través de la interfaz gráfica hace un requerimiento de información del equipo.
Estadísticas
JCSnmp2 permite generar gráficas estadísticas del consumo del ancho de banda, de las interfaces de red de un
equipo, a partir de la información obtenida del monitoreo
previo, pudiendo, de esta forma, hacer un seguimiento de
la actividad de las interfaces de red. Estas gráficas estadísticas están en función a un intervalo de tiempo que es
definido por el administrador.
Información
JCSnmp2 guarda toda la información obtenida del
monitoreo de los equipos en una Base de Datos, lo
cual permite consultar la información de un equipo
específico, en cualquier momento, sin necesidad de
volver a realizar un monitoreo a menos que esto sea
requerido, haciendo de este modo más eficiente la
obtención de información. JCSnmp2 clasifica la información de los equipos en los siguientes grupos:
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
Figura 5 - Desde esta pantalla el usuario indica el rango de IP’s que
desea monitorear.
2 JCSnmp2 a través de Java Package SNMP realiza una
conexión UDP al puerto 161 de los equipos administrados y realiza la operación GET REQUEST a un objeto
del agente SNMP para solicitar información.
3 El agente SNMP, instalado en el equipo administrado,
retorna el valor de dicho objeto.
4 La información es almacenada en una Base de Datos.
5 El sistema muestra los resultados obtenidos en una
página web.
CONCLUSIONES
Después de haber concluido satisfactoriamente el proyecto, se llegó a las siguientes conclusiones:
• Al desarrollar el sistema se encontró que el protocolo SNMP es limitado en cuanto a la información
que puede obtener de una PC, lo que es entendible
pues inicialmente fue diseñado para el monitoreo
de redes.
Figura 6 - Esta pantalla muestra la lista de equipos encontrados por el sistema.
6 El sistema puede generar gráficas estadísticas del consumo del ancho de banda de un equipo específico, de
ser así el sistema mediante las librerías de JfreeChart
genera las gráficas de línea de tiempo que indican el
consumo del ancho de banda del equipo.
42
• El análisis del sistema tomó bastante tiempo, ya que
se debían definir bien las funcionalidades que debía
tener en atención a los programas evaluados.
• El desarrollo de este proyecto sirvió de mucho para
entender y conocer la complejidad que implica el desarrollo de un software de monitoreo de redes.
Figura 7 - Esta pantalla muestra las interfaces de red del equipo administrado que el sistema encontró.
7 Finalmente las gráficas son presentadas al usuario a
través de una página web.
• El uso de gráficas estadísticas hace más comprensible
y rápida la lectura de los datos.
Figura 8 - Esta pantalla muestra una grafica de la evolución del consumo de ancho de banda del equipo.
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
• En la actualidad, las aplicaciones, más allá de lograr una
gran funcionalidad, deben de preocuparse también
por desarrollar una interfaz gráfica que sea intuitiva y
fácil de interactuar con el usuario final; en el desarrollo
de JCSnmp2 se tuvo muy en cuenta este detalle.
REFERENCIAS BIBLIOGRÁFICAS
Para desarrollar el proyecto se tuvieron en cuenta varios
documentos los cuales se encuentran en las siguientes
direcciones web:
SNMP
• Understanding Simple Network Management Protocol (SNMP) Traps. Se consigue en URL:
http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a0080094aa5.shtml
• MIB User Quick Reference. Se consigue en URL:
http://www.cisco.com/univercd/cc/td/doc/product/
software/ios11/mbook/mtext.htm
• http://www.akcpinc.com/company/nms.htm
• MIB Resources. Se consigue en URL:
http://www.somix.com/support/mib_resources.php
• AS1 Site – Tools – Repository. Se consigue en URL:
http://asn1.elibel.tm.fr/cgi-bin/oid/display?oid=1.3.6.
1.2.1&action=display
• SIMPLE NETWORK MANAGAMENT PROTOCOL – Wikipedia. Se consigue en URL:
http://es.wikipedia.org/wiki/SNMP
• RFC 1213. Se consigue en URL:
http://www.ietf.org/rfc/rfc1213.txt
JAVA
•
•
JFreeChart. Se consigue en URL:
http://www.jfree.org/jfreechart/
Chart a new course with JFreeChart. Se consigue en URL:
http://www.javaworld.com/javaworld/jw-12-2002/jw1227-opensourceprofile.html
• Gráficas en Java con JFreeChart. Se consigue en URL:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=jfreechart
• Java SNMP Package. Se consigue en URL:
http://gicl.cs.drexel.edu/people/sevy/snmp/
• Java SNMP Package Introduction. Se consigue en URL:
http://gicl.cs.drexel.edu/people/sevy/snmp/snmp_
package_introduction.html
43
SISTEMA DE ADMINISTRACIÓN Y MONITOREO DE EQUIPOS
Descargar