HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

84
UNIVERSIDAD CENTRAL “MARTA ABREU” DE LAS VILLAS FACULTAD DE MATEMÁTICA, FÍSICA Y COMPUTACIÓN DEPARTAMENTO DE CIENCIA DE LA COMPUTACIÓN HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA POSTGRESQLTESIS PRESENTADA EN OPCIÓN AL TÍTULO ACADÉMICO DE MÁSTER EN CIENCIA DE LA COMPUTACIÓN Autor: Ing. Dayani Flores Pérez Tutor: Dr. Rosendo Moreno Rodríguez Santa Clara, 2011

Transcript of HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Page 1: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

UNIVERSIDAD CENTRAL “MARTA ABREU” DE LAS VILLAS FACULTAD DE MATEMÁTICA, FÍSICA Y COMPUTACIÓN DEPARTAMENTO DE CIENCIA DE LA COMPUTACIÓN

“HERRAMIENTA LIBRE DE MONITOREO Y CONTROL

PARA POSTGRESQL”

TESIS PRESENTADA EN OPCIÓN AL TÍTULO ACADÉMICO DE MÁSTER

EN CIENCIA DE LA COMPUTACIÓN

Autor:

Ing. Dayani Flores Pérez

Tutor:

Dr. Rosendo Moreno Rodríguez

Santa Clara, 2011

Page 2: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …
Page 3: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Resumen

I

RESUMEN

El desarrollo y perfeccionamiento de herramientas que complementan la utilización de

las bases de datos ha marcado, sin dudas, un hito en la revolución tecnológica en que

está inmerso el mundo. Sin embargo el privilegio de usar estas herramientas ha sido solo

un sueño para muchos pues los precios a pagar son muy altos. Cuba, incluida en esta

lista, ha tomado algunas alternativas, como la creación de aplicaciones autóctonas que

garanticen una independencia tecnológica. Como parte de esta estrategia se han

necesitado herramientas que además de gestionar las bases de datos, monitoreen el

funcionamiento de estas, es por ello que el objetivo central de esta tesis es el desarrollo

de una aplicación que, aparte de resolver esta problemática, funcione sobre la web 2.0 y

permita identificar los problemas de rendimiento del gestor. Durante su confección se

estudiaron y caracterizaron las herramientas más utilizadas para el monitoreo y control

de bases de datos en PostgreSQL. Para conocimiento de los lectores se describen y

justifican las tecnologías y herramientas de software libre que fueron utilizadas durante

el desarrollo de la aplicación. Se muestran en varias imágenes los Casos de Uso del

sistema, diagramas de clase y de componentes más significativos y se detalla el

diagrama de despliegue que documenta la implantación del sistema. Finalmente y con el

objetivo de facilitar la interacción de los usuarios con la herramienta, se realiza una

descripción de las funcionalidades que posee a través de un esbozo del Manual de

Usuario.

Page 4: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Abstract

II

ABSTRACT

The development and refinement of tools that complement the use of databases has

made, no doubt, a milestone in the technological revolution the world is immersed.

However, the privilege of using these tools has been a dream for many because prices

are too high to pay. Cuba included in this list, has taken some alternatives, like creating

native applications guaranteeing technological independence. As part of this strategy it

has been needed tools are to manage databases, monitor the operation of these, which is

why the main objective of this thesis is to develop an application that besides solving

this problem, work on web 2.0 and allows to identify performance issues of the database

manager. During its development the most used tools for monitoring and control of

PostgreSQL databases were studied and characterized. As additional information for

readers the free software technologies and tools that were used during the development

of the application are described and their used is justified.. Multiple images are shown

in the Use Cases of the system, class diagrams and most significant components and is

also detailed the deployment diagram that documents the implementation of the system.

Finally and in order to facilitate user interaction with the tool, there is a description of

the functionality held through an outline of the User Manual.

Page 5: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Índice

III

ÍNDICE

INTRODUCCIÓN .............................................................................................................. 1

CAPÍTULO I: ASPECTOS GENERALES DEL MONITOREO Y CONTROL PARA

POSTGRESQL. .................................................................................................................. 6

1.1 Gestor de bases de datos PostgreSQL ................................................................. 6

1.1.1. Características de PostgreSQL ..................................................................... 7

1.1.2. Ventajas de PostgreSQL .............................................................................. 8

1.2 Monitoreo. Apuntes generales. ........................................................................... 9

1.3 Herramientas de monitorización para PostgreSQL. .......................................... 10

1.3.1 Nagios ........................................................................................................ 10

1.3.2 Zabbix ........................................................................................................ 11

1.3.3 Pandora FMS ............................................................................................. 11

1.3.4 Zenoss ........................................................................................................ 11

1.3.5 Nino ........................................................................................................... 12

1.3.6 OpenNMS .................................................................................................. 12

1.3.7 MRTG (The Multi Router Traffic Grapher) .............................................. 13

1.3.8 Munin ......................................................................................................... 13

1.3.9 PgFouine .................................................................................................... 14

1.3.10 PQA ........................................................................................................... 15

1.3.11 PGStatinfo .................................................................................................. 15

1.3.12 Pgwatch ...................................................................................................... 16

1.3.13 LogicMonitor - PostgreSQL Monitoring ................................................... 16

1.3.14 Ion Oracle .................................................................................................. 17

1.3.15 Tabla comparativa de las herramientas. ..................................................... 18

1.4 Ambiente de desarrollo de la aplicación. .......................................................... 20

1.4.1 Lenguajes de programación ....................................................................... 21

1.4.1.1 Python .................................................................................................... 21

1.4.1.2 HTML .................................................................................................... 23

1.4.1.3 Java Script .............................................................................................. 24

1.4.1.4 CSS ......................................................................................................... 25

Page 6: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Índice

IV

1.4.2 Frameworks de desarrollo .......................................................................... 25

1.4.2.1 Django .................................................................................................... 26

1.4.3 Librerías ..................................................................................................... 27

1.4.3.1 ExtJS ...................................................................................................... 27

1.4.3.2 Highcharts .............................................................................................. 28

1.4.4 Herramientas complementarias .................................................................. 29

1.4.4.1 Eclipse .................................................................................................... 29

1.4.4.2 Visual Paradigm ..................................................................................... 30

1.5 Conclusiones del capítulo ................................................................................. 31

CAPÍTULO II: FUNCIONALIDADES Y MODELADO DE LA HERRAMIENTA. ......... 32

2.1 Funcionalidades de la herramienta. ................................................................... 32

2.2 Arquitectura del sistema. ................................................................................... 34

2.3 Diagrama de Casos de Uso del Sistema. ........................................................... 36

1.5.1 Descripción de casos de uso. ..................................................................... 37

2.4 Diagramas de clases. ......................................................................................... 43

2.4.1 Módulo Servicio Web ................................................................................ 43

2.4.2 Módulo Interfaz gráfica ............................................................................. 44

2.5 Diagramas de secuencia. ................................................................................... 46

2.6 Diseño de la base de datos. ............................................................................... 49

2.7 Conclusiones del capítulo. ................................................................................ 52

CAPÍTULO III: IMPLEMENTACIÓN Y DESCRIPCIÓN DE USO. .............................. 53

3.1 Implementación. ................................................................................................ 53

3.1.1 Diagramas de componentes. ...................................................................... 53

3.1.2 Diagrama de despliegue. ............................................................................ 56

3.2 Esbozo del manual de usuario. .......................................................................... 58

3.2.1 Área de servicios registrados. .................................................................... 59

3.2.2 Área de estadísticas. ................................................................................... 61

3.2.3 Área de visualización de datos. .................................................................. 64

3.3 Conclusiones del capítulo. ................................................................................ 66

CONCLUSIONES ............................................................................................................ 67

Page 7: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Índice

V

RECOMENDACIONES ................................................................................................... 68

REFERENCIAS BIBLIOGRÁFICAS ............................................................................... 69

BIBLIOGRAFÍA ............................................................................................................... 73

GLOSARIO DE TÉRMINOS ............................................................................................ 75

ÍNDICE DE FIGURAS

Figura 1: Diagrama de integración de tecnologías................................................................ 35

Figura 2: Diagrama de casos de uso del sistema. .................................................................. 36

Figura 3: Diagrama de clases del módulo Servicio Web. .................................................... 44

Figura 4: Diagrama de clases del módulo Interfaz Gráfica. ................................................ 45

Figura 5: Diagrama de secuencia del CU Registrar servicio web....................................... 47

Figura 6: Diagrama de secuencia del CU Mostrar datos de Procesos del SO. .................. 48

Figura 7: Diagrama de secuencia del CU Mostrar datos de Transacciones a las BD. ..... 49

Figura 8: Modelo físico del almacén de datos de la aplicación........................................... 51

Figura 9: Tablas de hechos del almacén de datos de la aplicación. .................................... 52

Figura 10: Diagrama de componentes para el CU Registrar servicio web. ....................... 54

Figura 11: Diagrama de componentes para el CU Mostrar datos de Transacciones a las

BD. .............................................................................................................................................. 55

Figura 12: Diagrama de componentes para el CU Mostrar datos de Procesos del SO. ... 56

Figura 13: Diagrama de despliegue de la aplicación. ........................................................... 57

Figura 14: Interfaz principal de la aplicación. ....................................................................... 58

Figura 15: Área de servicios web registrados. ....................................................................... 59

Figura 16: Interfaz para registrar un nuevo servicio web. ................................................... 60

Figura 17: Menú para gestionar servicios web registrados. ................................................. 60

Figura 18: Interfaz para conectar un servicio web. ............................................................... 60

Figura 19: Interfaz para desconectar un servicio web. ......................................................... 61

Figura 20: Interfaz para eliminar un servicio web. ............................................................... 61

Figura 21: Estadísticas para el Sistema Operativo. ............................................................... 62

Figura 22: Estadísticas para la Tablas de la BD. ................................................................... 63

Figura 23: Interfaz para las estadísticas de los Archivos de registro.................................. 63

Page 8: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Índice

VI

Figura 24: Menú para visualizar las estadísticas. .................................................................. 63

Figura 25: Interfaz donde se ubicarán las métricas por estadísticas. .................................. 64

Figura 26: Interfaz de visualización de gráficas. ................................................................... 64

Figura 27: Interfaz de visualización de tablas. ...................................................................... 65

Figura 28: Listado de tiempo para actualizar las gráficas. ................................................... 66

ÍNDICE DE TABLAS

Tabla 1: Variables dependientes e independientes de la hipótesis de investigación. ........ 3

Tabla 2: Tabla comparativa de las herramientas. ............................................................ 19

Tabla 3: Estadísticas a desarrollar en la herramienta. ...................................................... 33

Tabla 6: Descripción del CU Registrar servicio web. ..................................................... 37

Tabla 4: Descripción del CU Mostrar datos de Procesos del SO. ................................... 39

Tabla 5: Descripción del CU Mostrar datos de Transacciones a las BD. ........................ 41

Page 9: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Introducción

- 1 - Monitoreo y control para PostgreSQL

INTRODUCCIÓN

El término de bases de datos fue escuchado por primera vez en 1963, en un simposio

celebrado en California, EE.UU. ―Una base de datos se puede definir como un conjunto de

información relacionada que se encuentra agrupada o estructurada, o sea, una serie de datos

organizados y relacionados entre sí, los cuales son recolectados y explotados por los

sistemas de información de una empresa o negocio en particular‖.(Valdés, 2008)

Las bases de datos (BD) en la actualidad constituyen el motor impulsor en el desarrollo de

cualquier empresa informatizada por pequeña que fuese. Como consecuencia se han

desarrollado, a escala mundial y de forma vertiginosa, gran cantidad de aplicaciones que

garanticen un perfecto funcionamiento, administración y control de los gestores de bases de

datos.

Los Sistemas Gestores de Bases de Datos (SGBD), pueden definirse como un paquete

generalizado de software, que se ejecuta en un sistema computacional anfitrión,

centralizando los accesos a los datos y actuando de interfaz entre los datos físicos y el

usuario. ―Las principales funciones que debe cumplir un SGBD se relacionan con la

creación y mantenimiento de la base de datos, el control de accesos, la manipulación de

datos de acuerdo con las necesidades del usuario, el cumplimiento de las normas de

tratamiento de datos, evitar redundancias e inconsistencias y mantener la integridad‖.

(Frost, 1989)

El rápido desarrollo de las tecnologías en el amplio mundo de estos gestores ha provocado

una privatización de la mayoría de las herramientas que existen vinculadas al tema, y

aunque estos tiempos son protagonistas de innumerables intentos por hacer de dichas

herramientas una nueva opción con tecnologías libres, es indudable que aún existen

deficiencias.

Cuba es un país bloqueado, y las tecnologías también lo han sido, es por ello que se ha

propuesto migrar hacia plataformas libres que garanticen una independencia en este

sentido. El tema de las bases de datos se suma a lista de cambios que necesita el país, y el

Page 10: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Introducción

- 2 - Monitoreo y control para PostgreSQL

resultado de estudios realizados han arrojado como mejor opción utilizar PostgreSQL como

gestor de bases de datos.

PostgreSQL es un sistema de gestión de bases de datos, objeto-relacional y libre, publicado

bajo la licencia BSD. ―Una de las ventajas de la utilización de este gestor, además de ser

considerado el mejor de código abierto por su amplia gama de características, reside en su

licencia ya que esta no impone ninguna restricción a los desarrolladores de software en lo

referente a la utilización posterior del código en productos derivados y licencias de estos

programas.‖ (Malcer, 2010)

A raíz de la estrategia de migración, se ha concebido crear un sistema cubano para la

gestión de bases de datos con tecnologías libres y sobre la Web 2.0, basado en el

PostgreSQL como SGBD objeto relacional. Sin embargo, a pesar de las características y

mejoras que posee PostgreSQL, se ha hecho común entre los usuarios que lo utilizan

expresar los problemas de rendimiento con el gestor, situación que no cambiará con la

creación de la herramienta cubana, pues ―proporcionalmente el 60% de los problemas de

rendimiento están dados por el mal uso de las expresiones SQL, el 20% se le atribuye a un

mal modelado de la base de datos y el resto pertenece a partes iguales a una mala

configuración ya sea del SGBD o del sistema operativo.‖ (Oliveira, 2008)

En la actualidad los encargados de analizar el funcionamiento de las bases de datos,

identifican estos problemas de rendimiento del gestor PostgreSQL utilizando, en su

mayoría, un conjunto de herramientas que deben ser configuradas por consola, con

interfaces poco atractivas y que proporcionan escasa información de la actividad del gestor.

Esta situación obliga a los administradores a utilizar métodos alternativos para obtener los

datos necesarios, pero debido a la insuficiente documentación del tema en ocasiones esta

tarea se ve entorpecida.

De la situación anterior se identifica el siguiente problema científico: ¿cómo determinar

los problemas que afectan el rendimiento del gestor PostgreSQL?

Page 11: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Introducción

- 3 - Monitoreo y control para PostgreSQL

Por esta razón se plantea como objetivo general de la investigación: elaborar una

herramienta sobre la Web 2.0 para el monitoreo y control de la explotación y

funcionamiento de PostgreSQL, que permita identificar los problemas que afectan el

rendimiento de este gestor.

Del objetivo general de la investigación se derivan los siguientes objetivos específicos:

1. Caracterizar varias de las herramientas de monitoreo y control que existen para

PostgreSQL.

