UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO



Documentos relacionados
La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

DIPLOMADO EN SEGURIDAD INFORMATICA

Monitorización de sistemas y servicios

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Capítulo 5. Cliente-Servidor.

SIEWEB. La intranet corporativa de SIE

Guía de Instalación para clientes de WebAdmin

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Oficina Online. Manual del administrador

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

WINDOWS : TERMINAL SERVER

La vida en un mundo centrado en la red

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Dispositivos de Red Hub Switch

Redes de Área Local: Configuración de una VPN en Windows XP

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma

CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX

ACCESO Y MANEJO DEL PANEL DE CONTROL

Tecnología IP para videovigilancia... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el

Introducción a la Firma Electrónica en MIDAS

Elementos Monitoreados

Beneficios estratégicos para su organización. Beneficios. Características V


Firewall Firestarter. Establece perímetros confiables.

Monitoreo de red. Inventario de hardware y software. Monitoreo actividad del usuario. Soporte a usuarios. Protección contra fuga de datos.

Manual de NetBeans y XAMPP

Windows Server Windows Server 2003

Use QGet para administrar remotamente las descargas múltiples BT

Monitoreando Redes con Linux. Ing. Pedro Alejandro Toribio P. Especialista en Conectividad y Seguridad en

PROTOCOLOS DE APLICACIÓN PRÁCTICA EN INFOMED INTEROPERABILIDAD

OBSERVER Que topologías para el Análisis y Monitoreo de Redes contempla?

Internet, conceptos básicos

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Curso de PHP con MySQL Gratis

Acronis License Server. Guía del usuario

Servidor FTP en Ubuntu Juan Antonio Fañas

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Edición de Ofertas Excel Manual de Usuario

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Central telefónica IP* By MilNet Internet Server. Tecnología inteligente

PREPARATORIA DIURNA DE CUAUTLA

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Guía de Inicio Respaldo Cloud

TEMA: PROTOCOLOS TCP/IP

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Studium, Campus Virtual de la Universidad de Salamanca.

Introducción a las redes de computadores

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

TEMA 3. REDES Y SEGURIDAD INFORMÁTICA

Contenido. cursos.cl / Teléfono:

Windows Server 2012: Infraestructura de Escritorio Virtual

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Configuración de Aspel-SAE 6.0 para trabajar Remotamente

Práctica No. 1. Consulta de las versiones del SO

Crear un servidor Web en IIS

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

HOWTO: Cómo configurar SNAT

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Utilizar los servicios de Index Service para buscar información de forma rápida y segura, ya sea localmente o en la red.

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Configuración de la red

DOCENTES FORMADORES UGEL 03 PRIMARIA

[4 ]Instalación y configuración básica de drupal.

Internet aula abierta

Sistema de Control de Accesos API-WIN

HOWTO: Cómo configurar DNAT para publicar los servicios internos hacia Internet

BlackBerry Mobile Voice System

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Políticas para la seguridad de los sistemas de datos personales en el Instituto Nacional de Medicina Genómica

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Configuración de Exchange en Blackberry

MANUAL CORREO ELECTRÓNICO UNIVERSIDAD ISRAEL

Internet aula abierta

Manual de usuario de IBAI BackupRemoto

CAPITULO II MANUAL DE USUARIO

B R A N D B R O C H U R E

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. Monitorización de una LAN

Sistema de Control de Accesos

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

PROYECTO. Solución Empresarial Ingeniería y Desarrollo de Software - info@solucionempresarial.com.

Ubuntu Server HOW TO : SERVIDOR VPN. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como usar vpn. Qué es una VPN?

GUÍA DE ADMINISTRACIÓN SALA DE SISTEMAS


UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Configuración de Aspel-SAE 6.0 para trabajar Remotamente

MANUAL COPIAS DE SEGURIDAD

VPN RED PRIVADA VIRTUAL INTEGRANTES: ALEXANDER BERNAL RAMIREZ CARLOS TRANCA JOSUE FLORES MIGUEL ANGEL VILLANUEVA

Título: Implementación de un servicio de acceso a Internet por correo electrónico. Navegación total.

TUTORIAL PARA CREAR UN SERVIDOR FTP

Título de la pista: Windows Server 2012 Detalles técnicos de redes

Transcripción:

UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO Nombre del Proyecto: "SISTEMA DE MONITOREO PARA REDES MEDIANTE DISPOSITIVOS MÓVILES" Empresa: ABASTECEDORA DE CONECTIVIDAD S.A de C.V. Memoria que como parte de los requisitos para obtener el título de: LICENCIA PROFESIONAL EN DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES. Presenta: ISC. RODRIGUEZ AGUILLON JUAN DIEGO. Asesor de la UTEQ ISC. Marco Antonio Arreguin Molina Asesor de la Empresa Leonardo Miguel Infante B. Santiago de Querétaro, Qro a 30 de Abril de 2012

RESUMEN Este proyecto tiene como objetivo presentar una solución para el problema del monitoreo de una Red de Telecomunicaciones, En muchas ocasiones los encargados de TI no se encuentran físicamente en el Site de la empresa u oficina, cualquier problema referente a comunicaciones y conectividad que ocurra dentro de las instalaciones es responsabilidad del encargado de TI. Por lo que debe de contar con una herramienta confiable para monitorear lo que pasa dentro de la red, a pesar de que se encuentre lejos del lugar de trabajo. El proyecto de monitoreo móvil facilita la tarea del personal de TI, proporcionando una interface grafica agradable, desde la cual puede ver el estado de los dispositivos de red, la topología de la red y algunos datos importantes sobre el equipo o dispositivo monitoreado. Utilizando esta herramienta el encargado se dará cuenta en Tiempo Real de la problemática a la que se enfrenta. Básicamente el núcleo del sistema está desarrollado en Linux, mediante Scripts elaborados en PERL, para facilitar la comunicación entre el lenguaje y la base de datos (Mysql) en la que se encontraran los datos de los dispositivos a monitorear. Proporciona una interface Web amigable para dar de alta los equipos a monitorear. Al utilizar la herramienta de monitoreo móvil, se ahorraran recursos valiosos como el transporte a sitio para determinar el problema, o incluso el tiempo invertido en obtener la solución, pero principalmente se garantizara un porcentaje de confiabilidad en las comunicaciones dentro de la empresa. (Palabras clave: monitoreo, conectividad de la red, tiempos de respuesta)

ABSTRACT This project aims to present a solution to the problem of monitoring a telecommunication network, in many cases IT managers are not physically at the Site of the company or office, any problems concerning communications and connectivity that occurs within facilities is the responsibility of the IT manager. So you must to have a reliable tool to monitor what is happening within the network, even though you are away from the workplace. The mobile monitoring project makes it easier for IT staff, providing a nice graphical interface from which you can view the status of network devices, network topology and some important information on the monitored computer or device. Using this tool will be responsible Real-time account of the problems which it faces. Basically the core system was developed on Linux, using PERL Scripts developed to facilitate communication between language and the database (Mysql) in which data were found in monitoring devices. It provides a friendly Web interface to discharge the monitoring equipment. By using the mobile monitoring tool, it saves valuable resources such as transportation to site to determine the problem, or even the time spent in obtaining the solution, but mainly be guaranteed a percentage of reliability in communications within the company. (Key Words: Monitoring, Network Connectivity, response times).

INDICE RESUMEN... ABSTRACT... INDICE... I. INTRODUCCIÓN... 1 II. ANTECEDENTES... 3 2.1 Empresa... 3 2.1.1 Giro de la Empresa.... 3 2.1.2 Misión... 4 2.1.3 Visión... 4 2.2 Clientes... 4 2.3 Productos... 5 2.3.1 Internet ADP (Acceso Dedicado Premium)... 5 2.3.2 Internet ADP/SP (Acceso Dedicado Premium con Secure Plug-In)... 5 2.3.3 Internet ADPP (Acceso Dedicado Premium Privado)... 5 2.3.4 Soluciones WiFi... 6 2.3.5 VoIP... 6 3.3.6 AbaNet IPSuite CTX... 7 2.3.7 Hospedaje de Sitios HTTP y FTP... 8 2.4 Definición del proyecto.... 8 III. JUSTIFICACIÓN... 10 IV.OBJETIVOS... 11 4.1 Objetivo General.... 11 4.2 Objetivos Específicos.... 11 V. ALCANCES... 12 VI. JUSTIFICACIÓN TEÓRICA... 13 6.1 MONITOREO DE REDES... 13 6.1.1 SNMP... 13

