¿Aplicaciones web? ¿Blogs? ¡Necesitamos herramientas de monitoreo web!

En castellano la palabra «presente» tiene dos significados: el ahora, lo que nos sucede cuando estamos leyendo este artículo, y además significa obsequio o regalo. Aquí no hay confusión alguna, pero en inglés el adjetivo «free» puede significar gratis, sin costo, o también significar libre, que posee libertad. Hoy veremos varias aplicaciones libres que podremos usar como herramientas de monitoreo web.

Monitoreo de servidor web

¿Qué buscamos en las herramientas de monitoreo web? ¿Qué es un servidor web?

Un ordenador o dispositivo capaz de ofrecer información o datos por medio del protocolo HTTP (o de forma segura por HTTPS) entra en esta definición. Para su monitorización, considero dos grandes áreas: monitorización interna y monitorización externa.

En la parte interna son tres los puntos cruciales:

  1. Estado general de nuestro servidor web: carga, espacio en disco, temperatura de componentes (de no ser virtual); vamos, los valores básicos de cualquier servidor.
  2. Tráfico web: conexiones abiertas, en escucha, direcciones, etc.
  3. Información contenida en los registros o «logs»: muy importante configurar, dado el caso de que tengamos varios dominios en un mismo servidor web, a cada uno de ellos con su fichero independiente.

Para la monitorización externa:

  1. Pruebas sencillas: sí está en línea, tiempo en devolver respuesta, vencimiento de los certificados (si utiliza HTTPS), etc.
  2. Monitorización web transaccional: monitoriza procesos que cumplen una serie de pasos; el ejemplo más sencillo es saber si un usuario puede iniciar sesión en nuestro servidor web (digamos que tenemos un sencillo blog con WordPress instalado).

Pandora FMS

Si eres nuevo lector de nuestro blog, te traigo una sorpresa: ¡La versión de código abierto de Pandora FMS es capaz de trabajar con los 3 puntos de la monitorización interna (por medio de agentes software) y el primer punto de la monitorización externa!

¿No te lo puedes creer? Te explico:

Todo lo descrito hasta ahora lo puedes leer con mayor detalle en este enlace.

Probablemente uses un servidor web con Apache: para ese caso específico tenemos un excelente artículo escrito por el creador y fundador de Pandora FMS.

El monitoreo de redes (locales o de área amplia) está involucrado, de manera indirecta, con la monitorización web.

Luego de usar Pandora FMS y/o algunas de las herramientas de monitoreo web aquí indicadas, podréis hacer una optimización web, ya que el rendimiento de las aplicaciones web se ha convertido en un elemento clave para el correcto funcionamiento de las organizaciones.

Y no solo eso, en la versión Enterprise de Pandora FMS, además de la monitorización antes mencionada, se cuenta con un poderoso servidor de experiencia de usuario WEB que permite grabar transacciones web y separarlas en diferentes fases para su monitorización, dándonos como resultado, si la transacción pudo ser completada, el tiempo total que ha tardado y el tiempo parcial que ha tardado cada fase.

Además, si hay algún problema con la transacción tomará una captura de pantalla cuando no pueda continuar, que podremos ver fácilmente desde la consola web de Pandora FMS.

herramientas de monitoreo web 1

Herramientas de monitoreo web 2

El servidor de experiencia web (WUX) no solo reproduce la transacción grabada en periodos de tiempo, también recoge datos estadísticos sobre el servidor que aloja la página web, tales como el tiempo total en obtener el sitio web, tiempo en resolver la dirección IP del servidor (DNS), tiempo empleado en establecer la conexión segura SSL y tiempos empleados en transferir cada recurso de la web, como imágenes, código HTML, hojas de estilo o ficheros javascript.

Todo esto se representa en un apartado especial del agente donde podemos verlo de forma gráfica.

herramientas de monitoreo web 3

Herramientas de monitoreo web