2. Definir las tecnologías de software libre adecuadas que permitan elaborar una

aplicación sobre la Web 2.0 para monitorear el rendimiento de PostgreSQL.

3. Realizar el análisis y diseño de la aplicación utilizando UML.

4. Implementar la aplicación sobre la Web 2.0.

Las especificaciones anteriores permiten la composición de la siguiente hipótesis de

investigación: al desarrollar una herramienta para monitorear el rendimiento del

SGBDOR PostgreSQL, se logrará que los administradores gestionen el funcionamiento e

identifiquen los problemas del mismo, en ejecuciones reales.

Variables

Tabla 1: Variables dependientes e independientes de la hipótesis de investigación.

Independientes Dependientes

Herramienta para monitorear el

funcionamiento de PostgreSQL.

Gestionar el funcionamiento de

PostgreSQL

Identificar los problemas de

rendimiento de PostgreSQL.

Para dar cumplimiento a las tareas planteadas se han seleccionado varios métodos de

investigación. Entre los métodos teóricos están: el Analítico-Sintético para el análisis de

los métodos de monitoreo y control de bases de datos que existen actualmente así como

documentos, técnicas y herramientas, permitiendo la extracción de los elementos más

importantes y la elaboración de conclusiones; y el Análisis Histórico-Lógico para el estudio

Page 12: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Introducción

- 4 - Monitoreo y control para PostgreSQL

de la evolución y desarrollo de las herramientas de monitoreo y control. Se utiliza además

como método empírico la Entrevista, como técnica de recopilación de información. El tipo

de investigación utilizado en la presente tesis es el descriptivo.

Justificación de la investigación

Como parte de la necesidad de Cuba de lograr una independencia tecnológica, se proponen

varias ideas como optimizar el uso de las aplicaciones que pueden ser utilizadas por la poca

cuota monetaria que representan. Es por ello que la identificación de problemas de

rendimiento en PostgreSQL además de apoyar el uso de este gestor y garantizar un mejor

funcionamiento del mismo, le ahorraría a las empresas y usuarios gastos en licencias de

software.

Aportes de la investigación

El valor práctico de esta investigación está en lograr el desarrollo una herramienta, con la

utilización de tecnologías libres y sobre la web 2.0, para monitorear PostgreSQL y que

integrándose a la Interfaz de Administración, agrupe las características de las aplicaciones

de monitoreo y control existentes y posibilite a los usuarios identificar los problemas de

rendimiento del gestor.

El valor metodológico consiste en la integración de varias tecnologías libres como se

detallan a continuación.

Interacción entre la biblioteca de componentes gráficos ExtJS y el framework de

desarrollo Web Django, a través de la confección de una plantilla HTML donde son

incluidos los ficheros JavaScript que contienen la implementación de las interfaces

de usuario publicada a través de una vista en Django. Además, para cargar los datos

de las interfaces se crean vistas en Django, hacia donde serán enviadas las consultas

AJAX de la biblioteca ExtJS en formato JSON.

Comunicación entre Django y las bibliotecas ExtJS y Highcharts, esta última

utilizada para las gráficas. Para lograr un correcto acople y permitir que el código

de las gráficas estuviera embebido en el código JavaScript de la interfaces creadas

Page 13: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Introducción

- 5 - Monitoreo y control para PostgreSQL

con ExtJS se hizo necesario la utilización de consultas en JQuery para la

comunicación con las urls que provee Django.

Interacción entre Django y el protocolo XMLRPC utilizado para la publicación del

servicio web. Para ello se registran en el fichero settings.py de un proyecto Django

los métodos del servicio web que luego son publicados mediante http para ser

accedidos desde la aplicación.

El documento está dividido en tres capítulos que se describen a continuación:

Capítulo I: “Aspectos generales del monitoreo y control para PostgreSQL”: se establecen

los conceptos tratados durante la investigación y se describen las herramientas de

monitoreo y control que existen actualmente para PostgreSQL. Además se justifica la

selección de las tecnologías a utilizar durante el desarrollo de la aplicación.

Capítulo II: “Funcionalidades y modelado de la herramienta”: se exponen las

funcionalidades, arquitectura y modelado de la herramienta a través de diagramas.

Capítulo III: “Implementación y descripción de uso”: se muestran diagramas de

componente y despliegue como representación de la implementación, para concluir con un

esbozo del manual de usuario que especifique la manipulación y uso de la aplicación

Seguidamente se presentan las conclusiones y las recomendaciones del trabajo, así como

las referencias y bibliografía utilizadas.

Page 14: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 6 -- Monitoreo y control para PostgreSQL

CAPÍTULO I: ASPECTOS GENERALES DEL MONITOREO

Y CONTROL PARA POSTGRESQL.

Dentro del estudio y desarrollo de sistemas tecnológicos en el campo electrónico y

computacional, se hace necesario satisfacer las necesidades de la industria, las mismas

que requieren herramientas que automaticen labores pesadas y realicen controles

autónomos, ayudando a un desarrollo más rápido y óptimo de tareas, que de otro modo,

se convertirían en actividades tediosas y susceptibles de errores. Una de las tareas más

importantes de los administradores de sistemas o de redes, es realizar periódicamente el

monitoreo de su entorno, para encontrar tendencias y anticiparse a los problemas.

Es por ello que en este capítulo se exponen algunos apuntes generales sobre el

monitoreo y las principales características del gestor de bases de datos que se desea

monitorear. Además se realiza un estudio de las herramientas más conocidas en este

tema complementada con una tabla comparativa, así como las tecnologías utilizadas para

el desarrollo de la herramienta de monitoreo objetivo de esta tesis.

1.1 Gestor de bases de datos PostgreSQL

PostgreSQL es un Sistema de Gestión de Bases de Datos Objeto-Relacionales

(ORDBMS) que ha sido desarrollado de varias formas desde 1977. ―Comenzó como un

proyecto denominado Ingres en la Universidad Berkeley de California. Ingres fue más

tarde desarrollado comercialmente por la Relational Technologies/Ingres Corporation.

En 1986 otro equipo dirigido por Michael Stonebraker de Berkeley continuó el

desarrollo del código de Ingres para crear un sistema de bases de datos objeto-

relacionales llamado Postgres. En 1996, debido a un nuevo esfuerzo de código abierto y

a la incrementada funcionalidad del software, Postgres fue renombrado a PostgreSQL,

tras un breve periplo como Postgres95. El proyecto PostgreSQL sigue actualmente un

activo proceso de desarrollo a nivel mundial gracias a un equipo de desarrolladores y

contribuidores de código abierto.

Page 15: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 7 -- Monitoreo y control para PostgreSQL

PostgreSQL está ampliamente considerado como el sistema de bases de datos de código

abierto más avanzado del mundo‖.(González, Carlos D. 2011)

1.1.1. Características de PostgreSQL

PostgreSQL proporciona un gran número de características que normalmente sólo se

encontraban en las bases de datos comerciales tales como DB2 u Oracle. La siguiente es

una breve lista de algunas de esas características, a partir de PostgreSQL 7.1.x.

“Objeto-Relacional: aproxima los datos a un modelo objeto-relacional, y es

capaz de manejar complejas rutinas y reglas. Ejemplos de su avanzada

funcionalidad son consultas SQL declarativas, control de concurrencia multi-

versión, soporte multi-usuario, transacciones, optimización de consultas,

herencia, y arreglos.

Altamente extensible: soporta operadores, métodos de acceso y tipos de datos

definidos por el usuario.

Soporte SQL: soporta la especificación SQL99 e incluye características

avanzadas tales como las uniones (joins) de SQL92.

Integridad referencial: soporta integridad referencial, la cual es utilizada para

garantizar la validez de los datos de la base de datos.

API Flexible: la flexibilidad del API de PostgreSQL ha permitido a los

vendedores proporcionar soporte al desarrollo fácilmente para el RDBMS

PostgreSQL. Estas interfaces que incluye pueden ser escritas en el lenguaje

Object Pascal, Python, Perl, PHP, ODBC, Java/JDBC, Ruby, TCL, C/C++, y

Pike.

Lenguajes procedurales: tiene soporte para lenguajes procedurales internos,

incluyendo un lenguaje nativo denominado PL/pgSQL. Este lenguaje es

comparable al lenguaje procedural de Oracle, PL/SQL. Otra ventaja de

PostgreSQL es su habilidad para usar Perl, Python, o TCL como lenguaje

procedural embebido.

Cliente/Servidor: usa una arquitectura proceso-por-usuario cliente/servidor. Esta

es similar al método del Apache 1.3.x para manejar procesos. Hay un proceso

Page 16: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 8 -- Monitoreo y control para PostgreSQL

maestro que se ramifica para proporcionar conexiones adicionales para cada

cliente que intente conectar a PostgreSQL. (González, Carlos D. 2011)

Restricciones y disparadores: tienen la función de mantener la integridad y

consistencia en la BD. Consisten en la ejecución de acciones antes o después de

un evento de BD.

Múltiples tipos de datos predefinidos: como todos los manejadores de bases de

datos, PostgreSQL implementa los tipos de datos definidos para el estándar

SQL3 y aumenta algunos otros.

Conectividad TCP/IP, JDBC y ODBC.

Interfaz con diversos lenguajes: C, C++, Java, Delphi, Python, Perl, PHP, Bash,

etc‖. (Camps Paré, Rafael 2005)

1.1.2. Ventajas de PostgreSQL

El sistema de gestión de bases de datos PostgreSQL ofrece muchas ventajas respecto a

otros sistemas de bases de datos, algunas de ellas son:

“Instalación ilimitada, ya que no hay costo asociado a la licencia del software.

Esto tiene varias ventajas adicionales:

Modelos de negocios más rentables con instalaciones a gran escala.

No existe la posibilidad de ser auditado para verificar cumplimiento de

licencia en ningún momento.

Flexibilidad para hacer investigación y desarrollo sin necesidad de incurrir

en costos adicionales de licenciamiento.

Mejor soporte, pues cuenta con una importante comunidad de profesionales.

Ahorros considerables en costos de operación ya que el software ha sido

diseñado y creado para tener un mantenimiento y ajuste mucho menor que los

productos de los proveedores comerciales, conservando todas las características,

estabilidad y rendimiento.

Page 17: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 9 -- Monitoreo y control para PostgreSQL

Estabilidad y confiabilidad, puesto que PostgreSQL nunca ha presentado caídas

en varios años de operación de alta actividad.

Extensible ya que el código fuente está disponible para todos sin costo.

Multiplataforma pues PostgreSQL está disponible en casi cualquier Unix y para

Windows.

Diseñado para ambientes de alto volumen ya que usa una estrategia de

almacenamiento de filas llamada MVCC para conseguir una mejor respuesta en

ambientes de grandes volúmenes.

Herramientas gráficas para administrar las bases de datos (pgAdmin, pgAccess)

y para hacer diseño de bases de datos (Tora, Data Architect)‖.(Grupo de

desarrollo, 2003)

1.2 Monitoreo. Apuntes generales.

Monitoreo es un término no incluido en el diccionario de la Real Academia Española

(RAE). ―Su origen se encuentra en monitor, que es un aparato que toma imágenes de

instalaciones filmadoras o sensores y que permite visualizar algo en una pantalla. El

monitor, por lo tanto, ayuda a controlar o supervisar una situación, es por ello que el

monitoreo, a rasgos generales, consiste en la observación del curso de uno o más

parámetros para detectar eventuales anomalías”.(Grupo "Definición.de", 2008)

Este concepto se traduce a los sistemas gestores de bases de datos, a los cuales es

necesario monitorear para garantizar un funcionamiento óptimo. Sin embargo, para que

esto sea completo debe incluir varios aspectos, entre los que se encuentran:

―Monitoreo en tiempo real‖, determinado por la forma en que se presentan los

datos, ya sea en gráficos, tablas, alarmas u otros.(García, 2008)

―Monitoreo en el tiempo o por datos históricos‖, establecido por la capacidad de

mostrar datos tomados con anterioridad, principalmente utilizados para hacer

estudios de corto, mediano y largo plazo. (Retout, 2008)

Page 18: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 10 -- Monitoreo y control para PostgreSQL

Estadísticas recolectadas, que pueden ser obtenidas de las ―tablas del catálogo, el

sistema operativo y los archivos de registro‖. (Consorcio SIU, 2011)

1.3 Herramientas de monitorización para PostgreSQL.

En la actualidad se han desarrollado un amplio número de herramientas con el propósito

de monitorear recursos, sistemas o sencillamente gestores de bases de datos, algunas

especializadas y otras no. En su mayoría presentan deficiencias o inconvenientes, por lo

que se ha decidido realizar un análisis de algunas de estas herramientas con el objetivo

de seleccionar sus características y desventajas más significativas y tenerlas en cuenta

durante la elaboración de la aplicación propuesta, sin olvidar que la misma deberá ser

especializada en el monitoreo para el gestor PostgreSQL. Como parte del estudio de

mercado se incluirán además herramientas de propósito general y para el sistema gestor

de bases de datos Oracle por su amplia aceptación a nivel mundial.

1.3.1 Nagios

Originalmente llamado NetSaint (años 1999 a 2001), Nagios es un monitor de servidores

y aplicaciones diseñado originalmente para informar de problemas de una forma

proactiva, reportándolos vía email, SMS, mensaje instantáneo y/o solucionándolos

automáticamente antes de que el cliente o usuario final pueda darse cuenta de los

mismos. ―Probablemente Nagios haya sido el padre de todos los sistemas de

monitorización bajo Linux, pudiendo tanto su servidor como los agentes, ejecutarse

únicamente desde este entorno. Estos agentes, permiten monitorear equipos instalados

en cualquier lugar con cualquier tipo de conexión. Ellos son los que se encargan de

recoger los datos y enviarlos a un servidor central.

La potencia de Nagios viene dada por un sistema de plugins externos, encargados de

enviar la información requerida. Estos plugins pueden programarse de una forma

sencilla en bash o en Perl, dando una potencia y flexibilidad sin igual a la herramienta.

Aunque la configuración es poco amigable, está basado en Web, donde se puede

consultar el estado actual de los equipos, históricos e informes. Su sistema de alarmas es

Page 19: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 11 -- Monitoreo y control para PostgreSQL

perfecto para dar un vistazo y ver qué está fallando dentro de la red‖. (Grupo Nagios,

2009)

1.3.2 Zabbix

Zabbix (nacido en el año 2001) es una solución de monitorización de bajo coste, capaz

de recoger datos de cualquier aplicación o servidor, con un sistema de envío y captura de

datos a través de sus agentes. Es importante señalar que ―Zabbix es capaz de monitorear,

además, equipos Windows, AIX, FreeBSD, HP-UX, OpenBSD y Solaris ―desde dentro‖

y personalizar sus agentes con parámetros definidos por el usuario. La ventaja de Zabbix

reside en su interfaz web soportado por una base de datos SQL (MySQL, PostgreSQL o

SQLite). Posee un sistema proactivo que permite solucionar automáticamente los

problemas, un sistema de monitorización, alertas y visualización de gráficos que no

tienen otros sistemas de monitorización, ni siquiera los mejores programas comerciales‖.

(Grupo Zabbix, 2001)

1.3.3 Pandora FMS

Relativamente joven (Año 2005), Pandora FMS (Free Monitoring System) permite, a

través de agentes analizar el estado y rendimiento de los diferentes parámetros ofrecidos