6.1.2 ICMP... 14 6.1.3 ICINGA... 17 6.1.4 CACTI... 18 6.1.5 RRDtool... 18 6.2 DISPOSITIVOS MOVILES... 19 6.2.1 Categorías... 19 6.3 DIRECCIÓN IP... 20 6.4 WEB SERVICES... 21 6.4.1 Estándares... 22 6.4.2 Ventajas... 23 VII. PLAN DE ACTIVIDADES... 24 VIII. RECURSOS MATERIALES Y HUMANOS... 25 8.1 Recursos Materiales.... 25 8.2 Recursos Humanos... 25 XI. DESARROLLO DEL PROYECTO... 26 9.1 Análisis de las herramientas que actualmente se utilizan.... 26 9.2 Proceso de investigación de herramienta de monitoreo.... 27 9.2.1 NAGIOS... 27 9.2.2. CACTI... 27 9.2.3 PANDORA FMS... 28 9.2.4 ICINGA (1)... 28 9.3 RESULTADOS DE LA INVESTIGACION... 29 9.4 Conceptualización del modelo del Proyecto... 29 9.5 Diagrama de funcionamiento... 31 9.6 Modelado de la Base de datos.... 32 9.7 CLASES PERL... 33 9.8 CLASES ANDROID... 34 9.9 PLATAFORMA DE DESARROLLO MOVIL (2)... 34 9.9.1 Plataforma... 35 9.10 PHP (3)... 35

9.10.1 Configuración de PHP... 36 9.10.2 Probando PHP... 36 9.11 Instalación de Mysql Server 5.1.54.... 37 9.12 Instalación de Apache. (4)... 39 9.13 Instalación de PERL en Ubuntu (5)... 40 9.14 PERL... 42 9.14.1 Mostrar Dispositivos de la base de datos... 42 9.14.2 Manejo de hilos... 43 9.14.3 Clase Poller... 44 9.15 Interfaces PHP (Sistema de Monitoreo Web).... 47 9.15.1 Interface de Monitoreo de dispositivos... 47 9.15.2 Dispositivos a Prueba... 48 9.15.3 Topología de AbaNet... 48 9.16 Interfaces ANDROID (Sistema de Monitoreo Móvil).... 49 9.16.1 Pantalla de inicio del sistema... 50 9.16.2 Pantalla de usuario y contraseña... 50 9.16.3 Lista de dispositivos en interface Móvil... 51 9.16.4 Topología de dispositivos de Red... 51 9.16.5 Lista de dispositivos en interface Móvil... 52 9.16.6 Topología de dispositivos de Red... 52 9.16.7 Dispositivo Alarmado... 53 9.16.8 Topología de Red... 53 9.16.9 Pantalla de búsqueda de dispositivo... 54 9.16.10 Pantalla de Configuración del sistema... 54 9.16.11 Configuración de idiomas... 55 9.16.12 Error en la conexión de RED... 55 X. RESULTADOS OBTENIDOS... 56 XI. ANÁLISIS DE RIESGOS... 57 XII. CONCLUSIONES... 59 XIII. RECOMENDACIONES... 60

XIV. ANEXOS... 61 14.1 INSTALACION UBUNTU... 61 Instalación... 61 XV. REFERENCIAS BIBLIOGRÁFICAS... 77

I. INTRODUCCIÓN Hoy en día, las redes Computacionales de las organizaciones, se vuelven cada vez mucho más complejas. Su correcta operación es un factor crítico para el éxito de toda organización. Las redes soportan más aplicaciones y servicios estratégicos centralizados; Tienen un crecimiento constante e incorporan nuevas tecnologías que aumentan el número de nodos en la red. Debido a su gran importancia en la productividad y eficiencia de las organizaciones, es indispensable contar con un análisis y monitoreo de los elementos claves que nos asegure su correcto funcionamiento, dicha acción se ha convertido en el pilar más importante y de carácter pro-activo para evitar problemas que puedan afectar los negocios de las empresas. Este monitoreo pro-activo le da más control al departamento de TI, ya que al tener un sistema que ayude a detectar los problemas de la red, les permite corregirlo a tiempo y prevenir futuros inconvenientes que pueden afectar la producción de las empresas. Para evitar la pérdida repentina de servicios, el monitoreo pro-activo se basa en protocolos especiales para dicha actividad: ICMP SNMP El uso de estos protocolos permite monitorear eventos en tiempo real, cuando se detecta cierto cambio inusual, dichos eventos pueden ser absorbidos mediante el protocolo SNMP, lo cual permite anticiparse a los problemas, y de esta forma, resolverlos antes de que los usuarios finales los detecten mejorando la calidad de los servicios de datos. 1

Para realizar un monitoreo pro-activo desde cualquier lugar donde nos encontremos se pretende desarrollar una aplicación para los dispositivos móviles que interprete los datos arrojados por estos protocolos. Una de las principales bondades de la aplicación es tener en todo momento una herramienta para analizar lo que pasa en la red de la empresa de una manera sencilla. La tecnología de las comunicaciones ha avanzado, las ventajas que ofrece son enormes, una de ellas es tener comunicación constante con las oficinas centrales desde un dispositivo móvil, esta ventaja es la que se pretende explotar con este desarrollo. 2

II. ANTECEDENTES 2.1 Empresa La información que a continuación se muestra fue tomada de la página Web de Abastecedora de conectividad (www.abanet.net). AbaNet es una empresa pionera en la prestación de servicios informáticos corporativos, creada para construir, entregar y respaldar soluciones integradas de tecnología informática, permitiéndole a los empresarios y directivos centrarse en sus negocios. Mediante el talento y la experiencia de su capital humano, aunado a su pasión por el servicio, AbaNet ha logrado satisfacer necesidades muy particulares y especificas de sus clientes. Su constante actitud innovadora, le ha permitido consolidarse como una empresa moderna con la movilidad y organización necesaria para crear y diseñar productos eficientes, dinámicos y flexibles. 2.1.1 Giro de la Empresa. AbaNet desde hace 15 años presta servicios a reconocidas empresas en México en los rubros de Conectividad, Seguridad Informática, Comunicaciones Privadas de Voz Sobre Internet, Servicios en Internet y Soporte de Equipos y Redes. 3

2.1.2 Misión Prevenir y solucionar los problemas informáticos para permitir a su empresa hacer más y mejores negocios. 2.1.3 Visión Proveer a nuestros clientes servicios de la más alta calidad orientados a asegurar la continuidad de sus negocios, permitiéndoles aumentar su rentabilidad a través de la utilización de nuevas tecnologías, de manera tal que nos consideren un socio confiable y sostenible a largo plazo en esta materia. 2.2 Clientes En AbaNet, se fijan esfuerzos en los requerimientos particulares de cada cliente, esperando satisfacer ampliamente las necesidades y procurando entregar más de lo que se solicita. El centro de atención a clientes observa muy de cerca las necesidades específicas de cada uno y procura establecer los más altos estándares de atención y satisfacción de necesidades. Ellos, avalan y dan fe de nuestras soluciones, procurando siempre ser un caso de éxito de la oferta. 4

2.3 Productos AbaNet ofrece productos de tecnología informática, como Conectividad, Seguridad Informática Comunicaciones Privadas de Voz Sobre Internet, Servicios en Internet y Soporte de Equipos y Redes. 2.3.1 Internet ADP (Acceso Dedicado Premium) Estos servicios de conectividad de alta velocidad o de Banda Ancha han sido diseñados para asegurar los más estrictos Niveles de Servicio al Usuario. Los niveles de servicio que demandan nuestros usuarios son con disponibilidad, velocidad, estabilidad, escalabilidad y seguridad, para su correcta operación y convivencia, además de un sin numero de aplicaciones ya existentes en Internet. 2.3.2 Internet ADP/SP (Acceso Dedicado Premium con Secure Plug-In) Es un servicio de acceso dedicado a Internet que se provee ya filtrado por un Firewall central ubicado en nuestro núcleo de origen de los servicios de conectividad. Con éste, usted podrá recibir un servicio de acceso a Internet libre de ataques, con modalidades de filtrado de contenido como son: la prohibición de acceso a páginas con pornografía, uso de programas de Chat, de música, etc. 2.3.3 Internet ADPP (Acceso Dedicado Premium Privado) También, tienen diseñadas otras soluciones de conectividad privada punto a punto o punto a multipunto, con las cuales pueden enlazar 2 o más 5

