Presentación conformación brigada de emergencia.ppt
Implementación de una aplicación móvil para la administración remota de servidores
1. “III CONGRESO INTERNACIONAL DE TELECOMUNICACIONES TELCON-UNI 2014”
1
Resumen—El presente paper tiene como finalidad presentar
el desarrollo de una aplicación que permite el monitoreo y
la administración de servidores de forma remota a través de
un dispositivo móvil Android con conexión a internet, en el
mismo se plantean desde conceptos básicos para el
entendimiento del articulo hasta las herramientas y
metodología empleadas. La aplicación móvil fue pensada
para las resolver las necesidades básicas de un
administrador de servicios de IT donde se podrán realizar
actividades de monitoreo de recursos (CPU, Memoria
RAM, Disco) y Manejo de Servicios (daemons), en tiempo
real.
Índices— Android, Aplicación móvil, ConnectBot, Monitoreo, ,
Procesos, Recursos informáticos, Servidor
I. INTRODUCCIÓN
n este artículo se da a conocer el proceso realizado para la
creación de una aplicación móvil basada en Android [1]
pensada para cuabrir las necesidades básicas de un
administrador de servidores o de un datacenter, donde se podrá
realizar actividades de monitoreo de recursos (CPU, Memoria
RAM, Disco) y Manejo de Servicios (daemons) en tiempo real.
Con el desarrollo tecnológico, día a día las aplicaciones
móviles han adquirido un valor comercial de gran importancia
para todo tipo de organizaciones. Su mejoramiento y
efectividad garantizan una mayor satisfacción en los usuarios,
que pueden encontrar no sólo aplicaciones básicas para la
realización de tareas simples sino aplicaciones más complejas
Botia V, Diego José Luis, es Docente e Investigador del área de Ingeniería
de Software en el Departamento de Ingeniería de Sistemas de la Universidad de
Antioquia. Medellin, Colombia. (email: diego.botia@gmail.com)
Duque, Carlos Mario. , es estudiante de Ingeniería de Sistemas de la
Universidad de Antioquia. Medellín, Colombia. (email: cmduque@gmail.com)
Giraldo Salazar, Sebastián., es estudiante de Ingeniería de Sistemas de la
Universidad de Antioquia. Medellín, Colombia. (email:
segisa2007@gmail.com)
Pineda, Carlos Andrés, es estudiante de Ingeniería de Sistemas de la
Universidad de Antioquia. Medellín, Colombia. (email:
candresp26@gmail.com)
que dan facilidad a tareas que requerirían de más tiempo y
esfuerzo.
El monitoreo de servidores es una de las pocas tareas que
comúnmente es realizada desde un computador personal
personal; dado que la mayoría de ocasiones es necesario
desplazarse hasta el lugar de trabajo y realizar la actividad
directamente desde el servido. Con el fin de mejorar las tareas
de administración y gestión se desarrollo una aplicación que
permite desde cualquier lugar hacer monitoreo y administración
de servidores logrando así tener un mayor control sobre la
funcionalidad y eficiencia de los mismos. La importancia del
proyecto radica en la oportunidad de mejora en las tareas de
administración que se puede tener con una aplicación de este
tipo desde dispositivo móvil (Smartphone), y de esta manera se
puede mejorar los tiempos de respuesta y prevenir
inconvenientes que se puedan presentar en los servidores
debido a que estos dispositivos móviles normalmente
acompañan todo el tiempo a las personas.
El desarrollo está basado en algunas propuestas realizadas en
otras aplicaciones y se trata de tomar lo mejor de cada una de
ellas realizando la integración de los aspectos de monitoreo y
administración. La principal característica de la aplicación
desarrollada y que se va a explicar más adelante, es que algunas
aplicaciones en el medio permiten solo el monitoreo de
servidores, y otras brindan la consola SSH, pero no ambas al
mismo tiempo.
En este artículo en la sección dos, se presenta el marco
referencial donde se mencionan algunos términos importantes
para el desarrollo del proyecto, además se evaluan algunas
aplicaciones ya existentes en el mercado; las herramientas que
se utilizaron para el desarrollo de la aplicación y la arquitectura
de esta. En la sección tres se describe la metodología utilizada
para desarrollar la aplicación, las características globales y las
restricciones de esta. En la sección cuatro se realiza una
descripción de la aplicación, las características globales y las
restricciones de ésta. En la sección cinco los resultados
obtenidos, imágenes y observaciones. En la sección seis las
conclusiones obtenidas a partir de la realización del proyecto y
por último el trabajo a futuro
Implementación de una aplicación para la
Administración remota de servidores con
Smartphones
Botia V. Diego José Luis, Duque. Carlos Mario, Giraldo Salazar. Sebastián, Pineda. Carlos Andrés
E
2. “III CONGRESO INTERNACIONAL DE TELECOMUNICACIONES TELCON-UNI 2014”
2
II. PROCESO DE DESARROLLO
A. Herramientas Empleadas
Para la aplicación propuesta se realizó la búsqueda de una
App Móvil que permitiera realizar la conexión por SSH para
brindar mayor seguridad. La aplicación escogida fue
ConnectBot el cual e además de proveer conexión SSH también
provee conexión por protocolo TELNET, y que además permite
realizar conexiones a Routers. Esta aplicación está licenciada
bajo Apache License 2.0. Presenta un intérprete de órdenes
seguro para la plataforma Android que ofrece a los usuarios
funciones que normalmente sólo se pueden encontrar en los
protocolos de red para PC [2]. El SDK (Kit de Desarrollo de
Software) [3] empleado fue el ADT, el cuál es un plugin que
ofrece entorno de desarrollo para aplicaciones Android
especialmente diseñado para Eclipse, además permite la
ejecución de un emulador del sistema operativo Android para
facilitar la etapa de desarrollo sin equipos físicos de prueba [4].
Otra librería empleada es AChartEngine la cuál es una
biblioteca de gráficos para aplicaciones de Android [7], y se
utilizo para la realización de las gráficas presentadas en la
sección de monitoreo. Por ultimo la librería XStream se adecuo
para permitir el parseo de XML a objetos DTO (Data Transfer
Objects).
B. Aplicaciones Relacionadas
Actualmente existe gran variedad de aplicaciones que
permiten monitorear servidores, pero ninguna de las analizadas
en este documento cuenta con consola SSH (Secure Shell) para
realizar la administración, solo tienen funciones de monitoreo.
Para iOS por ejemplo se tiene a iCacti, VMware vSphere
Client for iPad (solo sirve para servidores que estén
desplegados en VMWare [5]), pTerm (cliente para realizar
conexiones remotas usando SSH desde iPhone a Servidores
Linux, muy similar a Putty) [8]. Para Android se tiene a HP iLO
Mobile aplicación gratuita desarrollada por HP, pero solo
funciona para los servidores Proliant, uNagi Nagios client on
android es una aplicación debe ser desplegada en un servidor y
que ofrece un cliente de Nagios [6] para dispositivos Android
[9]. Otra aplicación es Mony -Server Monitor aplicación que
permite el monitoreo de servidores, pero necesita un servidor
Web PHP para la ejecución de un script en el servidor [10].
Linux Server Monitor, es una aplicación que permite
monitorear los servicios de un servidor Linux y consultar
información relevante sobre el equipo remoto, pero el
inconveniente de esta aplicación es que para su funcionamiento
requiere varios paquetes instalados en el servidor [11].
C. Arquitectura
Diagrama de clases:
En la figura 1 se presenta el diagrama de clases UML de la
aplicación. Las clases MainActivity, MonitorActivity,
ServicesActivity, ConsoleBuffer son las clases desarrolladas
para la aplicación. Las demás clases son propias de ConnectBot
y fueron modificadas para el acoplamiento con el desarrollo
final.
La clase HostListActivity es la clase que muestra el listado de
servidores. La clase SSH es una de las clases más importantes
del proyecto y es la que maneja los output stream y los input
stream para hacer la conexión (tuberías).
La clase MainActivity es la clase que agrupa a
MonitorActivity y SeriveActivity. La clase Relay es un hilo que
está pendiente de la lectura de las respuestas. ConsoleBuffer es
la clase que utiliza Relay para imprimir las respuestas.
Figura 1. Diagrama de Clases.
Diagrama de Componentes:
En la figura 2 se presenta el diagrama de componentes. Se
plantean dos componentes, uno es el Connectbot que brinda la
consola y el segundo es del componente Administración y
Monitoreo que es donde está toda la parte de monitoreo, gestión
de servicios, etc.
Diagrama de Paquetes:
El diagrama de paquetes (Figura 3), se divide en dos
paquetes principales, uno representa la parte del proyecto base
3. “III CONGRESO INTERNACIONAL DE TELECOMUNICACIONES TELCON-UNI 2014”
3
del cual se inició el desarrollo con sus respectivas clases y el
otro paquete es el creado por parte del equipo de desarrollo en
donde se plasman las activities, interfaces y dto, implementadas
para lograr la funcionalidad total de la aplicación.
Figura 2. Diagrama de Componentes
Figura 3. Diagrama de Paquetes
III. DESCRIPCION DE LA APLICACION
La aplicación móvil agrega una consola SSH provista por
Connectbot, que cuenta además con funcionalidades de
monitoreo de recursos hardware (CPU, Memoria RAM, Puntos
de Montaje e Interfaces de Red), mostrando los valores que son
retornados por el servidor mediante la ejecución de una Shell,
además también se generó una interfaz para iniciar y detener
los servicios que están registrados en el S.O. La idea mediante
estas funcionalidades es facilitar las labores de monitoreo del
servidor ya que claramente se pueden realizar desde la consola
pero mediante las gráficas provistas se facilita la visualización
del estado de los recursos, además la gestión de servicios se
realiza fácilmente a través de un listado global.
Se tomó la decisión de permitir también el uso de la consola
debido a que pueden existir funcionalidades muy específicas
que no están abarcadas en los módulos desarrolladas. Un
ejemplo claro es la administración de Routers la cual es
comúnmente realizada a través de protocolo TELNET, el cual
también es soportado por la aplicación, pero sobre el cual no se
realizaron desarrollos para automatizar configuración ni
monitoreo. Teniendo en cuenta lo anterior, se presentan las
características de la aplicación con su respectiva restricción:
1. La aplicación está desarrollada para equipos móviles con S.O
Android, por lo que su ejecución no es posible por fuera de este
entorno.
2. La aplicación permite conexiones a servidores y routers por
medio de los protocolos TELNET y SSH. Las funcionalidades
de monitoreo de recursos y administración de servicios
(daemons) están desarrolladas sólo para servidores Linux
basados en Debian, por lo tanto estas funcionalidades solo
están desarrolladas y probadas para estos servidores.
3. Los comandos utilizados para las funciones de monitoreo y
servicios son: echo, grep, awk, free, df, cat, service, por lo que
otras distribuciones que posean estos comandos pueden
presentar un comportamiento correcto.
4. La aplicación realiza su funcionalidad a través de las shell lo
que la hace fácilmente extensible a otros S.O sin necesidad de
realizar modificaciones y compilaciones del código fuente,
siempre que se mantenga la misma estructura de XML.
5. Como consideraciones de seguridad no se almacenan
contraseñas de usuarios dentro de la aplicación, esto debido a
que no se solicitan credenciales para el acceso a la aplicación y
por ser un dispositivo móvil puede ser de fácil acceso a
personas sin autorización. La seguridad a nivel de capa de
Aplicación (Pila OSI) está dada por la especificación de cada
uno de los protocolos, recordando que la información en
TELNET viaja en texto plano y en SSH va cifrada.
6. Para el correcto funcionamiento de la aplicación debe haber
conectividad por los puertos en los cuales están funcionando los
servicios (Por defecto, SSH: 22, TELNET: 23). Se debe tener en
cuenta esta información para realizar las configuraciones
correspondientes en Firewalls y Routers, habilitando estos
puertos o sí se requiere conexión por fuera de una LAN debe
estar en un DMZ (Zona Desmilitarizada) o NAT (Network
Address Translation) habilitado.
4. “III CONGRESO INTERNACIONAL DE TELECOMUNICACIONES TELCON-UNI 2014”
4
IV. RESULTADOS OBTENIDOS
A. Pruebas realizadas a la Aplicación
A continuación se muestran las imágenes de las pruebas
realizadas a la Aplicación, en donde se pueden visualizar los
resultados: En la figura 4, se muestra la parte de la
autentificación. La figura 5, se listan los servidores a los cuales
se ha tenido acceso. En la figura 6, se muestra la consola SSH,
en la cual se pueden digitar diferentes comandos. En la figura 7,
se muestra el menú de opciones. En la figura 8, se muestra la
opción de monitoreo, en la que se puede revisar todo el
consumo de recursos (CPU, Memoria y Tráfico de Red) y
estados del servidor. Por ultimo, en la figura 9 se imprime el
listado de procesos que se pueden además iniciar, detener o
reiniciar. Se identifican los procesos activos e inactivos.
Figura 4. Autenticación con el Servidor
Figura 5. Listado de Servidores
Figura 6. Consola SSH cargada.
5. “III CONGRESO INTERNACIONAL DE TELECOMUNICACIONES TELCON-UNI 2014”
5
Figura 7. Opciones Generales de Gestión.
Figura 8. Opción de Monitoreo de Recursos
Figura 9. Opción de Gestión de Servicios o Demonios
6. “III CONGRESO INTERNACIONAL DE TELECOMUNICACIONES TELCON-UNI 2014”
6
V. CONCLUSIONES Y TRABAJO FUTURO
Dentro de las aplicaciones revisadas en el estado del arte se
encuentra que estas ofrecen una de las dos opciones, monitoreo
o consola; por lo tanto ninguna integra ambos escenarios por lo
que para realizar la administración del servidor se requieren de
dos aplicaciones y estar realizando intercambios entre ellas. La
aplicación desarrollada resuelve este problema al adaptar la
gestión y monitoreo de forma centralizada. Los teléfonos
actuales tienen cada vez más capacidad de cómputo lo cuál los
hace muy versátiles e ideales a la hora de pensar en soluciones
que ayuden a remplazar acciones realizadas normalmente desde
un computador. Las aplicaciones de este tipo pueden ayudar en
gran manera a un administrador de sistemas a estar pendiente
fácilmente y rápidamente en todo momento y desde cualquier
lugar, de los estados de sus servidores y tomar acciones a través
de la ejecución de comandos por medio de la consola SSH
cargada en la aplicación. Como trabajo futuro se pretende
realizar el desarrollo de una aplicación nativa para iOS, que
permitirá abarcar los dos sistemas operativos más dominantes
en el mercado para dispositivos móviles [9]. Realizar scripts y
pruebas para otros sistemas operativos importantes en el
mercado como AIX, Redhat, BSD, Windows. Generar en la
aplicación la opción de elegir características y umbrales que se
puedan monitorear en segundo plano y de este modo generar
alertas y notificaciones en el dispositivo automáticamente sin
necesidad de tener abierto el aplicativo. Por ultimo desarrollar
una aplicación empresarial que realice la mediación entre el
servidor y el aplicativo móvil evitando de este modo realizar
configuraciones especiales para habilitar puertos y también
evitando almacenamiento en el dispositivo móvil de
información como el listado de servidores.
VI. REFERENCIAS
[1] ¿Qué es Android? [En línea]. Disponible en:
http://www.xatakandroid.com/sistema-operativo/que-es-
android. [Accedido: 02-julio-2014].
[2] Francisco. F. “ConnectBot - Intérprete de órdenes segura
para la generación móvil”. [En línea]. Disponible en:
http://www.androidpit.es/connectbot-interprete-de-ordenes-
segura-para-la-generacion-movil. [Accedido: 02- julio -2014].
[3] Joan. S “¿Qué es y para qué sirve el SDK?” [En línea].
Disponible en: http://fandroides.com/que-es-y-para-que-sirve-
el-sdk/. [Accedido: 02- julio-2014].
[4] Instalando Eclipse y ADT [En línea]. Disponible en:
http://android.scenebeta.com/tutorial/instalando-eclipse-y-adt.
[Accedido: 02-mayo-2014].
[5] Bradley. T. “Android Dominates Market Share, But Apple
Makes All The Money”. Disponible en:
http://www.forbes.com/sites/tonybradley/2013/11/15/android-
dominates-market-share-but-apple-makes-all-the-money/. USA.
[Accedido: 02-julio-2014].
[6] Eusko .J. “Nagios: herramienta para gestión-diagnostico de
Red de Linux”. [En línea]. Disponible en:
http://www.euskadinnova.net/es/enpresa-
digitala/agenda/nagios-herramienta-para-gestion-diagnostico-
linux/3909.aspx. [Accedido: 02-mayo-2014].
[7] Achartengine Team. “The AChartEngine 1.1.0 binary build
library. - Charting library for Android - Google Project
Hosting”. [En línea]. Disponible en:
https://code.google.com/p/achartengine/downloads/detail?name
=achartengine-1.1.0.jar&can=2&q=. USA [Accedido: 02-julio-
2014].
[8] Bitelia. “10 Aplicaciones iOS para administradores de
sistemas.” [En línea]. Disponible en:
http://bitelia.com/2012/09/10-apps-ios-administradores-
sistemas. [Accedido: 02-junio-2014].
[9] Bitelia. “10 Aplicaciones Útiles para administradores de
sistemas.” [En línea]. Disponible en:
http://bitelia.com/2012/09/aplicaciones-android-administrar-
sistemas. [Accedido: 02-abril-2014].
[10] Monyt Man. “Monyt-Server Monitor” [En línea].
Disponible en:
https://play.google.com/store/apps/details?id=com.emoticode.m
onyt. USA. [Accedido: 05-mayo-2014].
[11] AquaNight. “Linux Server Monitor”. [En línea].
Disponible en:
https://play.google.com/store/apps/details?id=com.miranda.serv
ermonitor. [Accedido: 02-mayo-2014].