por cualquier plataforma del mercado (Linux, Solaris, MS Windows, AIX y otros).

―Todas las comunicaciones se realizan a través de SSH, FTP, NFS o un contenedor

XML para transportar los datos que se guardarán en una base MySQL de un Servidor

Central, el cual, será el encargado de recopilar cada uno de esos datos y mostrarlos en

una magnífica interfaz Web. Hay que recalcar que Pandora FMS permite controlar

sistemas Windows a través de WMI, ideal para redes en compañías con instalaciones

mixtas Linux/Windows‖. (Grupo Pandora FMS, 2005)

1.3.4 Zenoss

Zenoss del año 2006, es un software que sorprende por su capacidad e interfaz

simplemente echando un vistazo a su página Web. Funciona sobre Linux, FreeBSD y

Page 20: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 12 -- Monitoreo y control para PostgreSQL

como novedad, sobre Mac OS X y VMWare Player, pudiendo ejecutarse de ésta manera

sobre Linux o Windows de la forma más sencilla posible. ―Zenoss se distribuye en rpm

para su instalación automática bajo RedHat, CentOS y Fedora Core 6. Para Suse,

Debian, Ubuntu, FreeBSD, Gentoo, Solaris 10 y Mac OS X, se distribuyen las fuentes

para ser compilados en cada uno de los sistemas mencionados.

Tiene una interfaz similar al de Nagios. De hecho, puede importar sus plugins y, aunque

su configuración no es todo lo sencilla que debería, es capaz de detectar los equipos de

nuestra red automáticamente utilizando SSH. Zenoss no necesita agentes en las

máquinas remotas, ya que con SSH puede ejecutar de forma segura cualquier comando

que deseemos para extraer todo tipo de información. Para monitorear máquinas

Windows, utiliza un binario que conecta usando WMI para modelar sus servicios. Por

último, mencionar que el sistema de gráficos que utiliza es similar al de MRTG‖. (Grupo

Zenoss, 2005)

1.3.5 Nino

―Permite gestionar enrutadores, conmutadores, servidores y aplicaciones. Está pensado

para redes locales, ya que no dispone de agentes que puedan reportar a un servidor

central. Basado en Web, Nino no destaca por su interfaz, nada cómodo de gestionar.

Utiliza SNMP, HTTP/TCP y WMI. Sus gráficos son suficientes para una pequeña red

con máquinas Linux y Windows‖. (Gerstel, Jorgen 2009)

1.3.6 OpenNMS

Es experto en monitorear equipos en una red local a través de SNMP con un sistema

muy robusto de notificaciones. Es, junto con Nagios, el padre de la monitorización

remota. ―Posee una buena interfaz web, aunque la evaluación de los datos mostrados se

hace a veces complicada. Su demo en línea puede dar una muy buena idea de su

funcionamiento y evaluarlo sin necesidad de instalarlo en nuestro equipo‖. (Grupo

OpenNMS, 2000)

Page 21: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 13 -- Monitoreo y control para PostgreSQL

1.3.7 MRTG (The Multi Router Traffic Grapher)

―MRTG es la referencia para la monitorización y medición de carga en una red. Escrito

en Perl, puede trabajar en Linux, Unix, Windows Mac OS y NetWare y utiliza SNMP

para recoger los datos. Aunque su instalación y configuración no es muy intuitiva, su

consumo de recursos es tan pequeño y su información tan valiosa que merece la pena

instalarlo. Utiliza RRDtool como sistema de base de datos para MRTG y Cacti como

interfaz Web para RRDtool‖. (Oetiker, Tobias 2011)

1.3.8 Munin

Munin es un programa de monitorización de servidores que genera estadísticas sobre el

funcionamiento de los recursos como memoria, disco duro y servicios. Utiliza las

herramientas RRDtool para generar gráficas de rendimiento de los parámetros del

sistema analizado. ―Utiliza una interfaz web para mostrar las gráficas generadas, permite

trabajar de forma distribuida, mostrando la información de varios servidores. Para ello se

instala en un servidor la parte servidora de Munin y en el resto la parte cliente, que

mandará los datos recopilados al servidor para que éste los muestre. Está hecho en Perl y

permite el uso de plugins, lo cual lo hace realmente versátil. Algunos de esto plugins

permiten:

Mostrar el número de conexiones en idle, espera y conectadas

(pg__connections).

Mostrar el tamaño de base de datos suministrado por pg_database_size

(pg__db_size).

Mostrar todos los posibles bloqueos desde PostgreSQL (pg__locks).

Mostrar todos datos desde una base de datos para una vista específica

(pg__stat_database).

Mostrar todos las columnas en pg_stat_*_tables, excepto *vacuum y *analyze

(pg__stat_tables).

Page 22: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 14 -- Monitoreo y control para PostgreSQL

Mostrar todas las columnas en pg_statio_*_tables (pg__statio_tables) y mostrar

todas las columnas en pg_stat_bgwriter (pg__stat_bgwriter)‖.(Grupo Munin,

2009)

1.3.9 PgFouine

Esta herramienta es un analizador de registros desarrollada en PHP, orientada a objetos y

utiliza los archivos de registro (log file) para generar informes detallados que

proporcionan la información necesaria para optimizar y acelerar el trabajo en el gestor

PostgreSQL. PgFouine es un software gratuito y se distribuye bajo la licencia GPL. El

mismo fue diseñado para analizar grandes archivos de registro con baja utilización de

memoria y basado en el analizador PQA que se describirá más adelante. Desde la

primera versión de PgFouine, liberada en noviembre del 2005, su grupo de desarrollo ha

realizado cambios, correcciones y adición de nuevas funcionalidades hasta obtener la

versión 1.2 publicada en febrero del año 2010.

Algunas de sus características son:

―Soporta la función de log_prefix de PostgreSQL 8.x.

Genera informes de errores y opciones de líneas de comando para dichos

informes.

Genera informes de las estadísticas por hora, con la creación de gráficos.

Posibilita el filtrado de las consultas de bases de datos o usuarios.

Posee opciones de titularidad, syslogident y memoryLimit.

Contiene además el analizador de registro Vacuum Verbose y una herramienta

llamada Tsung para generar archivos de registro en XML.

Soporte para listas y expresiones regulares en bases de datos de usuario y

opciones de filtro.

Además de las características mencionadas PgFouine utiliza GeSHi para colorear

consultas SQL, Artichow para dibujar gráficos, SimpleTest para las pruebas unitarias y

Sorttable para hacer varias tablas ordenadas dinámicamente‖.(Copeland, 2010)

Page 23: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 15 -- Monitoreo y control para PostgreSQL

1.3.10 PQA

Practical Query Analysis (PQA) es una herramienta desarrollada en Ruby bajo la

licencia BSD, que genera reportes en formato HTML de las consultas más lentas, las

más frecuentes, por tipo (select/insert/update/delete) para PostgreSQL y MySQL. La

primera versión distribuida en mayo del 2004 constituyó la base para una sucesión de

cambios y mejoras en la aplicación, hasta obtener la versión 1.6 publicada en noviembre

del 2005.

Entre sus principales características se encuentran:

―Normalización de consultas.

Creación de reportes por frecuencia de las consultas.

Exporta las consultas en formato HTML.

Colorea las palabras claves de SQL en el informe HTML.

Contiene soporte para el uso de los archivos de registro de PostgreSQL.

Contiene soporte para analizar la duración de las consultas de PostgreSQL.

Posee capacidad para manejar los registros LOG_PID / log_timestamp /

log_connection de PostgreSQL.

Posee soporte para el análisis de los archivos de registro de MySQL.

Un reporte general realizado con la herramienta proporcionaría cuatro tipos de

estadísticas: consultas por tipo, consulta que ocupó la mayoría del tiempo, consultas más

lentas y consultas más frecuentes‖. (Copeland, 2005)

1.3.11 PGStatinfo

Es una herramienta para monitorear las estadísticas y la actividad de PostgreSQL. Ha

sido desarrollado en C y Perl, y distribuido bajo la licencia BSD. ―Se basa

principalmente en las estadísticas recogidas de la tabla pg_stats de PostgreSQL. Esta

tabla proporciona el acceso a la información almacenada en el catálogo pg_statistic. Esta

vista permite el acceso sólo a las filas de pg_statistic que corresponden a las tablas a las

Page 24: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 16 -- Monitoreo y control para PostgreSQL

que el usuario tiene permiso para leer, por lo que es seguro permitir el acceso de lectura

pública de este punto de vista‖.(Kasahara, 2009)

1.3.12 Pgwatch

Pgwatch es una herramienta fácil de usar de la empresa Cybertec. Funciona solo para

PostgreSQL 9,0. Este sistema recoge estadísticas periódicamente de las BD PostgreSQL

que le interesan y almacena toda la información en una base de datos PostgreSQL local.

Tiene un amplio conjunto de gráficos predefinidos que recogen información de:

―I/O de disco.

Caché en el tiempo.

Caché de tablas / índices.

La actividad del sistema.

Conexiones de base de datos.

Consultas activas.

Número de transacciones (commit, rollback, etc).

Optimizador de la información.

Exploraciones secuenciales.

Examen de los índices.

Pgwatch además proporciona una hoja de trabajo para utilizar SQL y ejecutar consultas

en el servidor, el tamaño de las bases de datos y un dashboard para obtener una visión

rápida de lo que está pasando‖.(Grupo Pgwatch, 2002)

1.3.13 LogicMonitor - PostgreSQL Monitoring

Con LogicMonitor se puede dar seguimiento de varias bases de datos PostgreSQL en

cuestión de minutos. No necesita secuencias de comando para instalarlo, ni bibliotecas

que configurarlo. LogicMonitor descubre automáticamente las bases de datos

PostgreSQL, e informa de todos los indicadores importantes de rendimiento. Además

controla la salida de cualquier consulta, y la monitorización de aplicaciones específicas.

La herramienta recopila algunas estadísticas como:

Page 25: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 17 -- Monitoreo y control para PostgreSQL

―CPU

I/O de disco

Memory/Swap

Actividad de la BD

Operaciones de la BD

Ejecución de consultas.

Uso de disco.

Conexiones

Bloqueos.

LogicMonitor está disponible para suscripciones mensuales. Los precios se basan en el

número de dispositivos, por ejemplo:

Un total de 15 equipos: $ 20 al mes por cada dispositivo.

16 a 20 equipos: $ 13 al mes por cada dispositivo adicional.

21 a 50 equipos: $ 11 al mes por cada dispositivo adicional.

51 a 75 equipos: $ 9 al mes por cada dispositivo adicional.

Desde 76 hasta 100 dispositivos: $ 7 al mes por cada dispositivo adicional.

La herramienta almacena los datos de hasta 1 año, así que es fácil ver las tendencias

históricas, detectar patrones de uso, y estimar las necesidades de crecimiento

futuro‖.(Grupo LogicMonitor, 2008)

1.3.14 Ion Oracle

Ion Oracle es una nueva herramienta de ajuste de rendimiento que analiza el estado de

sus bases de datos Oracle. Ion es capaz de obtener una visión única del rendimiento de

su sistema de Oracle. Está formado por tres partes integrantes:

Ion Expert: analiza los eventos de espera, los parámetros de E/S, y mucho más

para ofrecer asesoramiento adaptado a su sistema.

Page 26: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 18 -- Monitoreo y control para PostgreSQL

Ion Metrics: permite trazar cualquier métrica, visualizar los datos a través del

tiempo, un promedio por hora del día o el día de la semana, e incluso con líneas

de tendencia y predicción.

Ion Scripts: proporciona más de un centenar de estadísticas útiles en formato de

gráficos y texto, para ayudar a analizar el sistema.

―Posee muchas características distribuidas en las tres partes descritas con anterioridad

entre las que se encuentran:

Permite acceder a los componentes básicos en casi cualquier métrica utilizada en

el sistema.

Muestra informes personalizables.

Compatible con la versión de Oracle 10g y 11g.

Contiene una interfaz de eventos para el monitoreo detallado a nivel de sesión y

de sistema.

Realiza un monitoreo en tiempo real y el tiempo.

Monitoriza y controla los bloqueos.

Permite ver los detalles al momento e históricos de los objetos como las tablas,

índices, vistas materializadas, uso de CPU y más.

Posee cuadros de mando personalizados para un seguimiento regular

Controla los objetos y el crecimiento de las base de datos.‖(Burleson Enterprises

2009)

1.3.15 Tabla comparativa de las herramientas.

Como se muestra en la tabla 2 se realiza un resumen de las herramientas explicadas en

acápites anteriores. De forma general se pueden observar que las mismas pueden ser de

propósito específico y de propósito general, prestándole menor atención a estas últimas

puesto que la herramienta desarrollada se dedicará de forma exclusiva al monitoreo del

gestor PostgreSQL.

Page 27: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 19 -- Monitoreo y control para PostgreSQL

Tabla 2: Tabla comparativa de las herramientas.

De aquellas que son de interés en este estudio se puede apreciar que existen algunas

herramientas propietarias, y aunque se encuentran bastante completas en cuestión de

funcionalidades, son inaccesibles para la mayoría de los usuarios por sus altos impuestos

en licencias.

Por otra parte las herramientas libres como PgFouine, PQA y PGStatinfo carecen de

funcionalidades y deben ser configuradas por consola, característica que les quita

prestigio ante los usuarios pues hacen el trabajo más engorroso.

Munin, sin embargo es una herramienta bastante completa pero pasa por alto la

obtención de estadísticas de los archivos del registro del gestor y no permite un

monitoreo por datos históricos.

Herramientas

Libre Web Propósito

específico

Tipo de monitoreo Tipo de estadísticas Deficiencias

principales

Nagios X X Tiempo real

Zabbix X X Tiempo real y por

datos históricos

Pandora FMS X X Tiempo real

Zenoss X X Tiempo real y por

datos históricos

Nino X X Tiempo real

OpenNMS X X Tiempo real y por

datos históricos

MRTG X X Tiempo real y por

datos históricos

Munin X X X Tiempo real SO y Tablas del

catálogo

Falta archivos de

registro del gestor

PgFouine X Cliente X Tiempo real Log Configuración por

consola

PQA X Cliente X Tiempo real Tablas del catálogo Configuración por

consola

PGStatinfo X Cliente X Tiempo real Tablas del catálogo Configuración por

consola

Pgwatch X X X Tiempo real y por

datos históricos

SO y tablas del

catálogo

Solo para

PostgreSQL 9.0

LogicMonitor X X Tiempo real y por

datos históricos

SO y tablas del

catálogo

Propietario

Ion Oracle X Tiempo real y por

datos históricos

SO y tablas del

catálogo

Propietario

Page 28: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 20 -- Monitoreo y control para PostgreSQL

Una de las herramientas más completa es Pgwatch, pues cumple con la mayoría de las

funcionalidades que se buscan en un monitoreo correcto a excepción de la extracción de

datos de los archivos del registro, sin embargo suponiendo que esto no fuera tan

importante se presenta una deficiencia que es imposible obviar pues esta herramienta

solo funciona para PostgreSQL 9.0, haciéndola inaccesible para aquellos usuarios que no

trabajen sobre dicha versión.

Por lo anteriormente expuesto se concluye que la aplicación a desarrollar deberá

contener las funcionalidades presentes en estas herramientas y además aquellas de las

que son carentes. Las características que poseerá la herramienta propuesta se expondrán

en próximos acápites.