redes Lan entre las sucursales u oficinas de los clientes, y así integrar los servicios de voz, datos y video en forma privada y segura dentro de cualquier organización. 2.3.4 Soluciones WiFi AbaNet implementa soluciones de conectividad wireless" en aquellos casos que dadas las circunstancias del cliente, la inversión de una red cableada no lo compense. Las soluciones Inalámbricas ponen al servicio de las empresas las ventajas de la tecnología Wireless", cubriendo todas las etapas necesarias en el proyecto (consultoría, estudio de soluciones, presentación de proyecto, adquisición de productos, implementación, mantenimiento y formación). 2.3.5 VoIP Los servicios de Comunicación Privada de Voz sobre Internet de AbaNet incluyen: Administración general del proyecto, planeación, diseño y documentación de la infraestructura de red, implementación y puesta a punto de redes, entrenamiento técnico para usuarios finales, soporte técnico, instalación y puesta en operación del equipo base: servidor de administración de llamadas (Call Manager, IP-PBX, GateKeepers), Gateways (ATA s), teléfonos IP, etc. funciones opcionales: mensajería unificada (integración con correo electrónico), software adicional ( SoftPhone, Call Center, etc.), administración y monitoreo de la red. 6

3.3.6 AbaNet IPSuite CTX AbaNet IPSuite CTX es una solución completa de telefonía IP por software que proporciona todas las funcionalidades de los grandes conmutadores o PBX (buzón de voz, IVR, etc.), además de ofrecer grandes posibilidades y servicios no disponibles en ellos (grabación de llamadas, extensiones remotas, entre otras), presentamos con ustedes AbaNet CPV, la manera en que los PBX deberían ser. Es un sistema de comunicaciones inteligentes basado en software libre en donde convergen aplicaciones de voz y datos, tales como: Periféricos telefónicos IP: Núcleo de conmutación IP, Tarjetas digitales (E1, T1, ISDN), Tarjetas Análogas (FXS, FXO), Teléfonos IP, Gateways (GSM, TDM, TDMA, CDMA), Porteros IP, etc. Aplicaciones telefónicas: Contestadora Automática (IVR), Distribución Automática de Llamadas (ACD), Call Forward, Call Pick-Up, Call Park, Conferencias multiusuario, Música en espera, Reconocimiento de voz, Tarificador de llamadas, Etc. Servicios Telefónicos: Troncales SIP, Troncales digitales, Troncales analógicas. Conectividad Simétrica: Acceso simétrico exclusivo para servicios VoIP con Niveles de Servicio (SLA). Soporte Técnico Especializado: Mesa de ayuda 5x8 con acceso remoto inmediato y seguro, Contratos de mantenimiento preventivo y correctivo. AbaNet IPSuite CTX le permite olvidarse de los conmutadores tradicionales de telefonía, ya que es posible crecer desde 1 extensión 7

hasta 300 sin costos adicionales. Desde una oficina en casa, hasta una red corporativa con múltiples puntos de presencia. 2.3.7 Hospedaje de Sitios HTTP y FTP El hospedaje de sitios HTTP y FTP es ofrecer espacio dentro de los servidores de AbaNet para publicar su página Web, con opciones específicas de almacenamiento y características adaptables. Evite comprar costosos servidores; sólo pague lo que necesita. En AbaNet se dispone de la infraestructura necesaria para brindar atractivos Planes de Hospedaje y/o Co-ubicación de Servidores, Registro y Administración de Nombres de Dominio, Servicios de Webmail (Con anti-virus y Filtros anti-spam ), SSL (Servidor Seguro), Sistema de Estadísticas, Servidor de Base de Datos MySQL y File Maker operados por Lasso y PHP. 2.4 Definición del proyecto. Actualmente las empresas confían cada vez más en sus redes para mover los datos, facilitar la comunicación, y permitir operaciones básicas. La pérdida de rendimiento o la falla en un equipo de red puede constituir un serio impacto en empresas y negocios. Los desarrollos para monitoreo de redes que hoy en día existen, únicamente están basados para estaciones de trabajo, algunos se pueden acceder desde la interface Web, lo cual puede en ciertas ocasiones ser útil, 8

debido a la implementación de navegadores en los dispositivos móviles, sin embargo el rendimiento es distinto al proporcionado por la estación de trabajo. AbaNet como Proveedor de servicios de internet se preocupa por tener a la vanguardia sus equipos y software de monitoreo, mediante software propietario como IP Monitor se lleva a cabo el proceso de monitoreo de la red. Una de las desventajas de este software es el hecho de que si el personal se encuentra alejado de alguna estación de trabajo, es difícil monitorear los servicios. 9

III. JUSTIFICACIÓN Para un Ingeniero en Telecomunicaciones una de las principales prioridades es mantener una red 100% Operacional, y una variable con la que se trabaja cotidianamente es el tiempo de respuesta. Algunas Herramientas existentes cuentan con módulos que se encargan de enviar mensajes de texto con la descripción de una posible falla de algún equipo, sin embargo están limitados en cuanto al tiempo de respuesta, debido a que el proceso por el cual tiene que pasar el mensaje antes de llegar al dispositivo puede variar en cuanto a tiempo de recepción del mensaje, debido a diversos factores. La herramienta que se pretende desarrollar se basa en una aplicación móvil la cual se conectara a un servidor dentro de un punto estratégico de la red, para permitir el monitoreo en tiempo real de los dispositivos conectados desde cualquier lugar en el que se encuentre. 10

IV.OBJETIVOS 4.1 Objetivo General. Desarrollar una aplicación que sea capaz de servir de interfaz entre un dispositivo móvil y una aplicación del lado del servidor, la cual tiene como finalidad el monitoreo de la Red Interna de una empresa. 4.2 Objetivos Específicos. Evaluar alguna aplicación de monitoreo de red existente con la finalidad de utilizarla como fuente de información de red. Utilizar una aplicación existente como fuente de datos para ser interpretados por el dispositivo móvil. En caso de no existir aplicación, desarrollar una aplicación propia del lado del servidor que permita evaluar las condiciones actuales de la red. Desarrollar una interfaz para mostrar los datos enviados desde el servidor. 11

V. ALCANCES En este proyecto se elaborará una aplicación para un dispositivo móvil, la cual permita de una manera gráfica interpretar los datos del monitoreo de los dispositivos de una red. Para la elaboración de la interface se deberá investigar alguna herramienta de monitoreo, que proporcione los datos necesarios para poder ser interpretados por un dispositivo móvil. La forma de comunicación del dispositivo móvil con la aplicación de lado del servidor se realizara a través de Web Services, para lo que la respuesta dada por el mismo deberá ser en un formato estándar. Como lo es JSON, XML, RSS, ATOM. 12

VI. JUSTIFICACIÓN TEÓRICA 6.1 MONITOREO DE REDES 6.1.1 SNMP SNMP significa Protocolo simple de administración de red. Es un protocolo que les permite a los administradores de red administrar dispositivos de red y diagnosticar problemas en la red. El sistema de administración de red se basa en dos elementos principales: un supervisor y agentes. El supervisor es el terminal que le permite al administrador de red realizar solicitudes de administración. Los agentes son entidades que se encuentran al nivel de cada interfaz. Ellos conectan a la red los dispositivos administrados y permiten recopilar información sobre los diferentes objetos. Los conmutadores, concentradores (hubs), routers y servidores son ejemplos de hardware que contienen objetos administrados. Estos objetos administrados pueden ser información de hardware, parámetros de configuración, estadísticas de rendimiento y demás elementos que estén directamente relacionados con el comportamiento en progreso del hardware en cuestión. Estos elementos se encuentran clasificados en algo similar a una base de datos denominada MIB ("Base de datos de información de administración"). SNMP permite el diálogo entre el supervisor y los agentes para recolectar los objetos requeridos en la MIB. 13

La arquitectura de administración de la red propuesta por el protocolo SNMP se basa en tres elementos principales: Los dispositivos administrados son los elementos de red (puentes, concentradores, routers o servidores) que contienen "objetos administrados" que pueden ser información de hardware, elementos de configuración o información estadística; Los agentes, es decir, una aplicación de administración de red que se encuentra en un periférico y que es responsable de la transmisión de datos de administración local desde el periférico en formato SNMP; El sistema de administración de red (NMS), esto es, un terminal a través del cual los administradores pueden llevar a cabo tareas de administración. 6.1.2 ICMP El Protocolo de Mensajes de Control y Error de Internet, ICMP, es de características similares a UDP, pero con un formato mucho más simple, y su utilidad no está en el transporte de datos de usuario, sino en controlar si un paquete no puede alcanzar su destino, si su vida ha expirado, si el encabezamiento lleva un valor no permitido, si es un paquete de eco o respuesta, etc. Es decir, se usa para manejar mensajes de error y de control necesarios para los sistemas de la red, informando con ellos a la fuente original para que evite o corrija el problema detectado. ICMP proporciona así una comunicación entre el software IP de una máquina y el mismo software en otra. El protocolo ICMP solamente informa de incidencias en la entrega de paquetes o de errores en la red en general, pero no toma decisión alguna al respecto. Esto es tarea de las capas superiores. 14