Vuelvo a tocar el tema de las aplicaciones libres o «free»: las herramientas de monitoreo web que incluyo también poseen licencias más permisivas, como la del MIT o la misma licencia Apache, o más restrictivas como lo es el código abierto. Por ser un tema muy amplio, la Wikipedia recoge una gran cantidad de ellas, por no decir todas.

Otro tipo de herramienta de monitoreo web que debo nombrar es la ofrecida como servicio físico desde distintas partes del mundo. Aunque algunos son programas libres, obviamente tiene un coste monetario el mantener máquinas virtuales o reales a lo largo de todo el planeta, para que regularmente alcance nuestro sitio web desde tan lejanos sitios y luego nos informe de ello.

Hechas estas aclaratorias veamos, ahora sí, las herramientas de monitoreo web.

Por nuestra propia cuenta

Sí, nosotros mismos como programadores podemos echar mano de la “monitorización de usuario real”, colocando instrucciones específicas antes y después de que nuestro código realice operaciones de lectura y/o escritura en nuestro servidor web y llevando entonces un registro (log) adicional. Más adelante veremos su contraparte, la «experiencia de usuario» o «User Experience» (UX).
También debo mencionar la figura del «hombre pobre»: en el sitio CodeProject existe una herramienta con una licencia libre personalizada donde se narra cómo trabajar prácticamente de manera artesanal (no recomiendo este método, lo incluyo solo con propósitos didácticos).

Linux Dash

Considero que es la más ligera, pero no os dejéis engañar por las apariencias. Fue creada de manera minimalista pero versátil: podremos usar los lenguajes Go, Python o Node.js, ya que alguno de estos entornos de trabajo ya lo tendremos de seguro instalado en nuestro sistema. De esta manera no agregaremos carga solo por instalar una herramienta de monitoreo web.
Su repositorio está alojado en GitHub bajo licencia MIT y mantienen un demostrativo en línea del cual os muestro a continuación una captura de pantalla.

herramientas de monitoreo web 4

Leyenda: Linux Dash basic info

Considero que tiene una acertada agrupación: estado general, información básica (arriba mostrada), desempeño de red, cuentas y aplicaciones (tanto comunes como bases de datos, etc.). A su vez contienen módulos en un tablero, los cuales tienen un campo de búsqueda; mirad una indagación con la letra «p» en aplicaciones comunes:

herramientas de monitoreo web 5

Leyenda: Linux Dash common applications

La información que obtendremos es en tiempo real, pero no guarda información histórica ni alertas, solo tiene lo esencial. En fin, que si te consideras como uno de los soldados de Leónidas en la película histórica «Los 300 Espartanos» (la de 1962) de seguro os sentiréis cómodos con esta herramienta de monitoreo web.

eZ Server Monitor

Con licencia totalmente libre, GNU GPL3, escrito para GNU/Linux y con la posibilidad de incorporar temas visuales, pues como veréis arroja todo de una vez en un solo tablero (ver lo mismo todos los días aburre al ser humano):

herramientas de monitoreo web 6

Leyenda: eZ Server Monitor (GitHub)

Podremos saber del estado de los servicios según el estado de cada puerto (no olvidéis agregar el 41121 del protocolo Tentacle de Pandora FMS, si tenéis allí un agente software😉), prueba de conectividad con ping, memoria o los últimos usuarios conectados, entre otros valores. También es muy ligero; en YouTube con el identificador AW7KMmxJqnM podréis ver cómo habilitar un módulo en una simple Raspberry Pi 3.

También tiene una versión en BASH para usarlo en una terminal de comando, si os seguís inclinando por Esparta…

phpSysInfo

Seguimos con herramientas de monitoreo web realmente ligeras y phpSysInfo destaca en dos aspectos: la podremos usar de manera portátil y también funciona en ambiente Microsoft Windows®. Comparte características similares a las anteriores: de aquí nos interesa el manejo de las interfaces de red y su tráfico. Está traducida a varios idiomas; aquí la vemos en idioma chino simplificado:

herramientas de monitoreo web 7

Leyenda: phpSysInfo (sourceforge.net)

statusok