1.4 Ambiente de desarrollo de la aplicación.

Con el desarrollo de las tecnologías, libres y propietarias, se han incrementado las

opciones de selección de un ambiente de desarrollo adecuando y ajustable a las

características de un determinado software.

Para el caso de la herramienta a desarrollar, objetivo de esta tesis, se decide optar por

tecnologías libres, debido a los altos precios que impone el software propietario.

Tomando como base las particularidades del monitoreo para un SGBD y lo que deberá

mostrar dicha herramienta se decide utilizar:

HTML, JavaScript y CSS como lenguaje de programación del lado del cliente,

pues la aplicación deberá ser Web.

Python como lenguaje de programación del lado del servidor.

Librería ExtJS en su versión 3.0 para las interfaces de usuario.

Librería Highcharts para graficar las estadísticas que se mostrarán en la

herramienta.

Page 29: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 21 -- Monitoreo y control para PostgreSQL

Django escrito en Python como framework web para la comunicación cliente -

servidor.

XMLRPC para la publicación del servicio web con la utilización de la librería

xmlrpclib para Python.

Psycopg2 para conectarse utilizando Python a los servidores en PostgreSQL.

Eclipse como IDE de programación.

Visual Paradigm para el modelado de la herramienta.

A continuación se describen las características de las herramientas seleccionadas.

1.4.1 Lenguajes de programación

Los lenguajes de programación descritos en este acápite se dividen en dos tipos:

Lenguajes del lado del servidor que son reconocidos, ejecutados e interpretados

por el propio servidor y que se envían al cliente en un formato comprensible

para él.

Lenguajes del lado cliente y que pueden ser directamente comprendidos por el

navegador y no necesitan un pre tratamiento.

1.4.1.1 Python

Python es un lenguaje de guión o scripting independiente de plataforma y orientado a

objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones

Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado que

ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor

velocidad. En los últimos años el lenguaje se ha hecho muy popular, gracias a varias

razones como:

Page 30: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 22 -- Monitoreo y control para PostgreSQL

La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en

el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad

de tener que programarlas desde cero.

La sencillez y velocidad con la que se crean los programas.

La cantidad de plataformas en las que se desarrollar, como Unix, Windows,

OS/2, Mac, Amiga y otros.

Es gratuito, incluso para propósitos empresariales.

Entre sus principales características se encuentran:

“Propósito general, pues se pueden crear todo tipo de programas.

Multiplataforma.

Interpretado, ya que no se debe compilar el código antes de su ejecución.

Interactivo, pues dispone de un intérprete por línea de comandos en el que se

pueden introducir sentencias. Cada sentencia se ejecuta y produce un resultado

visible.

Orientado a Objetos.

Funciones y librerías, ya que dispone de muchas funciones incorporadas en el

propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además,

existen muchas librerías que se importan en los programas para tratar temas

específicos como la programación de ventanas o sistemas en red o cosas tan

interesantes como crear archivos comprimidos en .zip.

Sintaxis clara, pues tiene una sintaxis muy visual, gracias a una notación

identada (con márgenes) de obligado cumplimiento. Para separar las porciones

de código en Python se debe tabular hacia dentro, colocando un margen al

código que iría dentro de una función o un bucle. Esto ayuda a que todos los

programadores adopten unas mismas notaciones y que los programas de

cualquier persona tengan un aspecto muy similar‖.(Python community, 1990)

Page 31: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 23 -- Monitoreo y control para PostgreSQL

Xmlrpclib

Esta es una librería de Python que tributa a XMLRPC para la comunicación con el

servicio web. XMLRPC es un protocolo de llamada a procedimiento remoto que usa

XML para codificar los datos y HTTP como protocolo de transmisión de mensajes.

―Es un protocolo muy simple ya que solo define unos cuantos tipos de datos y comandos

útiles, además de una descripción completa de corta extensión. La simplicidad del

XMLRPC está en contraste con la mayoría de protocolos RPC que tiene una

documentación extensa y requiere considerable soporte de software para su uso‖.

(Mateu, 2008)

Psycopg2

La combinación de Python y PostgreSQL es potente, sobre todo cuando se utiliza el

driver psycopg2. ―Es un driver para interactuar con PostgreSQL desde el lenguaje de

script Python. Está escrito en C y proporciona para llevar a cabo de manera eficiente

toda una gama de operaciones de SQL en bases de datos PostgreSQL. Permite múltiples

conexiones u objetos de conexión, además con su utilización se obtienen los datos como

un diccionario de Python. Además posibilita consultas asincrónicas, un filtrado

automático y un agrupamiento de conexiones‖. (Varrazzo, 2010)

1.4.1.2 HTML

HyperText Mark-Up Language (HTML), que en español seria Lenguaje para el Formato

de Documentos de Hipertexto, es un lenguaje de marcas hipertextuales, diseñado para

estructurar textos para generar páginas web. Gracias a Internet y a los navegadores web,

el HTML se ha convertido en el formato más fácil para la creación de páginas web

debido a su sencillez.

―El lenguaje HTML es un estándar reconocido en todo el mundo y cuyas normas define

un organismo sin ánimo de lucro llamado World Wide Web Consortium, más conocido

como W3C. Como se trata de un estándar reconocido por todas las empresas

Page 32: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 24 -- Monitoreo y control para PostgreSQL

relacionadas con el mundo de Internet, una misma página HTML se visualiza de forma

muy similar en cualquier navegador de cualquier sistema operativo.

El propio W3C define el lenguaje HTML como un lenguaje reconocido universalmente

y que permite publicar información de forma global". Desde su creación, el lenguaje

HTML ha pasado de ser un lenguaje utilizado exclusivamente para crear documentos

electrónicos a ser un lenguaje que se utiliza en muchas aplicaciones electrónicas como

buscadores, tiendas online y banca electrónica. HTML es un lenguaje utilizado

únicamente para dar estructura a una página web. El estilo de la propia página web

vendrá dado por un enlace a una hoja CSS.‖ (Prado, 2007)

La mayoría de las etiquetas del lenguaje HTML son semánticas. La interpretación de las

etiquetas es realizada por el navegador web. ―El lenguaje HTML es extensible, se le

pueden añadir características, etiquetas y funciones adicionales para el diseño de páginas

web, generando un producto vistoso, rápido y sencillo‖.(Grupo Hooping, 2008)

1.4.1.3 Java Script

JavaScript es un lenguaje de programación que permite a los desarrolladores crear

acciones en sus páginas web. Puede ser utilizado por profesionales y para quienes se

inician en el desarrollo y diseño de sitios web. No requiere de compilación ya que el

lenguaje funciona del lado del cliente, los navegadores son los encargados de interpretar

estos códigos.

―JavaScript tiene la ventaja de ser incorporado en cualquier página web, puede ser

ejecutado sin la necesidad de instalar otro programa para ser visualizado.

Es necesario resaltar que hay dos tipos de JavaScript: por un lado está el que se ejecuta

en el cliente, este es el JavaScript propiamente dicho, aunque técnicamente se denomina

Navigator JavaScript. Pero también existe un JavaScript que se ejecuta en el servidor, es

más reciente y se denomina LiveWire JavaScript.‖ (Valdés, 2007)

Tiene como características principales las siguientes:

Page 33: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 25 -- Monitoreo y control para PostgreSQL

―Es interpretado por el cliente.

Está basado en objetos. No emplea clases ni herencia.

Su código se integra en las páginas HTML, incluido en las propias páginas.

No es necesario declarar los tipos de variables que van a utilizarse.

Las referencias a objetos se comprueban en tiempo de ejecución, por lo tanto no

se compila‖. (Rubio, 2006)

1.4.1.4 CSS

CSS (Cascading Style Sheets, u Hojas de Estilo en Cascada) es la tecnología

desarrollada por el World Wide Web Consortium (W3C) con el fin de separar la

estructura de la presentación. Posibilita el control de características gráficas tales como

imágenes y colores de fondo, márgenes exactos y bordes, para evitar el trabajoso y a

veces poco gratificante diseño de tablas complejas para un plan, que incluye

frecuentemente tablas anidadas y complicados algoritmos de combinación de celdas.

―Se podría decir que los beneficios de usar CSS son dobles. Por un lado, se evita hacer a

los archivos demasiado pesados (excluyendo el largo código requerido para las tablas

anidadas y el añadido de características gráficas), y se define el estilo visual de un sitio

entero sin necesidad de hacerlo etiqueta por etiqueta, para cada una de las páginas. Por

otro, trabaja con estándares, y separa hasta cierto punto la estructura de la presentación,

logrando una manera más nítida de trabajar, y lo que es más: en un sencillo documento

CSS, se define una "plantilla gráfica" para todo un sitio. Vale decir, que cualquier

cambio hecho a un estilo CSS, se reflejará en todos los elementos que sean referidos a

éste, automáticamente, con sólo editar un sencillo documento‖ CSS.(Barcia, 2003)

1.4.2 Frameworks de desarrollo

Un framework, en el desarrollo de software es una estructura de soporte definida en la

cual otro proyecto de software puede ser organizado y desarrollado.

Page 34: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 26 -- Monitoreo y control para PostgreSQL

1.4.2.1 Django

Django es un framework de desarrollo web de código abierto, escrito en Python, que

cumple en cierta medida el paradigma del Modelo Vista Controlador. Fue desarrollado

en origen para gestionar varias páginas orientadas a noticias de la World Company de

Lawrence, Kansas, y fue liberada al público bajo una licencia BSD en julio de 2005. La

versión estable (a septiembre de 2008) es la 1.0.

Características de Django:

―Es un mapeador objeto-relacional.

Permite crear aplicaciones ―enchufables‖ que pueden instalarse en cualquier

página gestionada con Django.

Es una API de base de datos robusta.

Incorpora ―vistas genéricas‖ que ahorra tener que escribir la lógica de ciertas

tareas comunes.

Es un sistema extensible de plantillas basado en etiquetas, con herencia de

plantillas.

Contiene un despachador de URLs basado en expresiones regulares.

Es un sistema middleware para desarrollar características adicionales; por

ejemplo, la distribución principal de Django incluye componentes middleware

que proporcionan cacheo, compresión de la salida, normalización de URLs,

protección CSRF y soporte de sesiones.

Posee soporte de internacionalización, incluyendo traducciones incorporadas de

la interfaz de administración.

Provee documentación incorporada accesible a través de la aplicación

administrativa (incluyendo documentación generada automáticamente de los

modelos y las librerías de plantillas añadidas por las aplicaciones)‖.(Kaufmann,

2008)

Page 35: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 27 -- Monitoreo y control para PostgreSQL

1.4.3 Librerías

Las librerías en el desarrollo de software son de gran importancia, ya que enriquecen los

lenguajes de programación incorporando funcionalidades nuevas y facilitando el trabajo

con los mismos.

1.4.3.1 ExtJS

Con ExtJS, se puede desarrollar aplicaciones web con facilidad. Lo mejor de todo es que

ofrece una colección enciclopédica de elementos para la creación de interfaces de

usuario con un elegante tema de partida. Estas son sólo algunas de las razones por las

que ExtJS es la principal elección de los desarrolladores de todo el mundo. De forma

general ExtJS brinda soporte para:

Construir interfaces gráficas complejas y dinámicas.

Comunicar datos de forma asíncrona con el servidor.

Diversos navegadores como: Internet Explorer, Firefox, Safari y Opera.

―ExtJS incluye componentes UI8 del alto rendimiento y personalizables, modelo de

componentes extensibles, un API fácil de usar y presenta dos tipos de licencia open

source y comercial. Los principales beneficios de esta librería son:

Permite un balance entre Cliente – Servidor: La carga de procesamiento se

distribuye, permitiendo que el servidor, al tener menor carga, pueda manejar más

clientes al mismo tiempo.

Comunicación asíncrona: En este tipo de aplicación el motor de render puede

comunicarse con el servidor sin necesidad de estar sujeta a un clic o una acción

del usuario, dándole la libertad de cargar información sin que el cliente se de

cuenta.

Eficiencia de la red: El tráfico de red puede disminuir al permitir que la

aplicación elija que información desea transmitir al servidor y viceversa, sin

embargo la aplicación que haga uso de la pre-carga de datos puede que revierta

este beneficio por el incremento del tráfico.‖ (Grupo Sencha, 2011)

Page 36: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 28 -- Monitoreo y control para PostgreSQL

1.4.3.2 Highcharts

Highcharts es una biblioteca de gráficos escritos en JavaScript puro, que ofrece una

forma fácil de añadir gráficos interactivos a su sitio web o aplicación web. Actualmente

soporta gráficos de línea, spline o curvos, área, área-spline, columnas, barras, pastel y de

dispersión.

Entre sus principales características se encuentran:

“Compatible. Funciona en todos los navegadores modernos, incluyendo el

iPhone / iPad e Internet Explorer desde la versión 6. En los navegadores

estándares usa SVG para la representación de gráficos.

Gratis para uso no comercial.

Libre. Highcharts es de código abierta. Bajo cualquiera de las licencias, libres o

no, se le permite descargar el código fuente y hacer tus propias ediciones. Esto

permite modificaciones personales y una gran flexibilidad.

Puro JavaScript. Highcharts se basa únicamente en las tecnologías de navegador

nativo y no requiere plugins del lado del cliente como Flash o Java. Además no

es necesario instalar nada en su servidor, ni PHP o ASP.NET. Highcharts sólo

necesita dos archivos JS a ejecutar y opcionalmente según lo que se desea

desarrollar también incluye jQuery, MooTools o Prototype.

Numerosos tipos gráficos. Como se explico anteriormente esta librería soporta

una gama de gráficos y cualquiera de ellos pueden ser combinados en uno solo.

Sintaxis de configuración sencilla. Highcharts no requiere conocimientos

especiales de programación para configurarlo. Las opciones se presentan en una

estructura de JavaScript Object Notation, que es básicamente un conjunto de

claves y valores conectados por dos puntos, separados por comas y se agrupan

por llaves.

Dinámico. A través de una API completa se puede agregar, quitar y modificar la

serie y los puntos o modificar los ejes en cualquier momento después de la

creación gráfica. En combinación con jQuery, MooTools o API AJAX de

Page 37: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 29 -- Monitoreo y control para PostgreSQL

Prototype, se pueden realizar gráficos en tiempo real y en constante actualización

con los valores del servidor, lo que suministra el usuario y mucho más.

Varios ejes.

Etiquetas Tooltip.

Fecha y hora en los ejes.

Exportar e imprimir. Con el módulo de exportación habilitado, los usuarios

pueden exportar el gráfico a PNG, JPG, PDF o SVG o imprimir el gráfico

directamente desde la página web.

Zoom. Al hacer zoom sobre un gráfico se puede examinar una parte

especialmente interesante de los datos más de cerca. El zoom puede ser en la

dimensión X o Y, o ambas cosas.

Carga de datos externos.

Tabla invertida o eje invertido.

Rotación de texto para las etiquetas.‖ (Grupo Highcharts, 2010)

1.4.4 Herramientas complementarias

Las herramientas de desarrollo son aquellos programas o aplicaciones que tienen gran

importancia en el desarrollo de un programa, apoyando el proceso activo de

construcción del mismo.

1.4.4.1 Eclipse

Eclipse es un entorno de desarrollo integrado de código abierto multiplataforma para

desarrollar aplicaciones. Esta plataforma, típicamente ha sido usada para desarrollar