Los mensajes ICMP se transmiten como datagramas IP normales, con el campo de cabecera "protocolo" con un valor 1, y comienzan con un campo de 8 bits que define el tipo de mensaje de que se trata. A continuación viene un campo código, de 8 bits, que a veces ofrece una descripción del error concreto que se ha producido y después un campo suma de control, de 16 bits, que incluye una suma de verificación de errores de transmisión. Tras estos campos viene el cuerpo del mensaje, determinado por el contenido del campo "tipo". Contienen además los 8 primeros bytes del datagrama que ocasionó el error. Los principales tipos de mensaje ICMP son los siguientes: 6.1.2.1 Mensajes informativos Entre estos mensajes hay algunos de suma importancia, como los mensajes de petición de ECO (tipo 8) y los de respuesta de Eco (tipo 0). Las peticiones y 15

respuestas de eco se usan en redes para comprobar si existe una comunicación entre dos host a nivel de capa de red, por lo que nos pueden servir para identificar fallos en este nivel, ya que verifican si las capas física (cableado), de enlace de datos (tarjeta de red) y red (configuración IP) se encuentran en buen estado y configuración. 6.1.2.2 Mensajes de error En el caso de obtener un mensaje ICMP de destino inalcanzable, con campo "tipo" de valor 3, el error concreto que se ha producido vendrá dado por el valor del campo "código", pudiendo presentar los siguientes valores que se muestran en la parte derecha. Este tipo de mensajes se generan cuando el tiempo de vida del datagrama a llegado a cero mientras se encontraba en tránsito hacia el host destino (código=0), o porque, habiendo llegado al destino, el tiempo de reensamblado de los diferentes fragmentos expira antes de que lleguen todos los necesarios (código=1). Los mensajes ICMP de tipo= 12 (problemas de parámetros) se originan por ejemplo cuando existe información inconsistente en alguno de los campos del datagrama, que hace que sea imposible procesar el mismo correctamente, cuando se envían datagramas de tamaño incorrecto o cuando falta algún campo obligatorio. Por su parte, los mensajes de tipo=5 (mensajes de redirección) se suelen enviar cuando, existiendo dos o más routers diferentes en la misma red, el paquete se envía al router equivocado. En este caso, el router receptor 16

devuelve el datagrama al host origen junto con un mensaje ICMP de redirección, lo que hará que éste actualice su tabla de enrutamiento y envíe el paquete al siguiente router. 6.1.3 ICINGA Un grupo de desarrolladores, incluyendo a miembros del Nagios Community Advisory, frustrados por la falta de progreso y de un plan de trabajo para Nagios, anunciaron así su propio fork de ese proyecto: ICINGA. De acuerdo a la explicación de sus motivaciones, los renegados desarrolladores citan, principalmente: Que el núcleo de Nagios es mantenido por un sólo desarrollador en los EE.UU. La consecuente lenta integración de los parches producidos por su comunidad. Que Nagios Enterprises LLC recientemente pidió a otros proyectos relacionados que cambiaran sus nombres o le transfirieran sus dominios. En su sitio web de ICINGA también puede apreciarse un contador regresivo según el cual podemos esperar su primer lanzamiento para dentro de 14 días. Nagios es un sistema open source de monitorización de redes ampliamente utilizado, que vigila los equipos (carga del procesador, uso de los discos, memoria, estado de los puertos, etc.) y servicios (SMTP, POP3, HTTP, SNMP, etc.) que se especifiquen, alertando cuando el comportamiento de los mismos no sea el deseado. 17

6.1.4 CACTI Cacti es una completa solución para la generación de gráficos en red, diseñada para aprovechar el poder de almacenamiento y la funcionalidad para gráficas que poseen la aplicación RRDtool. Esta herramienta, desarrollada en PHP, provee un pooler ágil, plantillas de gráficos avanzadas, múltiples métodos para la recopilación de datos, y manejo de usuarios. Tiene una interfaz de usuario fácil de usar, que resulta conveniente para instalaciones del tamaño de una LAN, así como también para redes complejas con cientos de dispositivos. 6.1.5 RRDtool RRDtool es el acrónimo de Round Robin Database tool. Se trata de una herramienta que trabaja con una base de datos que maneja planificación según Round-Robin. Esta técnica trabaja con una cantidad de datos fija, definida en el momento de crear la base de datos, y un puntero al elemento actual. El funcionamiento es el siguiente: se trata la base de datos como si fuese un círculo, sobrescribiendo los datos almacenados con anterioridad una vez alcanzada la capacidad máxima de la misma. Esta capacidad máxima dependerá de la cantidad de información que se quiera conservar como historial. Su finalidad principal es el tratamiento de datos temporales y datos seriales como temperaturas, transferencias en redes, cargas del procesador, etc. Algunos proyectos que utilizan RRDtool son: Cacti, Ganglia, JFFNMS,Lighttpd, MRTG, Munin, Smokeping, Zenoss, etc... 18

6.2 DISPOSITIVOS MOVILES Los dispositivos móviles (también conocidos como computadora de mano, «Palmtop» o simplemente handheld) son aparatos pequeños, con algunas capacidades de procesamiento, móviles o no, con conexión permanente o intermitente a una red, con memoria limitada, diseñados específicamente para una función, pero que pueden llevar a cabo otras funciones más generales. 6.2.1 Categorías Dado el variado número de niveles de funcionalidad asociado con dispositivos móviles, en el 2005, T38 y DuPont Global Mobility Innovation Team propusieron los siguientes estándares para la definición de dispositivos móviles: Dispositivo Móvil de Datos Limitados (Limited Data Mobile Device): dispositivos que tienen una pantalla pequeña, principalmente basada en pantalla de tipo texto con con servicios de datos generalmente limitados a SMS y acceso WAP. Un típico ejemplo de este tipo de dispositivos son los teléfonos móviles. Dispositivo Móvil de Datos Básicos (Basic Data Mobile Device): dispositivos que tienen una pantalla de mediano tamaño, (entre 120 x 120 y 240 x 240 pixels), menú o navegación basada en íconos por medio de una "rueda" o cursor, y que ofrecen acceso a e-mails, lista de direcciones, SMS, y un navegador web básico. Un típico ejemplo de este tipo de dispositivos son las BlackBerry y los Teléfonos Inteligentes. Dispositivo Móvil de Datos Mejorados (Enhanced Data Mobile Device): dispositivos que tienen pantallas de medianas a grandes (por encima de los 240 19

x 120 pixels), navegación de tipo stylus, y que ofrecen las mismas características que el "Dispositivo Móvil de Datos Básicos" (Basic Data Mobile Devices) más aplicaciones nativas como aplicaciones de Microsoft Office Mobile (Word, Excel, PowerPoint) y aplicaciones corporativas usuales, en versión móvil, como SAP, portales intranet, etc. Este tipo de dispositivos incluyen los Sistemas Operativos como Windows Mobile 2003 o versión 5, como en las Pocket PC. 6.3 DIRECCIÓN IP Una dirección IP es una etiqueta numérica que identifica, de manera lógica y jerárquica, a un interfaz (elemento de comunicación/conexión) de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red del protocolo TCP/IP. Dicho número no se ha de confundir con la dirección MAC que es un identificador de 48bits para identificar de forma única a la tarjeta de red y no depende del protocolo de conexión utilizado ni de la red. La dirección IP puede cambiar muy a menudo por cambios en la red o porque el dispositivo encargado dentro de la red de asignar las direcciones IP, decida asignar otra IP (por ejemplo, con el protocolo DHCP), a esta forma de asignación de dirección IP se denomina dirección IP dinámica (normalmente abreviado como IP dinámica). Los sitios de Internet que por su naturaleza necesitan estar permanentemente conectados, generalmente tienen una dirección IP fija (comúnmente, IP fija o IP estática), esta, no cambia con el tiempo. Los servidores de correo, DNS, FTP públicos y servidores de páginas web 20

necesariamente deben contar con una dirección IP fija o estática, ya que de esta forma se permite su localización en la red. A través de Internet, los ordenadores se conectan entre sí mediante sus respectivas direcciones IP. Sin embargo, a los seres humanos nos es más cómodo utilizar otra notación más fácil de recordar, como los nombres de dominio; la traducción entre unos y otros se resuelve mediante los servidores de nombres de dominio DNS, que a su vez, facilita el trabajo en caso de cambio de dirección IP, ya que basta con actualizar la información en el servidor DNS y el resto de las personas no se enterarán ya que seguirán accediendo por el nombre de dominio. 6.4 WEB SERVICES Un servicio web (en inglés, Web service) es una pieza de software que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares. 21