Ok, elevemos las apuestas: ¿Qué tal algo automatizado que nos avise por correo (o incluso Slack) si nuestra página web presenta problemas? Con licencia Apache 2.0 tenemos a statusok, que también es ligero y rápido de configurar. Podremos usar nuestro correo normal (pero recomiendan Gmail) o podremos crear nuestros propios complementos (avizoro para Twitter).

Pero antes de que corráis a instalar, esperad: necesita de una base de datos llamada InfluxDB y Grafana (ambos también de licencia libre) para funcionar. Destaco que aquí la «dificultad» es instalar y configurar las herramientas subyacentes; os dejo una captura de pantalla sobre cómo se ven los tres en funcionamiento:

herramientas de monitoreo web 8

Leyenda: statusok using InfluxDB and Grafana (GitHub)

Selenium

Para el segundo punto de la monitorización web externa os presento, con licencia libre Apache, a Selenium. Lleva años siendo desarrollado y está escrito en lenguaje Java. ¿Recordáis que os mencioné la «experiencia de usuario» (UX)? Pues bien, con Selenium podremos crear guiones y acciones (golpes de tecla, movimiento de ratón) para simular que un usuario interactúa con nuestra web, e introduce y realiza transacciones. Considero que son las herramientas de monitoreo web más complejas que existen porque Selenium tiene muchos componentes y complementos.

Como componentes tendremos una API para varios lenguajes como Python, Ruby, JavaScript, C# y por supuesto Java también. Como complementos podremos usar InternetExplorerDriver y compilar con Visual Studio 2008® y de esta manera usarlo en ambientes con Microsoft Windows®.

Pero Selenium es complejo. Muy complejo. Os explico rápidamente:

Primero debemos tener, claro está, un entorno de desarrollo llamado Selenium IDE.

Luego instalar Selenium Remote Control (o simplemente Selenium RC) para recibir las peticiones de nuestras instrucciones para realizar las transacciones de nuestro usuario virtual.

Una vez tengamos experiencia con lo anterior, os informo que ha sido abandonada esa herramienta… ¿Por qué la recomiendo? Porque forma parte de la monitorización clásica, de la cual más adelante os daré detalles.

Selenium WebDriver viene a ser el relevo de Selenium RC. Para que tengáis una idea, permite el uso de navegadores web sin interfaz gráfica, es decir, solamente por uso de comandos de texto. Notable es el llamado HtmlUnit, programa libre escrito en también en Java. También navegadores como Google Chrome y Mozilla Firefox soportan desde hace tiempo este modo, especialmente diseñado para las pruebas automatizadas. Incluso ya forma parte de las recomendaciones normalizadas del Consorcio WWW (W3C).

Selenium Grid: ¿Qué tal colocar en diferentes continentes, separados por miles de kilómetros como os pinté arriba, un agente software que pruebe nuestro sitio web? Pues con Selenium Grid organizamos nodos, cada uno con un WebDriver individual y para distintos navegadores. Considero esta la mejor monitorización web porque combina en tiempo y distancia real, pero con usuarios imaginarios en escenarios variopintos. ¿Qué tal para 7 mil usuarios? ¿Dos mil quinientos iniciando sesión desde África, unos solicitando unos servicios, otros no, siempre al mismo tiempo? Las posibilidades son prácticamente infinitas.

Otras herramientas de monitoreo web

Antes de despedirnos, recuerda que Pandora FMS es un software de monitorización flexible, capaz de monitorizar dispositivos, infraestructuras, aplicaciones, servicios y procesos de negocio.

Si tienes que monitorizar más de 100 dispositivos puedes disfrutar de una DEMO GRATUITA de 30 días de Pandora FMS Enterprise. Consíguela aquí.

Además, recuerda que si tus necesidades de monitorización son más limitadas tienes a tu disposición la versión OpenSource de Pandora FMS. Encuentra más información aquí.

No dudes en enviar tus consultas. ¡El equipazo de Pandora FMS estará encantado de atenderte!

* Artículo escrito por Jimmy Olano con la colaboración de Rafael Ameijeiras.

Shares