entornos de desarrollo integrados (del inglés IDE).

En cuanto a las aplicaciones clientes, eclipse provee al programador con frameworks

muy ricos para el desarrollo de aplicaciones gráficas, definición y manipulación de

modelos de software, aplicaciones web, etc. De forma general Eclipse posee las

siguientes características:

―Editor de texto con resaltado de sintaxis.

Page 38: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 30 -- Monitoreo y control para PostgreSQL

La compilación es en tiempo real.

Tiene pruebas unitarias con JUnit, control de versiones con CVS e integración

con Ant.

Asistentes (wizard) para la creación de proyectos, clases, test, etc.

Refactorización.

A través de plugins libremente disponibles es posible añadir control de versiones

con Subversion e integración con Hibernate.

El entorno de desarrollo integrado (IDE) de Eclipse emplea módulos (en inglés plug-in)

para proporcionar toda su funcionalidad al frente de la plataforma de cliente enriquecido,

a diferencia de otros entornos monolíticos donde las funcionalidades están todas

incluidas, las necesite el usuario o no. Este mecanismo de módulos es una plataforma

ligera para componentes de software. Adicionalmente a permitirle a Eclipse extenderse

usando otros lenguajes de programación como son C/C++ y Python.

En el caso de la herramienta a desarrollar se utilizarán los plugins:

Pydev para el trabajo con Python.

Subversive para el control de versiones del código fuente de la

aplicación.‖(Eclipse Foundation, 2011)

1.4.4.2 Visual Paradigm

―Visual Paradigm para UML es una herramienta Case Cruzado de Ciclo de Vida,

multiplataforma (Windows/Linux/Mac OS X). Además soporta un conjunto de lenguajes

(Java, C ++, PHP, Ada y Python), tanto en generación de código como ingeniería

inversa. Se caracteriza por lo siguiente:

En adición al soporte de Modelado UML esta herramienta provee el modelado de

procesos de negocios.

Posee un generador de mapeo de objetos-relacionales para los lenguajes de

programación Java .NET y PHP.

Page 39: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo 1

- 31 -- Monitoreo y control para PostgreSQL

Para desarrolladores independientes existe una versión llamada Community

Edition en la que se caracteriza por ser de uso No Comercial.

Navegación intuitiva entre código y el modelo.

Poderoso generador de documentación y reportes UML PDF/HTML/MS Word.

Demanda en tiempo real, modelo incremental de viaje redondo y sincronización

de código fuente.

Superior entorno de modelado visual.

Soporte completo de notaciones UML.

Diagramas de diseño automático sofisticado.

Análisis de texto y soporte de tarjeta CRC‖. (Sierra, 2009)

1.5 Conclusiones del capítulo

Luego de realizar un estudio de las herramientas de monitoreo analizadas en este

capítulo e identificar algunas potencialidades y deficiencias en las mismas, se llegó a la

conclusión de elaborar un sistema de monitoreo sobre la Web 2.0 para PostgreSQL que

contenga las principales características identificadas, entre las que se encuentran:

Monitoreo en el tiempo y por datos históricos.

Extracción de estadísticas del sistema operativo, de las tablas del catálogo y los

archivos del registro del gestor PostgreSQL.

Además la herramienta de monitoreo se mostrará a los usuarios mediante una interfaz

sencilla e intuitiva, utilizándose para su elaboración el ambiente de desarrollo

seleccionado que incluye HTML, JavaScript, CSS y Python como lenguajes de

programación, las librería ExtJS y Highcharts, el framework Django, xmlrpclib y el

driver Psycopg2 de Python y como herramientas complementarias Eclipse y Visual

Paradigm.

Page 40: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 32 -- Monitoreo y control para PostgreSQL

CAPÍTULO II: FUNCIONALIDADES Y MODELADO DE LA

HERRAMIENTA.

Para lograr un conocimiento amplio de un sistema de software se hace necesario

documentarlo pues esto evita errores de concepto y ayuda durante la elaboración del

mismo. Los implementadores e incluso los clientes de un software encuentran en el

modelado de un sistema informático un pilar importante pues permite obtener una visión

y a veces hasta la solución a los problemas que puedan aparecer durante el

entendimiento del negocio.

En el presente capítulo se realiza una detallada descripción de las funcionalidades y

arquitectura de la herramienta de monitoreo para PostgreSQL complementándose, como

parte del modelado de esta, con diagramas de casos de uso del sistema, clases, secuencia

y diseño de la base de datos.

2.1 Funcionalidades de la herramienta.

El estudio de las aplicaciones de monitoreo analizadas en el capítulo anterior, permitió

obtener una visión general de las características y funcionalidades que no deben faltar

durante la elaboración de la herramienta. Tomando esto como base, se adicionaron

además algunas particularidades que le confieren un valor agregado, como la

implementación de un servicio web con el objetivo de intercambiar información en la

red de computadoras que se deseen monitorear. A continuación se listan las

características iniciales que posee la herramienta.

Monitoreo de varios servidores a la vez haciendo uso de un servicio web.

Monitoreo en tiempo real con la utilización de gráficas y tablas.

Monitoreo en el tiempo para mostrar reportes, en gráficas y tablas, de datos

extraídos y guardados con anterioridad en un almacén de datos creado en

PostgreSQL.

Mostrar métricas de las estadísticas solicitadas a los servidores.

Extraer estadísticas del sistema operativo en que se encuentra el servidor

PostgreSQL, de las tablas del catálogo y de los archivos del registro.

Page 41: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 33 -- Monitoreo y control para PostgreSQL

En la tabla 3 se muestran las estadísticas identificadas hasta el momento y que formarán

parte de la solución final de la herramienta. Además se detallan las desarrolladas en su

primera versión teniendo en cuenta la existencia de dos módulos, uno para el servicio

Web (SW) y otro para la Interfaz de Usuario (IU). Partiendo del hecho de que ambos

módulos no se encuentran al mismo nivel de desarrollo se especifica en la tabla a cuál

pertenece cada estadística.

Tabla 3: Estadísticas a desarrollar en la herramienta.

Estadísticas

Sistema

operativo

(IU) Carga del sistema. Muestra el número de interrupciones por

segundo y el número de cambios de contexto por segundo.

(IU) Procesos. Expone el número de procesos esperando su tiempo de

ejecución y el número de procesos en espera ininterrumpible.

(IU) Uso de la CPU. Muestra los porcentajes de tiempo total de CPU,

entre los que se encuentran: % que estuvo el procesador ocupado

con tareas del usuario, % que estuvo ocupado con tareas del

sistema, el tiempo de inactividad y el tiempo de espera para los

procesos.

(IU) Carga de memoria. Muestra la cantidad de Swap que se está

usando, la memoria RAM libre, la cantidad de memoria empleada

como búferes y la cantidad de memoria que ha sido cacheada, todas

ellas en kilobytes.

(IU) Uso de la swap. Muestra en Kb/s la cantidad de memoria traída del

espacio de trasiego desde disco y la cantidad de memoria trasegada

al disco.

(SW) Tráfico de la red. Muestra la cantidad de bloques enviados y

recibidos satisfactoriamente, la cantidad con errores y los perdidos.

(SW) Utilización de disco. Para la utilización del disco por sistema de

ficheros se muestra la cantidad usada y su porciento, la cantidad

disponible y donde está montado.

(IU) I/O (Input/output). Muestra en bloques/s aquellos que fueron

enviados a un dispositivo de bloques y los que fueron recibidos

desde un dispositivo de bloques.

Tablas del

catálogo

(IU) Conexiones. Muestra la cantidad de conexiones por bases de datos.

(IU) Transacciones. Muestra la cantidad de commit y rollback por bases

de datos.

(SW) Ins/Upd/Del por tabla. Muestra las tuplas insertadas, actualizadas

y eliminadas por tablas de una base de dato.

(SW) Ins/Upd/Del por BD. Muestra las tuplas insertadas, actualizadas y

eliminadas por bases de datos.

(SW) Planes de consulta por BD. Muestra para cada tabla de las bases

Page 42: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 34 -- Monitoreo y control para PostgreSQL

de datos el número de tuplas secuenciales iniciadas, el número de

tuplas secuenciales leídas, el número de índice de tuplas

secuenciales iniciadas y el número de índice de las tuplas leídas.

(SW) Bloqueos. Muestra por bases de datos el nombre de la modalidad

de los bloqueos que tiene y la cantidad de ellos.

(SW) I/O por bloques leídos. Muestra para cada tabla de las bases de

datos el número de bloques leídos, el índice de esos bloques leídos

por tablas, los bloques leídos de la tabla Toast y el índice de esos

bloques.

(SW) Uso de disco de la BD. Muestra la cantidad de páginas por tablas

de las bases de datos.

(SW) Tamaño de las BD. Muestra el tamaño por bases de datos.

(SW) Tamaño de los Tablespace. Muestra el tamaño de los tablespace.

Archivos

de registro

Cantidad de consultas normalizadas.

Cantidad de consultas.

Duración total de consultas.

Fecha de primera consulta.

Fecha de última consulta.

Consultas por tipo.

Consultas más lentas.

2.2 Arquitectura del sistema.

En la construcción de un software influyen, entre otros factores, las tecnologías que se

utilizan para ello. Una complementación errónea de estas tecnologías afectará en gran

medida la calidad del producto, es por ello que teniendo en cuenta que el propósito de la

herramienta a desarrollar es monitorear en tiempo real y en el tiempo varios servidores

PostgreSQL se decide optar por la arquitectura reflejada en la figura 1.

La integración de las tecnologías a manejar para el desarrollo de la herramienta de

monitoreo se realiza teniendo en cuenta el lugar dentro de la arquitectura en que se

utilizará, dígase en el cliente, el servidor y si pertenece a componentes externos.

En el Cliente se complementan dos tecnologías. Una de ellas es la librería Highcharts,

para la creación de los gráficos que son visualizados en la interfaz de usuario con el uso

de la librería ExtJS. A través de esta última mediante consultas AJAX se visualizan las

funcionalidades del proyecto proyMonitoreo creado en Django en la parte Servidor de la

aplicación. Este proyecto escrito en Python cuenta con los módulos:

Page 43: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 35 -- Monitoreo y control para PostgreSQL

Común: que está compuesto por las clases utilizadas de forma más frecuente en

el proyecto o de propósito general.

Monitoreo: donde se encuentran las clases controladoras de la aplicación, que

usarán el protocolo XMLRPC para conectarse a los Componentes externos

mediante http al Servicio Web. Este servicio web desarrollado en Python utilizará

Psycopg2 para conectarse a los Servidores PostgreSQL que se deseen

monitorear.

El proyecto proyMonitoreo de forma general usa Psycopg2 para conectarse al Almacén

de datos en PostgreSQL con el objetivo de guardar y extraer información del mismo.

Figura 1: Diagrama de integración de tecnologías.

Page 44: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 36 -- Monitoreo y control para PostgreSQL

2.3 Diagrama de Casos de Uso del Sistema.

Un diagrama de casos de uso (CU) muestra la relación entre los actores y los casos de

uso del sistema. Representa la funcionalidad que ofrece el sistema en lo que se refiere a

su interacción externa. Los casos de uso no son parte del diseño (cómo), sino parte del

análisis (qué). De forma que al ser parte del análisis ayudan a describir qué es lo que el

sistema debe hacer.

Figura 2: Diagrama de casos de uso del sistema.

En la figura 2 se muestra el diagrama de casos de uso del sistema para el módulo

Interfaz de Usuario de la primera versión de la herramienta de monitoreo en el que se

reflejan once CU, de los cuales Desconectar servicio es extendido de Gestionar servicio

web que a su vez incluye el CU Conectar servicio. Este CU Gestionar servicio web

incluye los CU:

Registrar servicio web

Modificar servicio web

Eliminar servicio web.

Page 45: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 37 -- Monitoreo y control para PostgreSQL

El actor que inicia los CU es un usuario, que puede ser un administrador de base de

datos, dado que debe dominar el funcionamiento de los servidores que desea monitorear

y conocer las credenciales de acceso a los mismos.

2.3.1 Descripción de casos de uso.

Las descripciones de casos de uso son reseñas textuales del caso de uso, es por ello que

es una descripción informal en lenguaje natural o en lenguaje estructurado y se centra en

lo que debe hacerse, no en la manera de hacerlo.

A continuación se describen los CU Mostrar datos de Procesos del SO, Mostrar datos

de Transacciones a las BD y Registrar servicio web.

CU Registrar servicio web

Tabla 4: Descripción del CU Registrar servicio web.

Caso de Uso: Registrar servicio web

Actores: Usuario.

Resumen: El caso de uso se inicia cuando el usuario necesita registrar un

nuevo servicio web. El sistema proporciona la interfaz

necesaria para realizar esta operación finalizando así el CU.

Precondiciones:

Flujo normal de eventos

Acción del Actor Respuesta del Sistema

1. El usuario selecciona la opción

Registrar servicio.

2. Muestra la interfaz Registrar un nuevo

servicio que posee los componentes

correspondientes a los datos del

Servicio Web entre los que se

encuentran:

Nombre

Host

Page 46: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 38 -- Monitoreo y control para PostgreSQL

Puerto

3. El usuario introduce los datos

solicitados.

4. El usuario selecciona la opción

Siguiente.

5. Muestra la interfaz que posee los

componentes correspondientes a los

datos del Servidor de bases de datos

entre los que se encuentran:

Puerto

Usuario

Clave

6. El usuario introduce los datos

solicitados.

7. El usuario selecciona la opción

Aceptar.

8. Comprueba que no existan campos

vacios.

9. Registra el nuevo servicio con los datos

introducidos por el usuario.

10. Retorna a la interfaz principal de la

aplicación y refresca el árbol de

componentes.

Prototipo de Interfaz

Page 47: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 39 -- Monitoreo y control para PostgreSQL

Flujos Alternos

Flujo Alterno 8a “Existen campos vacios.”

Acción del Actor Respuesta del Sistema

8a.1 Comprueba que existen campos

vacíos.

8a.2 Muestra el mensaje de información

―Faltan campos por llenar‖.

8a.3 El usuario selecciona la opción

―Aceptar‖.

8a.4 Muestra nuevamente la interfaz

Registrar un nuevo servicio para reiniciar

el proceso de entrada de datos.

Prototipo de Interfaz

Poscondiciones: Servicio registrado.

CU Mostrar datos de Procesos del SO.

Tabla 5: Descripción del CU Mostrar datos de Procesos del SO.

Caso de Uso: Mostrar datos de Procesos del SO

Actores: Usuario

Resumen: El caso de uso se inicia cuando el usuario selecciona en el árbol

de los servicios web registrados un servicio. Una vez

seleccionado el mismo, elige en el árbol de estadísticas el tipo

de estadísticas del Sistema Operativo que desea visualizar y

selecciona la opción Mostrar. Seguidamente el sistema muestra

en vista gráfica y tabular cómo se comporta la estadística del

sistema operativo seleccionada, finalizando así el CU.

Precondiciones: Debe existir un servicio registrado.

Page 48: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 40 -- Monitoreo y control para PostgreSQL

Flujo normal de eventos

Acción del Actor Respuesta del Sistema

1. El usuario selecciona un servicio web

en el árbol de los servicios web

registrados.

2. El usuario selecciona en el árbol de

estadísticas el tipo Sistema Operativo.

3. Muestra los tipos de estadísticas

específicas del Sistema Operativo que