6.4.1 Estándares Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los servicios Web. XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a intercambiar. SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio. Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP(File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol). WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web. UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles. WS-Security (Web Service Security): Protocolo de seguridad aceptado como estándar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados. 22

6.4.2 Ventajas La principal razón para usar servicios Web es que se pueden utilizar con HTTP sobre TCP (Transmission Control Protocol) en el puerto 80. Dado que las organizaciones protegen sus redes mediante firewalls -que filtran y bloquean gran parte del tráfico de Internet-, cierran casi todos los puertos TCP salvo el 80, que es, precisamente, el que usan los navegadores. Los servicios Web utilizan este puerto, por la simple razón de que no resultan bloqueados. Es importante señalar que los servicios web se pueden utilizar sobre cualquier protocolo, sin embargo, TCP es el más común. Otra razón es que, antes de que existiera SOAP, no había buenas interfaces para acceder a las funcionalidades de otros ordenadores en red. Las que había eran ad hoc y poco conocidas, tales como EDI (Electronic Data Interchange), RPC (Remote Procedure Call), u otras APIs. Una tercera razón por la que los servicios Web son muy prácticos es que pueden aportar gran independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectar al otro. Esta flexibilidad será cada vez más importante, dado que la tendencia a construir grandes aplicaciones a partir de componentes distribuidos más pequeños es cada día más utilizada. Se espera que para los próximos años mejoren la calidad y cantidad de servicios ofrecidos basados en los nuevos estándares. 23

VII. PLAN DE ACTIVIDADES Investigar una herramienta de monitoreo que proporcione los datos para programar la interface gráfica. En base a la investigación, desarrollar los diagramas que permitan el control de las clases a desarrollar. Configurar un servidor de pruebas para la elaboración de dicha aplicación. Definir la plataforma para la cual será desarrollada la aplicación. Desarrollar las clases previamente definidas. Desarrollar las interfaces respetando los colores propios de la organización. Implementar el sistema en la red con 5 nodos de prueba. 24

VIII. RECURSOS MATERIALES Y HUMANOS 8.1 Recursos Materiales. Servidor para montar la aplicación. Dirección IP pública. Dispositivo móvil con sistema operativo (Android). PC o Laptop con emuladores para desarrollo de aplicaciones móviles. PC o Laptop con Herramienta para desarrollo, (Eclipse u Otra). 8.2 Recursos Humanos Analista Programador Revisor. 25

XI. DESARROLLO DEL PROYECTO 9.1 Análisis de las herramientas que actualmente se utilizan. El monitoreo de los servicios de conectividad que ofrece la empresa es de gran importancia, actualmente el NOC de Abanet cuenta con 2 equipos encargados de realizar dicha tarea. Uno de ellos es el denominado IpMonitor, el cual tiene la funcionalidad de a través del protocolo ICMP llevar el registro de la disponibilidad de los enlaces y dispositivos finales. Dicha herramienta cuenta con módulos que ayudan al encargado de Help Desk a encontrar el problema o darse una idea de donde puede estar el problema dentro de una Red. El otro equipo tiene instalado el Cacti, esta es una variante del Netmon. Esta aplicación tiene como tarea mostrar las graficas de consumo de ancho de banda por cliente. Estas dos herramientas son claves para la resolución de problemas, debido a que se puede descartar problemas de conectividad o incluso problemas de lentitud de servicio. 26

9.2 Proceso de investigación de herramienta de monitoreo. En la primera parte del proyecto se dio lugar el proceso de investigación de una aplicación de monitoreo existente, Esta investigación se llevo a cabo en el área de help desk de AbaNet, En el mercado existen muchas herramientas de este tipo, pero específicamente los parámetros que se buscaban de esta herramienta eran específicos, uno de estos parámetros es la forma en como cada herramienta proporciona los datos, es decir la facilidad de exportar la información de dicho proceso, para no duplicar esfuerzos. 9.2.1 NAGIOS Nagios fue la primera herramienta evaluada por sus características tiene funciones parecidas a las del Cacti, se podría decir que es la segunda versión de esta herramienta, es un software derivado de NetSaint, que funciona sobre plataformas GNU/ Linux. Este software permite realizar un modelo de una red cualquiera (no necesariamente fiel topológicamente) y aplicar sobre ésta ciertas acciones de monitoreo definidas por el administrador, permitiendo mantener un estado de la red actualizado constantemente, el cual se encuentra disponible mediante una interfaz web. Este monitoreo permite, además, generar alarmas bajo ciertas condiciones de la red, e incluso tomar acciones correctivas, siendo el software muy flexible en torno a que hacer' ante un evento. 9.2.2. CACTI Cacti es una completa solución de graficado en red, diseñada para aprovechar el poder de almacenamiento y la funcionalidad de graficar que poseen las RRDtool. Esta herramienta, desarrollada en PHP, provee un poller 27

ágil, plantillas de gráficos avanzadas, múltiples métodos para la recopilación de datos, y manejo de usuarios. Tiene una interfaz de usuario fácil de usar, que resulta conveniente para instalaciones del tamaño de una LAN, así como también para redes complejas con cientos de dispositivos. Requisitos: Servidor Web Apache, base de datos MySQL, intérprete PHP, RRDTool y NET-SNMP. 9.2.3 PANDORA FMS Pandora FMS (FMS viene de Flexible Monitoring System) es una aplicación de monitorización para vigilar todo tipo de sistemas y aplicaciones. Pandora FMS permite conocer el estado de cualquier elemento de sus sistemas de negocio. Pandora FMS vigila su hardware, su software, sus aplicaciones y por supuesto, su Sistema Operativo. Pandora FMS es capaz de detectar una interfaz de red que se ha caído, así como el movimiento de cualquier valor del NASDAQ. Si es necesario, Pandora FMS puede enviar un mensaje SMS cuando falle cualquier sistema o aplicación, o cuando el valor de Google caiga por debajo de los 330 US $. Pandora FMS se ajusta como un pulpo a sus sistemas y necesidades, ya que ha sido diseñado para ser abierto, modular, multiplataforma y fácil de personalizar sin necesidad de ser un experto desarrollador. Pandora FMS está hecha para administradores de sistemas, aunque se puede adaptar a todo tipo de entornos software o incluso hardware. 9.2.4 ICINGA (1) ICINGA es un software enterprise de código abierto para el monitoreo de redes y cualquier recurso de red imaginable, notificando al usuario de los 28

errores y las recuperaciones y genera los datos de rendimiento para la presentación de informes. 9.3 RESULTADOS DE LA INVESTIGACION En base al software investigado, a pesar de que las herramientas de monitoreo son open source, manejan sus datos de manera diferente y no hay forma en cómo se puedan obtener los resultados en tiempo real. Habría que meterse a fondo a investigar la herramienta y aun así arriesgar mayor tiempo de investigación. Por cuestiones de tiempo se decidió realizar una herramienta sencilla de monitoreo interno. Para lo cual se eligió Perl como lenguaje de programación, debido a que maneja scripts los cuales son fáciles de adaptar al sistema operativo Linux. 9.4 Conceptualización del modelo del Proyecto El proyecto se desarrollo mediante capas, para hacer más flexible su mantenimiento, esto nos ayudará a no mezclar arquitecturas. En el diagrama se muestra las tecnologías utilizadas para realizar el monitoreo. 29

En el primer nivel de la estructura se puede observar el sistema operativo Linux Ubuntu, el cual es parte del Core del sistema, los servicios básicos con los cuales debe contar el servidor de aplicación, son Mysql y Apache. En el segundo nivel están los lenguajes de programación de scripting (PHP y PERL), así mismo los estándares para enviar datos al dispositivo móvil (XML y JSON). En la capa superior se encuentra las aplicaciones para visualizar la información, de lado izquierdo esta Sencha Ext Js, que es un framework para manejo de instrucciones Javascript, este framework se utilizo para realizar la interface Web del sistema de monitoreo. 30

En la capa superior de lado derecho se implementa mediante java y el API de android la programación para la interface del dispositivo móvil. 9.5 Diagrama de funcionamiento En el diagrama se muestra el servidor que contendrá la base de datos y la aplicación donde estarán dados de alta todos los puntos a monitorear. Mediante el acceso del dispositivo móvil a un servicio ubicado en el servidor, se obtendrá la lista de los dispositivos en tiempo real. La conexión de los dispositivos puede ser se realizará mediante WIFI, EDGE, 3G o 4G. 31

9.6 Modelado de la Base de datos. 32

9.7 CLASES PERL Conexion -Estado : bool +Conectar() : bool +Desconectar() : bool Conexión Esta clase es para manipular la base de datos, posee dos métodos, conectar y desconectar, realiza las funciones básicas para la conexión con la base de datos. Poller Poller +TIPO : string +DIRECCION : string +BITS : int +VER_TIPO() : string +ESCRIBIR_TIPO() +VER_DIRECCION() +ESCRIBIR_DIRECCION() +VER_BITS() +ESCRIBIR_BITS() +PING_POLL() Clase fundamental para monitoreo. En esta clase se realiza el ping sobre el dispositivo a monitorear. El método que se encarga de realizar tal función es el PING_POLL Datos -id : string +ActualizarDB() +MostrarDB() Datos Clase para realizar las actualizaciones y la petición de las direcciones IP que se encuentran en la base de datos de mysql. 33

9.8 CLASES ANDROID Configuracion DetalleMonitor JSONParser -is -jobj : string(idl) -json : string(idl) +oncreate() + getjsonfromurl() +JSONParser() -Context +oncreate() +oncreateoptionsmenu() +onoptionsitemselected() MainActivity -Context -button +oncreate() + networkavailable() +msjnetworkavail() +onclick() +NoNetwork() -Context -Nombre : string(idl) -Tipo : string(idl) -Estado : boolean(idl) +oncreate() Principal -Context -datos +oncreate() +oncreateoptionsmenu() +onoptionsitemselected() +getview() Dispositivo -Context -descripcion -estado -tipo +oncreate() +oncreateoptionsmenu() +onoptionsitemselected() +getview() +getdescripcion() +setdescripcion() +getestado() +setestado() 9.9 PLATAFORMA DE DESARROLLO MOVIL (2) La plataforma móvil, para la cual se desarrolló la aplicación es android 2.2, debido a la facilidad de implementación, ya que android no requiere licencia para desarrollo. Para este desarrollo, las pruebas sobre las clases fueron ejecutadas en un celular Samsung Galaxy Ace GT-S5830L. Las características del equipo son las siguientes (6): 34

9.9.1 Plataforma Banda GSM y EDGE: 850/900/1,800/1,900 MHz Banda GSM y EDGE: 850/1,900 MHz HSDPA 7.2 Pantalla TFT Resolución: 320 x 480 HVGA Tamaño: 3.5 Procesador de 800 MHz y conectividad Wi-Fi 9.10 PHP (3) Para instalar PHP en nuestro servidor podemos utilizar apt-get. El paquete a instalar depende de la versión que deseemos instalar y la versión de apache. Lo normal es que utilicemos la versión 2 de apache y que instalemos la versión 5 de php. En tal caso deberíamos instalar libapache2-mod-php5: // Instalación de php5 para apache 2 # apt-get install libapache2-mod-php5 Al instalar libapache2-mod-php5 mediante apt-get, automáticamente se configura para integrarse perfectamente en apache, creando los archivos 35

necesarios en la carpeta de módulos disponibles de apache (/etc/apache2/mods-available) y creando los enlaces necesarios para habilitarlos en la carpeta de módulos habilitados de apache /etc/apache2/modsenabled) 9.10.1 Configuración de PHP El archivo de configuración de php5 es el archivo: // Archivo de configuración de php5 /etc/php5/apache2/php.ini Los parámetros más destacables a configurar son: Safe Mode = Off (Modo Seguro. Si el Modo seguro está desactivado, se habilitan todas las funciones del php. Para un uso educativo es mejor ser funcional y no activar el modo seguro. Si el Modo seguro está activado, se deshabilitan todas las funciones del php consideradas peligrosas. Para servicios de hosting se recomienda activar el modo seguro.) Display errors = On (Mostrar Errores. Muestra los errores en las mismas páginas, cuando les haya. Cuando hay errores en los scritps, es más fácil encontrarlos si se muestran en las páginas) 9.10.2 Probando PHP 36

Una vez instalado y configurado, antes de probar debemos reiniciar el servidor web apache: // Reiniciando apache /etc/init.d/apache restart Ahora crearemos una página php que utilice la función phpinfo que además de comprobar que apache y php están funcionando, nos mostrará una información de la versión. Crearemos el siguiente archivo: // Probando PHP. Crear archivo /var/www/phpinfo.php - permisos 644 <HTML> <h1>probando PHP</h1> <? phpinfo();?> </HTML> Ahora tan solo necesitamos arrancar el navegador e ir a la URL: http://ipdel-servidor/phpinfo.php. Si nos aparece la información de la versión de php significa que está correctamente instalado. 9.11 Instalación de Mysql Server 5.1.54. Para instalar y configurar MySQL desde el terminal en ubuntu 10.04.2 LTS, lo primero, actualizamos el sistema: sudo apt-get update 37

sudo apt-get upgrade El paso siguiente es instalar la versión estable de MySQL Server: sudo apt-get install mysql-sever mysql-common mysql-client Después de ejecutar el comando anterior te muestra información Desempaquetando el paquete mysql-server y Configurando mysql-server y mysql-client Para comprobar que está ejecutándose: sudo netstat -tap grep mysql Para conectarse con MySQL Server: mysql -u root p Te pregunta la password que has introducido durante el punto 3. Y te muestra el prompt mysql> donde puedes introducir sentencias SQL: Para ver un listado de las bases de datos: mysql> show databases; Para crear una nueva base de datos: mysql> create database wp_mibasededatos; 38

acceder: Creamos los usuarios que van a utilizar la base de datos y desde donde se les permite mysql>grant ALL ON wp_mibasededatos.* TO usuarios@localhost IDENTIFIED BY 'password'; sudo pico /etc/mysql/my.cnf 9.12 Instalación de Apache. (4) Para instalar Apache 2, ejecuta en el terminal de tu consola: sudo apt-get install apache2 Para comprobar que funciona perfectamente ejecuta: sudo /etc/init.d/apache2 restart Ubuntu a veces no define el nombre del servidor para Apache así que es bueno que lo hagamos. Edita apache2.conf: sudo gedit /etc/apache2/apache2.conf y añade esta línea: ServerName "your-server-name" que debería ir cerca a esta línea: ServerRoot "/etc/apache2" En realidad no necesitaremos este nombre del servidor pero vale la pena para evitar que Apache escupa advertencias en cada reinicio. Para comprobar que todo está en orden entra desde un navegador a: http://localhost 39

9.13 Instalación de PERL en Ubuntu (5) El soporte MySQL en Perl requiere que se hayan instalado el soporte de programación de cliente MySQL (bibliotecas y ficheros de cabecera). La mayoría de los métodos de instalación crean los ficheros necesarios. Sin embargo, si se instaló MySQL en Linux a partir de ficheros RPM, hay que asegurarse de haber instalado el RPM de desarrollo. Los programas cliente están en el RPM de cliente, pero el soporte a la programación se encuentra en el RPM de desarrollo. Si se desea instalar el soporte en Perl, los ficheros que se necesitarán pueden obtenerse desde la CPAN (Comprehensive Perl Archive Network, Red Integral de Archivo Perl) en http://search.cpan.org. La forma más sencilla de instalar módulos Perl en Unix es utilizar el módulo CPAN. Por ejemplo: shell> perl -MCPAN -e shell cpan> install DBI cpan> install DBD::mysql La instalación de DBD::mysql ejecuta una cantidad de pruebas. Estas pruebas intentan conectarse al servidor MySQL local, empleando el nombre de usuario y contraseña por defecto. (El nombre de usuario por defecto es el nombre usado para iniciar sesión en Unix, y en Windows es ODBC. La contraseña por defecto es sin contraseña. ). Si no se puede conectar al servidor con estos 40

valores (por ejemplo si la cuenta tiene una contraseña establecida), la prueba falla. Se puede emplear force install DBD::mysql para ignorar las pruebas fallidas. DBI requiere el módulo Data::Dumper. Es posible que esté instalado, de lo contrario, se debería instalar antes que DBI. Otra posibilidad es descargar las distribuciones de módulos en forma de ficheros tar comprimidos y compilar los módulos manualmente. Por ejemplo, para descompactar y compilar una distribución DBI, debe usarse un procedimiento como el siguiente: Descompactar la distribución en el directorio actual: shell> gunzip < DBI-VERSION.tar.gz tar xvf Este comando crea un directorio llamado DBI-VERSION. Hay que posicionarse en el directorio de más alto nivel de la distribución descompactada: shell> cd DBI-VERSION Compilar la distribución: shell> perl Makefile.PL shell> make shell> make test shell> make install 41