se pueden consultar en la aplicación:

Procesos

Sistema

CPU

Memoria

Swap

Input/Output

4. El usuario selecciona a través de clic

derecho la opción Mostrar del tipo de

estadística Procesos para visualizar su

comportamiento.

5. Muestra una gráfica y una tabla que

contienen el comportamiento en tiempo

real de la cantidad de los procesos

activos en el servidor.

Prototipo de Interfaz

Page 49: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 41 -- Monitoreo y control para PostgreSQL

Flujos Alternos

Flujo Alterno 1a “No selecciona un servicio web en el árbol”.

Acción del Actor Respuesta del Sistema

1a.1 Muestra el mensaje de información

“Debe seleccionar un servicio en el

árbol”.

1a.2 El usuario selecciona la opción

“Aceptar”.

1a.3 Muestra nuevamente la interfaz

principal de la aplicación.

Prototipo de Interfaz

Poscondiciones: Estadísticas visualizadas.

CU Mostrar datos de Transacciones a las BD.

Tabla 6: Descripción del CU Mostrar datos de Transacciones a las BD.

Caso de Uso: Mostrar datos de Transacciones a las BD

Actores: Usuario

Resumen: El caso de uso se inicia cuando el usuario selecciona en el árbol

de los servicios web registrados un servicio. Una vez

seleccionado el mismo, elige en el árbol de estadísticas el tipo

de estadísticas de las tablas de la base de datos que desea

visualizar y selecciona la opción mostrar. Seguidamente el

sistema muestra en vista gráfica y tabular cómo se comporta la

estadística de las tablas de la base de datos seleccionada,

finalizando así el CU.

Precondiciones: Debe existir un servicio registrado.

Flujo normal de eventos

Acción del Actor Respuesta del Sistema

1. El usuario selecciona un servicio web

en el árbol de los servicios web

Page 50: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 42 -- Monitoreo y control para PostgreSQL

registrados.

2. El usuario selecciona en el árbol de

estadísticas el tipo Tablas de la BD.

3. Muestra los tipos de estadísticas

específicas de las tablas de la BD que se

pueden consultar en la aplicación:

Conexiones

Transacciones

4. El usuario selecciona a través de clic

derecho la opción Mostrar del tipo de

estadística Transacciones para

visualizar su comportamiento.

5. Muestra una gráfica y una tabla que

contienen el comportamiento en tiempo

real de las transacciones a las bases de

datos del servidor.

Prototipo de Interfaz

Flujos Alternos

Flujo Alterno 1a “No selecciona un servicio web en el árbol.”

Acción del Actor Respuesta del Sistema

1a.1 Muestra el mensaje de información

“Debe seleccionar un servicio en el

árbol”.

Page 51: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 43 -- Monitoreo y control para PostgreSQL

1a.2 El usuario selecciona la opción

―Aceptar‖.

1a.3 Muestra nuevamente la interfaz

principal de la aplicación.

Prototipo de Interfaz

Poscondiciones: Estadísticas visualizadas.

2.4 Diagramas de clases.

Un diagrama de clases es un tipo de diagrama estático que describe la estructura de un

sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de

clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se

crea el diseño conceptual de la información que se manejará en el sistema, y los

componentes que se encargarán del funcionamiento y la relación entre uno y otro.

Para el desarrollo de la herramienta se hizo necesario crear dos módulos, una aplicación

web de interfaz gráfica y un servicio web ambos implementados en Python. A

continuación se detallan los diagramas de clases de cada una de ellos.

2.4.1 Módulo Servicio Web

En la figura 3 se muestra el diagrama de clases para el módulo Servicio Web en el que

se reflejan dos clases que se explican a continuación.

classCatalogo: La función de esta clase es conectarse a la base de datos

PostgreSQL y a través de consultas SQL extraer datos de las tablas o vistas del

catálogo entre las que se encuentran pg_stat_activity, pg_stat_database,

pg_stat_all_tables, pg_locks, pg_stat_database, pg_database,

pg_statio_user_tables, pg_class, pg_database_size, y pg_tablespace.

Page 52: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 44 -- Monitoreo y control para PostgreSQL

classComandos: Los métodos de esta clase ejecutan comandos SHELL para

obtener datos del sistema operativo en el que se encuentra el servidor

PostgreSQL. Entre los comandos utilizados se hallan vmstat, ifconfig –s y df.

Figura 3: Diagrama de clases del módulo Servicio Web.

2.4.2 Módulo Interfaz gráfica

En la figura 4 se refleja el diagrama de clases para el módulo Interfaz Gráfica en el que

se muestran seis clases que se explican a continuación.

AppMessage: Esta clase en utilizada preferentemente en las vistas del proyecto

Django y su función es encodar y desencodar a formato JSON los datos en la

aplicación. En caso de encodar se transforma las listas y los diccionarios de

Python a Objetos JavaScript, y cuando se desencoda los arreglos o objetos

JavaScript son convertidos en listas o diccionarios Python respectivamente. Hace

uso del módulo simpleJson de Django.

TreeObjectManager: La función de esta clase es proporcionarle al árbol

explorador de la interfaz los nodos a cargar en cada nivel del árbol.

controladoraServicioWeb: Esta clase es la encargada de manipular los métodos

creados en las clases classCatalogo y classComandos de las que obtiene, vía http

y usando XMLRPC, los datos de los servidores que se monitorean.

Page 53: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 45 -- Monitoreo y control para PostgreSQL

controladoraServicioAdmin: Esta clase es utilizada para administrar los

servicios web a monitorear, que incluye registrarlos, modificarlos, eliminarlos.

Esta clase hace uso del las clases del modelo definida en el módulo models.py del

proyecto Django.

EngineFactory: Esta clase tiene la función de crear una conexión al servidor.

Views: es un módulo del proyecto Django para visualizar las vistas de la

aplicación.

Figura 4: Diagrama de clases del módulo Interfaz Gráfica.

Page 54: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 46 -- Monitoreo y control para PostgreSQL

2.5 Diagramas de secuencia.

Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una

aplicación a través del tiempo y se modela para cada caso de uso. Además contiene

detalles de implementación del escenario, incluyendo los objetos y clases que se usan

para ello, y los mensajes intercambiados entre los objetos.

La comunicación entre las clases de la aplicación es muy alta debido a las dependencias

existentes entre las mismas. De forma general entre ambos módulos coexiste una

secuencia comenzando por la IU de Django, la clase controladora y el módulo SW.

La aplicación web en Django muestra las interfaces necesarias para obtener los datos

deseados. Estas interfaces, de forma transparente al usuario, llaman a las vistas donde se

encoda y desencoda en formato JSON la información que es tomada de la clase

controladora. Estas últimas son las encargadas de comunicarse con el SW pero para ello

necesitan utilizar, a través de una clase auxiliar, la clase del modelo de Django para el

acceso al almacén de datos que contiene la información de los servicios web registrados.

El SW, por otro lado, posee dos clases que son las encargadas de obtener la información

del servidor en que se encuentran ejecutándose, una de ellas destinada a extraer informes

de las tablas o vistas del catalogo de PostgreSQL y la otra del sistema operativo. Estos

datos son mostrados vía http con la utilización de XMLRPC y consumidos por los

métodos de la clase controladoras de la IU.

La mejor opción para reflejar esta relación entre las clases es a través de diagramas de

secuencia es por ello que a continuación se representan para los CU Registrar servicio

web, Mostrar datos de procesos del SO y Mostrar datos de Transacciones a las BD.

Page 55: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 47 -- Monitoreo y control para PostgreSQL

Figura 5: Diagrama de secuencia del CU Registrar servicio web.

En la figura 5 se representa el diagrama de secuencia para el CU Registrar servicio web

donde se refleja al usuario que desea registrar un nuevo servicio web. Para esto se envía

una solicitud a una vista en Django que carga los datos y los envía a la clase

ManageServicioAdm donde son registrados utilizando la clase models de Django para

acceder a la tabla ServicioAdm del almacén de datos en PostgreSQL y guardarlos en la

misma. Una vez almacenados los datos se envía un mensaje de confirmación indicando

que la operación se realizó satisfactoriamente.

En la figura 6 se refleja el CU Mostrar datos de Procesos del SO donde se muestra al

usuario que desea visualizar la cantidad de procesos en espera ininterrumpible y en

espera de ejecución de un determinado servidor. Para esto se envían dos solicitudes por

separado a dos vistas en Django con el objetivo de cargar el comportamiento de los

procesos. Estas vistas solicitan a la clase controladora los datos requeridos, quien para

ello se vale de la clase ManageServicioAdm, para obtener los datos del servicio web al

que se desea conectar, y classComando ,que a través de una ejecución a un comando

SHELL recopila la información que se necesita. Terminada esta operación los datos son

enviados a las vistas donde son procesados y mostrados en la interfaz de usuario a través

de una gráfica y una tabla.

Page 56: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 48 -- Monitoreo y control para PostgreSQL

Figura 6: Diagrama de secuencia del CU Mostrar datos de Procesos del SO.

En la figura 7 se encuentra representado para el CU Mostrar datos de Transacciones a

las BD donde se muestra al usuario que desea visualizar el comportamiento de las

transacciones de las BD de un determinado servidor. Para ello se envían dos solicitudes

por separado a dos vistas en Django con el objetivo de cargar el comportamiento de las

transacciones. Las vistas a su vez piden a la clase controladora los datos solicitados

quien para obtener esta información se vale de las clases ManageServicioAdm, para

obtener los datos del servicio web al que se desea conectar, y classCatalogo que a través

de una consulta SQL recopila la información en cuestión. Terminado este proceso los

datos son enviados a las vistas donde son procesados y mostrados en la interfaz de

usuario a través de una gráfica y una tabla.

Page 57: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 49 -- Monitoreo y control para PostgreSQL

Figura 7: Diagrama de secuencia del CU Mostrar datos de Transacciones a las BD.

2.6 Diseño de la base de datos.

El diseño de la base de datos es un pilar importante para el desarrollo de los sistemas

informáticos, pues en él se muestran las tablas y las relaciones existentes entre ellas.

Como la mayoría de las aplicaciones de gestión la herramienta de monitoreo necesita

tener datos persistentes, pero ¿por qué utilizar un Almacén de Datos en PostgreSQL?

Para responder esta interrogante es válido aclarar que se utiliza PostgreSQL por ser un

sistema gestor de bases de datos libre y robusto. La idea de crear un almacén de datos

surge por la necesidad de obtener un monitoreo en el tiempo de los servidores

registrados en la aplicación, ya que un almacén o data warehouse, es un proceso

continuo que mezcla los datos de varias fuentes heterogéneas, incluyendo datos

históricos y adquiridos para soportar la constante necesidad de consultas estructuradas,

reportes analíticos y soporte de decisiones.

Page 58: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 50 -- Monitoreo y control para PostgreSQL

Algunas de las justificaciones para un emprendimiento del almacén de datos es que son

sistemas no integrados, soporta múltiples e incompatibles estructuras de datos, posee

muchos puntos de entrada a los datos, proporciona un manejo de información histórica

para facilitar las actividades de reporteo y análisis de usuarios y provee una vista única

del negocio.

Para la herramienta se utilizó un esquema en estrella en el que una sola tabla de hechos

está relacionada a cada tabla dimensión. Para el caso de las tablas de dimensiones, estas

son enlazadas a la tabla de hechos mediante referencias de una llave foránea. Además la

llave primaria en la tabla de hechos se compone de una relación de las llaves primarias

de las tablas dimensiones.

En la figura 8 se exponen la tabla ServicioAdm, que contiene la información de los

servicios registrados, y un ejemplo de varias tablas de hechos con sus respectivas tablas

dimensiones, entre las que se encuentran:

CantConexiones con las tablas dimensiones:

CantConexionesServidor

CantConexionesBD

CantConexionesTiempo

CargaMemoria con las tablas dimensiones:

MemoriaServidor

MemoriaTiempo

UsoSwap con las tablas dimensiones:

SwapServidor

SwapTiempo

Page 59: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 51 -- Monitoreo y control para PostgreSQL

Figura 8: Modelo físico del almacén de datos de la aplicación.

En la figura 9 se reflejan el resto de las tablas de hechos del almacén de datos de la

aplicación para su primera versión. Cada una de estas tablas poseen dos tablas

dimensiones referentes al tiempo y al servidor a excepción de la tabla cantTransacciones

que además se le agrega la dimensión cantTransaccionesBD. Cabe destacar en que cada

tabla posee una llave primaria auto-incremental.

Page 60: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo II

- 52 -- Monitoreo y control para PostgreSQL

Figura 9: Tablas de hechos del almacén de datos de la aplicación.

2.7 Conclusiones del capítulo.

Durante el progreso de este capítulo se realizó una amplia descripción de las

funcionalidades de la herramienta de monitoreo para PostgreSQL desarrollada, que

incluyó una lista de las estadísticas y los datos que proporcionan. Además se reflejó la

arquitectura del sistema complementada con un diagrama de la interacción de las

tecnologías utilizadas.

Como parte del modelado de la herramienta se mostró el diagrama de casos de uso del

sistema y algunas descripciones de estos casos de uso. De igual forma se reflejan los

diagramas de clases para los módulos Servicio Web e Interfaz Gráfica detallando cada

una de estas clases. A través de varios diagramas de secuencia se muestra el mecanismo

de comunicación entre las clases de la aplicación y para finalizar se despliega el diseño

del almacén de datos en PostgreSQL creado para guardar la información de la

herramienta.

Page 61: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 53 -- Monitoreo y control para PostgreSQL

CAPÍTULO III: IMPLEMENTACIÓN Y DESCRIPCIÓN DE

USO.

Durante la etapa de implementación se logra concretar la planificación de un sistema

informático, pues se ejecutan las ideas plasmadas durante su fase de análisis y diseño. El

producto obtenido en este periodo, una vez terminado, deberá estar listo para ser

probado y utilizado.

En el presente capítulo se refleja la etapa de implementación del sistema a través de

diagramas componentes, donde se representa la implementación de las clases a través

componentes y el modelo de despliegue, con los nodos en los que se encuentra

distribuida la aplicación. Además se refleja un manual de usuario donde se describen las

funcionalidades de la herramienta y las facilidades que esta proporciona.

3.1 Implementación.

Esta es la fase donde se implementa el código fuente, haciendo uso de prototipos,

pruebas y ensayos para corregir errores. Dependiendo del lenguaje de programación y su

versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto

para hacer que la programación sea un proceso mucho más rápido.

3.1.1 Diagramas de componentes.

Un diagrama de componentes muestra las dependencias lógicas entre componentes de

software ya sean fuentes, binarios o ejecutables. Estos diagramas prevalecen en el

campo de la arquitectura de software pero pueden ser usados para modelar y documentar

cualquier arquitectura de sistema, es decir para describir la vista de implementación

estática de un sistema. Los diagramas de componentes se relacionan con los diagramas

de clases, ya que un componente normalmente se corresponde con una o más clases,

interfaces o colaboraciones.

Page 62: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 54 -- Monitoreo y control para PostgreSQL

A continuación se muestran los diagramas de componentes para los CU Registrar

servicio web, Mostrar datos de Procesos del SO y Mostrar datos de Transacciones a las

BD.

Figura 10: Diagrama de componentes para el CU Registrar servicio web.

En la figura 10 se muestran las relaciones entre los ficheros a través del diagrama de