El comando make test es importante porque verifica que el módulo esté funcionando. Nótese que, al ejecutar este comando durante la instalación de DBD::mysql para ejercitar el código de la interfaz, el servidor MySQL debe estar funcionando o de lo contrario la prueba fallará. Es buena idea recompilar y reinstalar la distribución de DBD::mysql cada vez que se instale un nuevo release de MySQL, en particular si se advierte que todos los scripts DBI fallan luego de actualizar el servidor. Si no se tienen privilegios para instalar los módulos Perl en el directorio del sistema, o si se desean instalar los módulos en forma local, la siguiente referencia puede ser útil: http://servers.digitaldaze.com/extensions/perl/modules.html#modules 9.14 PERL 9.14.1 Mostrar Dispositivos de la base de datos #!/usr/bin/perl -w use DBI; $dbh = DBI->connect('dbi:mysql:monitoreo','???','???') or die "Connection Error: $DBI::errstr\n"; $sql = "select * from dispositivos"; $sth = $dbh->prepare($sql); $sth->execute or die "SQL Error: $DBI::errstr\n"; while (@row = $sth->fetchrow_array) { print "$row[3] - $row[7] -----> $row[6]\n"; 42

} $sth->finish; $dbh->disconnect; Actualización de Registros #!/usr/bin/perl -w use DBI; $dbh = DBI->connect('dbi:mysql:monitoreo','root','gallos') or die "Connection Error: $DBI::errstr\n"; $sql = "update dispositivos set last_result=8.8 where id=1"; $sth = $dbh->prepare($sql); $sth->execute or die "SQL Error: $DBI::errstr\n"; $sth->finish; $dbh->disconnect; 9.14.2 Manejo de hilos use strict; use threads; my $thread = threads->new(\&cuenta,0,10,1); # tambien funciona create('cuenta',0,10,1) my $thread2 = threads -> new(\&cuenta,100,110,1); # a la vez contamos de 10 a 20 cuenta(10,40,1); sub cuenta{ my ($inicio,$final,$paso) = @_; if($inicio > $final $paso < 0){ warn "# cuenta : no puedo contar asi ($inicio,$final,$paso)...\n"; } for(my $i=$inicio;$i<=$final;$i+=$paso) 43

} { } print "$i\n"; sleep(1); 9.14.3 Clase Poller #!/usr/local/bin/perl package Poleo; use strict; use Net::Ping; ###################################################################### #Constructor de la clase # sub new{ my $this=shift; #tomamos la clase que somos o una referencia a la clase. my $class = ref($this) $this; #Averiguo la clase a la que pertenezco my $self={}; #Inicializamos la tabla hash que contendrá las var. de instancia (TIPO, DIRECCION,BITS) $self ->{TIPO} =undef ; #La clase Poleo nace sin nombre $self ->{DIRECCION}= "0.0.0.0" ; #La clase Poleo se construye con IP 0.0.0.0 $self ->{BITS}= 64; #La clase Poleo es de 64 bits bless $self, $class; visto bueno. return ($self); construida } #Perl nos tiene que dar el #Devolvemos la clase recién ###################################################################### #Métodos de acceso a los datos de la clase # 44

#metodo para ver/cambiar el tipo sub tipo{ my $self=shift; #El primer parámetro de un metodo es la clase tipo #Miramos si se le ha pasado algún parámetro, en cuyo caso será el $self->{tipo}=shift if (@_); } #Devolvemos el tipo return $self->{tipo}; #metodo para ver/cambiar la direccion IP sub direccion{ my $self=shift; #El primer parámetro de un metodo es la clase IP } #Miramos si se le ha pasado algún parámetro, en cuyo caso será la $self->{direccion}=shift if (@_); return $self->{direccion}; #Devolvemos la IP sub ping_poll{ my $self=shift; #El primer parámetro de un metodo es la clase my $ip = $self->{direccion}; my $p = Net::Ping -> new( "icmp", 1, 64 ); if ( $p->ping($ip) ) { return "$ip answered\n"; } else { return "$ip did not answer\n"; } } ###################################################################### #Destructor # sub DESTROY { my $self=shift; #El primer parámetro de un metodo es la clase delete ($self->{tipo}); 45

delete ($self->{direccion}); delete ($self->{bits}); } #Fin ; Prueba de Poller #!/usr/bin/perl #Usamos el módulo/clase Persona use Poleo; #Creamos un objeto del tipo persona $uno= Poleo->new(); $dos= Poleo->new(); $tres= Poleo->new(); #Vamos a darle un nombre a ese objeto, usando el método nombre $uno->tipo("icmp"); $dos->tipo("icmp"); $tres->tipo("icmp"); #También vamos a darle una edad, usando el método edad $uno->direccion("201.158.0.93"); $dos->direccion("201.158.0.43"); $tres->direccion("yahoo.com.mx"); #Mostramos la edad y el nombre print "el resultado del ping a ".$uno->direccion." es: ".$uno- >ping_poll; print "el resultado del ping a ".$dos->direccion." es: ".$dos- >ping_poll; print "el resultado del ping a ".$tres->direccion." es: ".$tres- >ping_poll; 46

9.15 Interfaces PHP (Sistema de Monitoreo Web). 9.15.1 Interface de Monitoreo de dispositivos Interface web para monitorear los dispositivos, en la parte de la derecha se listan los equipos que se encuentran bajo monitoreo, el indicador de color verde significa que se encuentra encendido el equipo o que no presenta ningún problema. La segunda columna indica el estado del equipo, la 3era y 4ta columna indican la dirección IP y el tipo de monitoreo que se esta llevando a cabo, el valor por defecto para esta versión del sistema es ICMP. La última columna indica el tiempo de respuesta del último poleo realizado 47

9.15.2 Dispositivos a Prueba En la imagen se muestra más a detalle lo explicado anteriormente, dichas columnas tienen la opción de ser ordenadas, a través del puntero situado en el encabezado de cada una de estas. 9.15.3 Topología de AbaNet 48

Mediante esta interface el operador de la mesa de ayuda se da la idea de la red en general, cada dispositivo en la primera versión del sistema se muestra como un router. 9.16 Interfaces ANDROID (Sistema de Monitoreo Móvil). Dispositivo Samsung con sistema operativo android, en la imagen se muestra el icono para ingresar a la aplicación. 49

9.16.1 Pantalla de inicio del sistema Pantalla de ingreso monitoreo Móvil La pantalla de ingreso del sistema de monitoreo, muestra el logo de la empresa, así como una imagen descriptiva de las telecomunicaciones, tiene el botón Entrar para acceder al sistema. 9.16.2 Pantalla de usuario y contraseña Pantalla de usuario y contraseña Interface con la cual el cliente ingresara sus datos para loguearse a la aplicación. Se utiliza un sistema de encriptación para enviar el usuario y contraseña por http al servidor. 50

9.16.3 Lista de dispositivos en interface Móvil Pantalla de monitoreo Móvil Los campos para la autenticación son alfanuméricos y en el caso del campo de la contraseña, al detectar un carácter, imprime en el textbox puntos, por cada carácter digitado. 9.16.4 Topología de dispositivos de Red Menú de navegación Como su nombre lo indica, con este menú se puede ir a cualquier parte del sistema. esta accesible desde cualquier ventana del sistema, se habilita presionando el botón menú del dispositivo. Se muestran las opciones: Lista Topología Buscar Configuración Salir 51

9.16.5 Lista de dispositivos en interface Móvil Pantalla de monitoreo Móvil En la figura se muestra la pantalla del monitoreo a través del dispositivo móvil. La interface es sencilla de utilizar, posee un refresh cada n segundos, en dado caso de que se quiera actualizar el estatus de manera manual, se programo un botón para esa función. 9.16.6 Topología de dispositivos de Red Pantalla de Topología Para la interface Móvil, se ingreso la pantalla de topología, para poder proporcionarle al operador de la mesa de ayuda o al ingeniero de operaciones, las herramientas necesarias para poder ejecutar sus funciones. 52

9.16.7 Dispositivo Alarmado Lista de dispositivos En caso de que un dispositivo indique el estatus de down. El indicador del dispositivo se pondrá de color Rojo como lo indica la imagen. 9.16.8 Topología de Red Pantalla de dispositivo alarmado Para la interface Móvil, se ingreso la pantalla de topología, para poder proporcionarle al operador de la mesa de ayuda o al ingeniero de operaciones, las herramientas necesarias para poder ejecutar sus funciones. 53

9.16.9 Pantalla de búsqueda de dispositivo Búsqueda de dispositivos Con esta opción se tiene una manera rápida y sencilla de obtener información en especifico con respecto al enlace. 9.16.10 Pantalla de Configuración del sistema Pantalla de configuración Para la interface Móvil, se desarrollo la parte que servirá de interface para los objetos almacenados en el shared preferences. los datos principales de esta aplicación son la dirección IP del servidor, el tiempo de poleo de la aplicación y si habilitan o no la alarma. 54

9.16.11 Configuración de idiomas Cambio de idiomas (default) La aplicación tiene como opción cambiar de idioma, dependiendo al cual se tenga configurado en el teléfono, los idiomas soportados por esta versión del sistema son español (default), e inglés. 9.16.12 Error en la conexión de RED Pantalla de error de conexión. Para evitar problemas de error, en caso de que no se encuentre ninguna manera de conectar con el servidor, el sistema envía un mensaje al usuario, indicando dicho fallo. 55

X. RESULTADOS OBTENIDOS Los resultados esperados sobre el proyecto, fueron satisfactorios, debido a que se requería desarrollar una aplicación para que desde cualquier lugar donde exista cobertura de internet (WIFI, 3G, Edge) se pueda consultar el estado de los dispositivos de la red. Para el área de Help Desk y Operaciones de AbaNet, esto es de gran utilidad, debido a que agiliza la capacidad de respuesta de los Ingenieros al momento de monitorear los dispositivos. Al ser una aplicación Stand Alone, nos permite tener en el celular una herramienta la cual, cuenta con la confianza de que funcionara con todas las características descritas, debido a que se desarrolla en específico para el sistema operativo de Android. En estos momentos la aplicación se encuentra en periodo de prueba, donde se esta evaluando el performance de la aplicación poller en PERL, algunos de los parámetros a evaluar son consumo de CPU al momento de realizar el poleo y el ancho de banda consumido por poleo. En base a las pruebas se continuara escalando el proyecto para dar mucha mayor funcionalidad y optimizar el sistema para bajar los tiempos de respuesta en caso de falla de algún dispositivo de red. 56

XI. ANÁLISIS DE RIESGOS Riesgo Impacto Acción correctiva No contar con infraestructura de comunicación Grave Realizar la solicitud de la infraestructura de comunicación de manera anticipada para realizar pruebas. No contar con servicio de Internet en el Dispositivo Móvil Grave Contratar plan de datos para los miembros del área de operaciones y Help Desk. Problemas de conectividad en relación a los servicios dentro del servidor Grave Generar un Script para validar el estatus de los servicios en el servidor. Problemas de energía eléctrica en el POP donde se situara el servidor Grave Agregar el equipo a la pastilla que cuenta con baterías de respaldo, para dar un margen de disponibilidad Mayor. Acceso no autorizado al sistema Medio Generar validaciones de usuarios al entrar al sistema. 57

Riesgo Impacto Acción correctiva Problemas de usabilidad en el sistema Medio Realizar la documentación correspondiente al uso del sistema Falta de Recursos para contratación de plan de datos en celulares Grave N/A depende del área de administración 58

XII. CONCLUSIONES El proyecto realizado para AbaNet, ha logrado cumplir los objetivos generales que se tenían en relación a este. Ya que permite monitorear la red en tiempo real, desde cualquier punto, utilizando un dispositivo móvil. En la parte del aprendizaje personal, me fue de gran ayuda elaborar el proyecto, debido a que se amplió mi panorama en relación al uso de estos dispositivos, me sirvió para identificar los puntos en los cuales se pueden desarrollar aplicaciones móviles y hasta donde se puede pensar en un desarrollo, considerando las limitaciones del Hardware en el dispositivo. Dentro de la parte de investigación de la herramienta de monitoreo, me queda como experiencia el hecho de que a pesar de que actualmente existen muchos productos que prácticamente realizan la misma función, no todos se adaptan a las características especificas del área donde se integrará. Por lo que para resolver el problema se debe de desarrollar alguna aplicación que sirva de traductor entre los lenguajes de programación que se estén utilizando. Para el desarrollo de la herramienta de monitoreo se utilizaron varias aplicaciones para poder generar un sistema funcional, a pesar de que estas aplicaciones o lenguajes de programación de principio se desconocían, existió un proceso de aprendizaje en estas aplicaciones, el cual no fue contemplado dentro del diagrama de Gantt, Sin embargo la naturaleza del desarrollo nos fue abriendo las puertas para llegar al objetivo final. 59

XIII. RECOMENDACIONES Hoy en día debido a la introducción del internet casi en cualquier equipo es posible relacionarlo con cualquier tecnología, una de las recomendaciones para el sistema de monitoreo sería contar con un sistema de alarmas basado en VoIP, para cuando algún equipo pierda el enlace, automáticamente se comunique una computadora a través del protocolo SIP, indicando la caída del dispositivo. Dicha funcionalidad se llevaría a cabo a través de un servidor Asterisk de código abierto, el cual tendría asignados los intérpretes para reconocer el dispositivo alarmado y así poder emitir el mensaje. Otra de las recomendaciones que se darían para este proyecto, sería la posibilidad de programar la misma aplicación para ser utilizada con los dispositivos de MAC como los IPhone. Para proporcionar mayor movilidad de plataformas a los usuarios del sistema. 60

XIV. ANEXOS 14.1 INSTALACION UBUNTU 1.- El primer paso después de insertar el CD con la distribución de ubuntu, es seleccionar el idioma. Instalación Primero debemos seleccionar el idioma para la instalación, y el que definitivamente será instalado. Aunque siempre podemos cambiarlo en Ubuntu. En mi caso English. 61

Se establece el área donde se realizará la instalación. Ubuntu 10.04 es capaz de detectar automáticamente el layout, pero elegiremos no. 62

Seleccionamos la región en este caso de ejemplo, seleccionamos españa Seleccionamos el layout/distribucción del teclado manualmente 63

Escaneando el CD-rom Cargando componentes... Detectando el hardware de red Configurando la red mediante DHCP, si este proceso falla podremos configurarla de modo manual 64

Configuramos el nombre de la máquina, el nombre del servidor Debemos seleccionar la región/territorio para que el reloj funcione correctamente. Ubuntu 10.04 en base a la distribución de teclado nos hará una recomendación. 65

El instalador ahora va a detectar las unidades de disco del sistema y arrancar el particionador. Hasta ahora todo lo seleccionado podrá cambiarse una vez el sistema esté instalado, pero el siguiente paso es mas delicado. Tenemos que decirle al instalador en qué partición o disco duro queremos instalar el sistema. Tratándose de una máquina virtual básica, para un fin educativo o de testeo simplemente seleccionaré "utilizar todo el disco", y dejaré que ubuntu se instale según su convención de carpetas basada en Debian. La versión 10.04 incorpora LVM de forma predeterminada, permitiendo que el sistema escale en número de discos y particiones. Recomiendo una lectura profunda en la documentación de LVM, sobretodo si usted es manager/responsable de IT en su empresa. 66

Una vez hemos escogido la opción del particionador tendremos que seleccionar la partición correspondiente o disco completo. Tendremos que confirmar que se apliquen los cambios a la unidad de disco, esto aplicará permanentemente la configuración seleccionada y NO se puede deshacer una vez aplicada. 67

En la versión 10.04 de Ubuntu hay que decirle, del disco o partición seleccionado, cuanto espacio vamos a utilizar para esta instalación. En versiones anteriores simplemente se ocupaba todo el disco o partición. 68

confirmación Ahora se cargará el particionador para aplicar los cambios después de la Confirmamos los cambios para que se apliquen Formateando las particiones Instalando el sistema base en la partición recientemente creada, esto tardará un poco 69

Configuramos el nombre del usuario principal Configuramos una cuenta de usuario (no root) para el primer login. Ubuntu no asigna contraseña a root por defecto, es necesario loguearse en el sistema como un usuario normal y luego asignarle a root una contraseña. 70

Asignamos una contraseña para el usuario que estamos creando Encriptar su carpeta de usuario 71

Si dispone de acceso a internet el servicio APT (de provisión de paquetes automático del repositorio de ubuntu) se configurará para acceder al repositorio del proyecto y descargar las actualizaciones de seguridad. Si no dispone de configuración a internet el CD de instalacíon actuará de repositorio. 72

Selección de paquetes para el sistema, ubuntu puede descargar del CD de instalación o de la conexión activa a internet algunos paquetes por comodidad del administrador, pero por supuesto mediante apt es posible descargaros manualmente una vez instalado. 73

Proceso de instalación del software seleccionado Ubuntu utiliza GRUB como gestor de arranque, si usted dispusiera de varios sistemas operativos instalados en su sistema, a través de grub podría escoger con cual arrancar. No aplica en este caso de máquina virtual. 74

Finalizando la instalación 75

Primer login, debe identificarse con el usuario configurado en la instalación 76