componentes para el CU Registrar servicio web. A continuación se detallan cada uno de

los componentes representados.

Paquete ExtJS: contiene los ficheros de la biblioteca JavaScript ExtJS que es

utilizada durante el desarrollo de la herramienta para el diseño de las interfaces

de usuario.

Componente monitoreo.html: plantilla que contiene incluidos todos los ficheros

js y css relacionados con las interfaces de usuario y las bibliotecas que utiliza.

Componente principalWindows.js: fichero donde se encuentra implementada la

interfaz principal de la herramienta.

Componente servidor.js: contiene implementadas las funciones JavaScript

necesarias para visualizar las interfaces de usuario del CU Registrar servicio

web.

Componente urls.py: fichero generado por el marco de trabajo Django en el que

se definen todas las urls disponibles en el proyecto.

Page 63: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 55 -- Monitoreo y control para PostgreSQL

Componente views.py: fichero generado por el framework Django para contener

todas las vistas de la aplicación.

Componente controladoraServicioAdm.py: fichero en Python que contiene una

clase controladora que entre sus métodos se encuentra el encargado de registrar

un nuevo servicio web.

Figura 11: Diagrama de componentes para el CU Mostrar datos de Transacciones a las BD.

En la figura 11 se muestran las relaciones entre los componentes que permiten la

realización del CU Mostrar datos de Transacciones a las BD. A continuación se detallan

cada uno de estos componentes a excepción de aquellos que fueron descritos con

anterioridad.

Paquete Highcharts: contiene los ficheros de la biblioteca JavaScript Highcharts

utilizada para la creación de gráficos en la aplicación.

Componente transactionGrafica.js: fichero en el que se implementan las

interfaces de usuario para mostrar las transacciones a las BD a través una gráfica

y una tabla.

Componente controladoraService.py: fichero escrito en Python que contiene la

clase que controla a través de sus métodos la obtención de información del

servicio web.

Paquete Servicio Web: contiene los ficheros encargados de extraer información

del servidor de bases de datos y el sistema operativo en que se encuentre

Page 64: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 56 -- Monitoreo y control para PostgreSQL

ejecutándose. Para este CU en especifico se utiliza el componente

classCatalogo.py que es el encargado de extraer datos de las tablas y vistas del

catálogo del servidor de PostgreSQL.

Figura 12: Diagrama de componentes para el CU Mostrar datos de Procesos del SO.

Para constatar la relación entre los componentes que intervienen en la implementación

del CU Mostrar datos de Procesos del SO se muestra la figura 12. A continuación se

puntualizan cada uno de los componentes exceptuando aquellos que ya fueron detallados

con anterioridad.

Componente processGrafica.py: fichero en el que se implementan las interfaces

de usuario para mostrar los procesos del SO a través de una gráfica y una tabla.

Componente classComandos.py: fichero encargado de extraer los datos del

sistema operativo utilizando comandos SHELL.

3.1.2 Diagrama de despliegue.

La vista de despliegue representa la disposición de las instancias de componentes de

ejecución en instancias de nodos conectados por enlaces de comunicación. Un nodo es

un recurso de ejecución tal como un computador, un dispositivo o memoria. Esta vista

permite determinar las consecuencias de la distribución y la asignación de recursos. Las

instancias de los nodos pueden contener instancias de ejecución, componentes y objetos.

Page 65: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 57 -- Monitoreo y control para PostgreSQL

El modelo puede mostrar dependencias entre las instancias y sus interfaces, y también

modelar la migración de entidades entre nodos u otros contenedores.

Figura 13: Diagrama de despliegue de la aplicación.

A continuación se realiza una breve descripción del diagrama de despliegue

representado en la figura 13:

PC Cliente: Desde este nodo los usuarios podrán acceder a la aplicación a través

de un navegador ya sea Internet Explorer o Firefox, haciendo uso del protocolo

<<http>>.

Servidor Web: En este nodo estará montada la aplicación sobre el servidor Web

Apache. La cual se comunica con el Servicio Web a través del protocolo

<<http>>.

Servicio Web: Sobre este nodo estará configurado un servicio web en Python con

la utilización del protocolo XMLRPC. Este se comunica con el nodo Servidor de

BD PostgreSQL a través del driver <<Psycopg2>>.

Servidor de BD PostgreSQL: Este nodo representa los servidores de bases de

datos que se desean monitorear.

Page 66: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 58 -- Monitoreo y control para PostgreSQL

3.2 Esbozo del manual de usuario.

La interfaz principal de la herramienta de monitoreo para PostgreSQL como puede

observarse en la figura 14 se encuentra estructurada de la siguiente forma:

Cabecera: muestra el nombre de la aplicación y los botones Acerca, Créditos y

Ayuda en la parte derecha de la misma.

Área de servicios registrados: muestra el explorador para acceder al árbol de

servicios web registrados en la aplicación.

Área de estadísticas: muestra las estadísticas para monitorear los servicios web

registrados en la herramienta.

Área de visualización de datos: muestra las gráficas y tablas asociadas a las

estadísticas que se monitorizan en la aplicación.

Figura 14: Interfaz principal de la aplicación.

A continuación se realiza una descripción detallada de las partes principales de la

herramienta.

Page 67: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 59 -- Monitoreo y control para PostgreSQL

3.2.1 Área de servicios registrados.

En esta parte se encuentran los servicios web registrados por el usuario, como se muestra

en la figura 15. Para ello se utiliza un árbol desplegable que contiene además las bases

de datos que contiene cada servidor en que se encuentra ejecutando el servicio.

Figura 15: Área de servicios web registrados.

Para registrar nuevos servicios se debe hacer clic en el botón Registrar servicio ubicado

en la parte superior derecha mostrándose la interfaz de la figura 16 donde el usuario

haciendo uso del botón Siguiente y Anterior deberá llenar los datos de forma obligatoria

del Servicio web y del Servidor de bases de datos entre los que se encuentran:

Nombre, Host y Puerto para el servicio.

Puerto, Usuario y Clave para el servidor.

Para completar el nuevo registro se deberá hacer clic en el botón Aceptar. Si no se desea

registrar un servicio una vez abierta la interfaz se deberá hacer clic en el botón Cancelar.

Page 68: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 60 -- Monitoreo y control para PostgreSQL

Figura 16: Interfaz para registrar un nuevo servicio web.

Una vez registrados los servicios web es posible que el usuario necesite eliminarlos,

editarlos o simplemente conectarse o desconectarse de los mismos. Para ello basta con

hacer clic derecho sobre cualquier servicio mostrándose el menú de la figura 17.

Figura 17: Menú para gestionar servicios web registrados.

Para Conectar servicio se deben llenar los datos Usuario y Clave de forma obligatoria

como se refleja en la figura 18. Para completar la acción se debe hacer clic en el botón

Aceptar, para anularla en el botón Cancelar.

Figura 18: Interfaz para conectar un servicio web.

Page 69: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 61 -- Monitoreo y control para PostgreSQL

Para Desconectar servicio solo se hace necesario hacer clic en el botón Si como se

muestra en la figura 19. Para cancelar la acción hacer clic en el botón No.

Figura 19: Interfaz para desconectar un servicio web.

Para Editar servicio al hacer clic en esta acción se muestra una interfaz igual al de la

figura 16 en el que se registraba un nuevo servicio, pero esta vez con los datos que

originalmente fueron introducidos durante su registro a excepción del usuario y la clave.

De igual forma haciendo uso de los botones Anterior y Siguiente se pueden modificar

estos datos y para completar la edición se debe hacer clic en el botón Aceptar y para

anularla en el botón Cancelar.

Para Eliminar servicio solo es preciso hacer clic en el botón Si como se refleja en la

figura 20. Para revocar la acción solo se debe hacer clic en el botón No.

Figura 20: Interfaz para eliminar un servicio web.

3.2.2 Área de estadísticas.

El área de estadísticas, como se muestra en la interfaz principal, se encuentra ubicada en

la parte derecha de la aplicación. En la misma están señalizadas las estadísticas

identificadas hasta el momento para monitorear los servicios web registrados en la

aplicación. Para facilitarle al usuario el trabajo en esta área, se clasificaron las

estadísticas de acuerdo al lugar del que son extraídas, identificándolas con tres colores

Page 70: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 62 -- Monitoreo y control para PostgreSQL

distintos y un icono propio para cada una lo que permite diferenciarlas si, una vez

visualizados los datos de estas estadísticas, el usuario desea llevar varias a la vez.

En la figura 21 se muestran las estadísticas que son extraídas del Sistema Operativo

identificado con el ícono . Dentro de este se pueden visualizar:

Procesos

Sistema

CPU

Memoria

Swap

Input/Output

Figura 21: Estadísticas para el Sistema Operativo.

En la figura 22 se muestran las estadísticas que son extraídas de las Tablas de las BD

identificado con el ícono . Dentro de este se pueden visualizar:

Conexiones

Transacciones

Page 71: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 63 -- Monitoreo y control para PostgreSQL

Figura 22: Estadísticas para la Tablas de la BD.

En la figura 23 se muestra el lugar donde se ubicarán las estadísticas para los Archivos

de registro con el ícono . Para esta primera versión de la aplicación no se han

implementado este tipo de estadísticas por eso no aparecen identificadas hasta el

momento en la aplicación.

Figura 23: Interfaz para las estadísticas de los Archivos de registro.

Para visualizar los datos de cada estadística se debe, una vez marcado en el Área de

servicios web registrados el servicio deseado, hacer clic derecho sobre ella mostrándose

un menú como el de la figura 24. Se debe hacer clic sobre la acción Mostrar

reflejándose al instante sobre el Área de visualización los datos solicitados en forma de

gráficas y tablas.

Figura 24: Menú para visualizar las estadísticas.

En el menú de la figura 24 aparece reflejada también la acción Ver métrica y al hacer

clic en ella, como se muestra en la figura 25, se despliega en la parte inferior de la

aplicación algunas recomendaciones a los usuarios de la estadística en cuestión, pero aún

para la primera versión de la herramienta no se encuentra desarrollado.

Page 72: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 64 -- Monitoreo y control para PostgreSQL

Figura 25: Interfaz donde se ubicarán las métricas por estadísticas.

3.2.3 Área de visualización de datos.

En esta área se muestran los datos de cada estadística en gráficas y tablas ubicadas en

pestañas, como se refleja en la figura 26 y 27 respectivamente.

Figura 26: Interfaz de visualización de gráficas.

Page 73: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 65 -- Monitoreo y control para PostgreSQL

Figura 27: Interfaz de visualización de tablas.

Para que los datos sean visualizados de forma correcta se hace necesario que esté

seleccionado con antelación un servicio en el Área de servicios registrados y haber

hecho clic en Mostrar del menú de las estadísticas.

En la parte inferior de ambas figuras se observan las pestañas de varias estadísticas

diferenciadas por el ícono y el nombre del servicio al que pertenecen.

En estas interfaces se muestran dos componentes:

El botón que se encuentra en las dos interfaces y se utiliza para

actualizar las gráficas o las tablas.

Page 74: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Capítulo III

- 66 -- Monitoreo y control para PostgreSQL

Figura 28: Listado de tiempo para actualizar las gráficas.

El listado de tiempo, como se refleja en la figura 28, se localiza solamente en la

interfaz de visualización de gráficas para seleccionar el tiempo en que se

actualizarán los datos representados en las mismas.

3.3 Conclusiones del capítulo.

En este capítulo quedó reflejada la implementación de la herramienta a través de los

diagramas de componentes para los CU Registrar servicio web, Mostrar datos de

Procesos del SO y Mostrar datos de transacciones a las BD donde se mostraron los

archivos físicos de la aplicación. Además se detalló, con la utilización de un diagrama de

despliegue, una propuesta para la implantación de la herramienta. Para finalizar se

describió el uso de la aplicación a través de un esbozo del manual de usuario.

Page 75: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Conclusiones

- 67 -- Monitoreo y control para PostgreSQL

CONCLUSIONES

Una vez concluida la investigación se obtuvo una versión 1.0 de una herramienta Web

para monitorear el rendimiento del gestor de base de datos PostgreSQL.

Además se obtuvieron los siguientes resultados:

Se caracterizaron varias de las herramientas de monitoreo y control existentes

para PostgreSQL, definiéndose sus principales ventajas y desventajas para

arribar finalmente a la conclusión de elaborar una herramienta sobre la Web

2.0 que posibilite el monitoreo y control del funcionamiento del gestor

PostgreSQL.

Se definieron las tecnologías de software libre adecuadas para el desarrollo

de la herramienta web de monitoreo y control para PostgreSQL entre las que

se encuentran HTML, JavaScript, CSS y Python como lenguajes de

programación, las librería ExtJS y Highcharts, el framework Django,

xmlrpclib y el driver Psycopg2 de Python y como herramientas

complementarias Eclipse y Visual Paradigm.

Se elaboraron y representaron claramente los diagramas de análisis y diseño

de la aplicación empleando para ello UML.

Se implementó la herramienta de monitoreo y control para PostgreSQL sobre

la Web 2.0, y se incluyó un esbozo de manual de usuario explicando sus

funcionalidades.

Page 76: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Recomendaciones

- 68 -- Monitoreo y control para PostgreSQL

RECOMENDACIONES

Se recomienda una vez concluido el trabajo:

Culminar la implementación de las funcionalidades desarrolladas hasta el

momento en el módulo SW para llevarlas hasta su interfaz de usuario y

comenzar el desarrollo de las estadísticas identificadas para los archivos de

registro.

Continuar la investigación con el propósito de aumentar las funcionalidades

de la herramienta, obteniendo mejoras en futuras versiones de la misma.

Realizar múltiples pruebas a la herramienta durante un período, para verificar

que cumple totalmente con las funcionalidades propuestas.

Integrar la herramienta de monitoreo y control a la Interfaz de

Administración desarrollada en el Centro de Desarrollo de Software de Villa

Clara.

Page 77: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Referencias bibliográficas

- 69 -- Monitoreo y control para PostgreSQL

REFERENCIAS BIBLIOGRÁFICAS

[1]. Barcia, Diego, 2003. ¿Qué es CSS? Maestros del Web. Disponible en:

http://www.maestrosdelweb.com/editorial/introcss/ [Accedido Octubre 21,

2011].

[2]. Burleson Enterprises, 2009. Ion Oracle Resumen de características. ION

IntelligentOracle Tunning. Disponible en: http://www.ion-dba.com/index.html.

[3]. Camps Paré, Rafael, 2005. 1.2. Prestaciones | Dataprix. DATAPRIX. Disponible

en: http://www.dataprix.com/12-prestaciones [Accedido Octubre 12, 2011].

[4]. Consorcio SIU, 2011. Monitoreando y midiendo el rendimiento de un servidor

Postgresql en Sistemas Windows, Linux y Solaris. Parte. Scribd. Disponible en:

http://es.scribd.com/doc/49314263/monitoreo-postgresql [Accedido Octubre 18,

2011].

[5]. Eclipse Foundation, 2011. Eclipse - The Eclipse Foundation open source

community website. EclipseCON. Disponible en: http://www.eclipse.org/

[Accedido Octubre 24, 2011].

[6]. Frost, R, 1989. Bases de datos y sistemas expertos. Ingeniería del

conocimiento. En Madrid: Díaz de Santos, pág. 90.

[7]. García, Luis, 2008. Gestión de Bases de Datos

bajo PostgreSQL

para Sistemas de Misión Crítica. Disponible en:

http://www.onuva.com/files/OnuvaConfI/onuva_confI_postgresql.pdf.

[8]. Gerstel, Jorgen, 2009. Network Manager. Nino. Disponible en:

http://nino.sourceforge.net/nino/index.html [Accedido Octubre 18, 2011].

[9]. González, Carlos D., 2011. Curso Base de Datos PostgreSQL, SQL avanzado y

PHP. Curso PostgreSQL, SQL avanzado y PHP. Disponible en:

http://www.usabilidadweb.com.ar/postgre.php [Accedido Octubre 12, 2011].

[10]. Grupo Deficion.de, 2008. Definición de monitoreo - Qué es, Significado y

Concepto. Definicion.de. Disponible en: http://definicion.de/monitoreo/

[Accedido Octubre 14, 2011].

[11]. Grupo de Desarrollo, 2002. Pgwatch – Cybertec Enterprise PostgreSQL

Monitor « Cybertec PostgreSQL Pros' Blog & Archives. CyberTec. Disponible

en: http://www.cybertec.at/en/postgresql_products/pgwatch-cybertec-enterprise-

postgresql-monitor [Accedido Octubre 11, 2011].

Page 78: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Referencias bibliográficas

- 70 -- Monitoreo y control para PostgreSQL

[12]. Grupo de desarrollo, 2003. Ventajas de PostgreSQL — Soporte de

TiendaLinux.com. TiendaLinux.com. Disponible en:

http://soporte.tiendalinux.com/portal/Portfolio/postgresql_ventajas_html

[Accedido Octubre 14, 2011].

[13]. Grupo Highcharts, 2010. Highcharts - Highcharts product. Highcharts JS.

Disponible en: http://www.highcharts.com/products/highcharts [Accedido

Octubre 21, 2011].

[14]. Grupo Hooping, 2008. HTML El lenguaje HTML en el diseño de páginas web.

Características y elementos básicos del lenguaje HTML para el diseño web.

Hooping.net. Disponible en: http://www.hooping.net/faq-html.aspx [Accedido

Octubre 21, 2011].

[15]. Grupo LogicMonitor, 2008. PostgreSQL Monitoring | PostgreSQL Database

Monitoring | PostgreSQL Databases | LogicMonitor. LogicMonitor. Disponible

en: http://www.logicmonitor.com/monitoring/databases/postgres-monitoring/

[Accedido Octubre 11, 2011].

[16]. Grupo Nagios, 2009. Nagios - The Industry Standard in IT Infrastructure

Monitoring. Nagios. Disponible en: http://www.nagios.org/ [Accedido Octubre

18, 2011].

[17]. Grupo OpenNMS, 2000. The OpenNMS Project. OpenNMS. Disponible en:

http://www.opennms.org/ [Accedido Octubre 18, 2011].

[18]. Grupo Pandora FMS, 2005. Pandora FMS - the Flexible Monitoring System.

Pandora FMS. Disponible en: http://pandorafms.org/index.php?lang=es

[Accedido Octubre 18, 2011].

[19]. Grupo PostgreSQL Wiki, 2009. Usando Munin - PostgreSQL Wiki.

WikiPostgreSQL. Disponible en: http://wiki.postgresql.org/wiki/Usando_Munin.

[20]. Grupo Sencha, 2011. ExtJS 3.4 | Products | Sencha. Sencha. Disponible en:

http://www.sencha.com/products/extjs3/ [Accedido Octubre 21, 2011].

[21]. Grupo Zabbix, 2001. Homepage of Zabbix: An Enterprise-Class Open Source

Distributed Monitoring Solution. Zabbix. Disponible en: http://www.zabbix.com/

[Accedido Octubre 18, 2011].

[22]. Grupo Zenoss, 2005. The Cloud Management Company | Zenoss. Zenoss.

Disponible en: http://www.zenoss.com/ [Accedido Octubre 18, 2011].

[23]. Kaufmann, Manuel, 2008. Django y Python. El Vortex Tecnológico. Disponible

en: http://raulespinola.wordpress.com/2009/02/03/django-y-python/ [Accedido

Octubre 21, 2011].

Page 79: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Referencias bibliográficas

- 71 -- Monitoreo y control para PostgreSQL

[24]. Malcer, 2010. Licencia BSD, el verdadero software libre. Ext4 Blog, el rincón

de Malcer. Disponible en: http://ext4.wordpress.com/2010/08/31/licencia-bsd-el-

verdadero-software-libre/ [Accedido Noviembre 18, 2010].

[25]. Matéu i Piñol, Carles, 2008. XMLRPC. Cibertenia. Disponible en:

http://www.cibernetia.com/manuales/servicios_web/2_xml-rpc.php [Accedido

Diciembre 1, 2011].

[26]. Oetiker, Tobias, 2011. MRTG - Tobi Oetiker's MRTG - The Multi Router

Traffic Grapher. MRTG. Disponible en: http://oss.oetiker.ch/mrtg/ [Accedido

Octubre 18, 2011].

[27]. Oliveira, Fernando Ike de, 2008. PostgreSQL: Performance Tuning. Slideshare.

Disponible en: http://www.slideshare.net/fernandoike/postgresql-performance-

tuning [Accedido Noviembre 18, 2010].

[28]. Prado, Guillermo, 2007. Características del lenguaje HTML. Universidad de la

Rioja. Disponible en:

https://belenus.unirioja.es/~guprado/pagweb/carachtml.html [Accedido Octubre

21, 2011].

[29]. Python community, 1990. Python Programming Language – Official Website.

Python. Disponible en: http://www.python.org/ [Accedido Octubre 21, 2011].

[30]. Retout, Tim, 2008. Integrated Monitoring for PostgreSQL. Wiki PostgreSQL.

Disponible en: http://wiki.postgresql.org/images/0/0c/Postgres-monitoring.pdf.

[31]. Rubio, Nuria, 2006. JavaScript. JavaScript. Disponible en:

http://perso.wanadoo.es/javascript_12/ [Accedido Octubre 21, 2011].

[32]. Sierra, Daniel, 2009. Visual Paradigm for UML. Slideshare. Disponible en:

http://www.slideshare.net/vanquishdarkenigma/visual-paradigm-for-uml

[Accedido Octubre 24, 2011].

[33]. Tatsuhito Kasahara, 2009. PgFoundry: pg_statsinfo: Información del Proyecto.

PgFoundry. Disponible en: http://pgfoundry.org/projects/pgstatsinfo.

[34]. Tom Copeland, 2010. PgFouine - a PostgreSQL log analyzer. PgFouine.

Disponible en: http://pgfouine.projects.postgresql.org/index.html.

[35]. Tom Copeland, 2005. PgFoundry: Practical Query Analyzer: Información del

Proyecto. PgFoundry. Disponible en: http://pgfoundry.org/projects/pqa/.

[36]. Valdés, Damián, 2007. ¿Qué es JavaScript? Maestros del Web. Disponible en:

http://www.maestrosdelweb.com/editorial/%C2%BFque-es-javascript/

Page 80: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Referencias bibliográficas

- 72 -- Monitoreo y control para PostgreSQL

[Accedido Octubre 21, 2011].

[37]. Valdés, Damián Pérez, 2008. ¿Qué son las bases de datos? Maestros del Web.

Disponible en: http://www.maestrosdelweb.com/principiantes/%C2%BFque-son-

las-bases-de-datos/ [Accedido Noviembre 18, 2010].

[38]. Varrazzo, Daniele, 2010. Psycopg. Psycopg. Disponible en: http://initd.org/

[Accedido Diciembre 1, 2011].

Page 81: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Bibliografía

- 73 -- Monitoreo y control para PostgreSQL

BIBLIOGRAFÍA

[1]. PostgreSQL: Awards. PostgreSQL. Disponible en:

http://www.postgresql.org/about/awards [Accedido Noviembre 18, 2010].

[2]. Álvarez, Miguel Ángel, 2003. Qué es Python. Lenguaje de programación de

propósito general, orientado a objetos, que también puede utilizarse para el

desarrollo web. Disponible en:

http://www.desarrolloweb.com/articulos/1325.php [Accedido Noviembre 11,

2010].

[3]. Álvarez, Rubén, 2006. Qué es SQL. DesarrolloWeb.com. Disponible en:

http://www.desarrolloweb.com/articulos/262.php [Accedido Noviembre 18,

2010].

[4]. Cameron, Nadia, 2003. PostgreSQL affiliates .ORG domain - Computerworld.

Compute World. Disponible en:

http://www.computerworld.com.au/article/62894/postgresql_affiliates_org_doma

in/ [Accedido Noviembre 18, 2010].

[5]. Django Software Foundation, 2005. Django | The Web framework for

perfectionists with deadlines. Meet Django. Disponible en:

http://www.djangoproject.com/ [Accedido Noviembre 11, 2010].

[6]. Django Software Foundation, 2010. Django web framework | Django en

Español, Django-es. ¡Descubre Django! Disponible en: http://django.es/

[Accedido Noviembre 11, 2010].

[7]. Eguíluz Pérez, Javier, 2009. Introducción a CSS. Disponible en:

http://www.librosweb.es/css/pdf/introduccion_css.pdf.

[8]. Eguíluz Pérez, Javier, 2008. Introducción a XHTML. Disponible en:

http://www.librosweb.es/xhtml/pdf/introduccion_xhtml.pdf.

[9]. Frost, R, 1989. Bases de datos y sistemas expertos. Ingeniería del

conocimiento. En Madrid: Díaz de Santos, pág. 90.

[10]. Gil, Fidel, Javier Albrigo & Javier Do Rosario, 2005. SISTEMAS DE

GESTIÓN DE BASE DE DATOS

SGBD / DBMS. Disponible en:

http://www.google.com.cu/url?sa=t&source=web&cd=8&ved=0CFAQFjAH&ur

l=http%3A%2F%2Fmachtiani.icyt.df.gob.mx%2Ffile.php%2F1%2Fmoddata%2

Fforum%2F1%2F9240%2FSGBD_2.pdf&rct=j&q=%20SGBD&ei=zQncTIaeL

MWnnQehtuUW&usg=AFQjCNGFcVAs91PHuc4TzzAE3BjpKNrBiQ&cad=rja

[Accedido Noviembre 11, 2010].

Page 82: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Bibliografía

- 74 -- Monitoreo y control para PostgreSQL

[11]. Jairo Chapela Martínez, 2007. Introducción al entorno de desarrollo Eclipse.

Disponible en: http://www-

gris.det.uvigo.es/wiki/pub/Main/MiscResources/Manual_Eclipse.pdf.

[12]. Javier Eguíluz Pérez, 2009. Introducción a JavaScript. Disponible en:

http://www.librosweb.es/javascript/pdf/introduccion_javascript.pdf.

[13]. Jesús Manuel Montero Garrido, 2010. Plataforma Eclipse Introducción

Técnica. Disponible en:

http://150.244.56.228/descargas_web/cursos_verano/20040801/Jesus_Montero/d

ocumentacion_eclipse.pdf.

[14]. Lai, Eric, 2006. Sony Online opts for open-source database over Oracle -

Computerworld. Compute World. Disponible en:

http://www.computerworld.com/s/article/109722/Sony_Online_opts_for_open_s

ource_database_over_Oracle?taxonomyId=053 [Accedido Noviembre 18, 2010].

[15]. Malcer, 2010. Licencia BSD, el verdadero software libre. ext4 Blog, el rincón

de Malcer. Disponible en: http://ext4.wordpress.com/2010/08/31/licencia-bsd-el-

verdadero-software-libre/ [Accedido Noviembre 18, 2010].

[16]. Martínez, Rafael, 2009. Sobre PostgreSQL | www.postgresql-es.org. Sobre

PostgreSQL. Disponible en: http://www.postgresql-es.org/sobre_postgresql

[Accedido Noviembre 11, 2010].

[17]. Oliveira, Fernando Ike de, 2008. PostgreSQL: Performance Tuning.

Slideshare. Disponible en: http://www.slideshare.net/fernandoike/postgresql-

performance-tuning [Accedido Noviembre 18, 2010].

[18]. Sencha Inc., 2006. Sencha - Ext JS - Client-side JavaScript Framework. Ext JS

Cross-Browser Rich Internet Application Framework. Disponible en:

http://www.sencha.com/products/js/ [Accedido Noviembre 11, 2010].

[19]. Tomás Javier Robles Prado & Raúl Turienzo Fernández, Introducción a

PostgreSQL. Disponible en: http://users.servicios.retecal.es/tjavier/intdb.pdf.

[20]. Valdés, Damián Pérez, 2008. ¿Qué son las bases de datos? Maestros del Web.

Disponible en: http://www.maestrosdelweb.com/principiantes/%C2%BFque-son-

las-bases-de-datos/ [Accedido Noviembre 18, 2010].

[21]. Visual Paradigm Foundation, 2010. UML CASE tool for software

development. Visual Paradigm for UML - UML tool for software application

development. Disponible en: http://www.visual-paradigm.com/product/vpuml/

[Accedido Noviembre 11, 2010].

Page 83: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Glosario de términos

- 75 -- Monitoreo y control para PostgreSQL

GLOSARIO DE TÉRMINOS

Apache: es programa de servidor HTTP

Web de código abierto.

API (Application Program Interface):

Conjunto de convenciones

internacionales que definen cómo debe

invocarse una determinada función de

un programa desde una aplicación.

Dashboard (tablero de control): es una

página desarrollada en base a tecnología

web mediante la cual se despliega en

tiempo real información de la empresa

extraída de varias fuentes o bases de

datos. Su característica de tiempo real

otorga a los usuarios un conocimiento

completo sobre la marcha de la empresa

y permite hacer análisis instantáneos e

inteligencia de negocios.

FTP (File Transfer Protocol): es un

protocolo de red para la transferencia de

archivos entre sistemas conectados a

una red.

JDBC (Java Database Connectivity):

permite la ejecución de operaciones

sobre BD desde Java.

NFS (Network File System): es utilizado

para sistemas de archivos distribuido en

un entorno de red.

ODBC (Open DataBase Connectivity):

es un estándar de acceso a BD.

RRDtool (Round Robin Database tool):

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.

SNMP (Simple Network Management

Protocol): Protocolo estándar para la

administración de red en Internet.

Prácticamente todos los sistemas

operativos, enrutadores, conmutadores,

módems cable o ADSL módem,

firewalls, etc. se ofrecen con este

servicio.

SSH (Secure Shell): sirve para acceder a

máquinas remotas a través de una red.

TCP/IP: protocolos de red en los que se

basa Internet y permiten la transmisión

de datos entre computadoras.

UML (Unified Modeling Language -

Lenguaje Unificado de Modelado):

Lenguaje de modelado de sistemas de

software.

Web 2.0: es la representación de la

evolución de las aplicaciones

tradicionales hacia aplicaciones web

enfocadas al usuario final.

WMI (Windows Management

Instrumentation): una iniciativa que

pretende establecer normas estándar

para tener acceso y compartir la

información de administración a través

de la red de una empresa.

XML (Extensible Markup Lenguage):

Norma recomendada por el WC3 para

definir nuevos tipos de documentos,

permitiendo al usuario definir sus

propias etiquetas de marcado para

extender las capacidades del html.

Page 84: HERRAMIENTA LIBRE DE MONITOREO Y CONTROL PARA …

Glosario de términos

- 76 -- Monitoreo y control para PostgreSQL