Ya está aquí la versión 7.0 de Zabbix y, con ella, está cobrando importancia un nuevo concepto de monitorización: la monitorización sintética.

El monitorizado sintético tiene como objetivo ampliar aún más la visibilidad de la que disponemos al realizar el monitorizado de páginas y aplicaciones web; se acabó lo de recibir únicamente un error HTTP con el código XYZ o un comentario del tipo «Ah, pero tal recurso tarda mucho en cargarse», ahora, junto con esta información, podemos añadir una captura de pantalla que muestre cómo se veía realmente la página en el momento en que se produjo el problema y ver de verdad lo que nuestro cliente estaba viendo.

Este seguimiento es posible gracias a una pizca de JavaScript y a otra buena dosis de Selenium WebDriver.

WebDriver – Selenium es una herramienta de automatización para realizar pruebas en aplicaciones web. Permite controlar un navegador web mediante programación (aquí es donde entra en juego JavaScript), interactuando con los elementos de la página, rellenando formularios, haciendo clic en botones y comprobando el comportamiento de la aplicación. Es ideal para pruebas automatizadas y repetitivas.

Para utilizar esta monitorización en Zabbix, necesitaremos trabajar en dos frentes: el primero es en el propio Front-End, donde se realiza la configuración del host, se vincula la plantilla y se configuran las macros según lo que desee monitorizar; esta es la parte sencilla. La segunda parte se lleva a cabo en la CLI: debemos indicar a Zabbix cuál es la URL de WebDrive que va a utilizar y debemos instanciar los colectores que realizarán la monitorización sintética.

Pasemos a la práctica, pues. En primer lugar, asegúrese de que dispone de la versión 7.0 de Zabbix; debido a diversas dependencias de la arquitectura de Zabbix, esta supervisión solo funcionará a partir de la versión 7.0.

A continuación, deberá disponer de la plantilla en su Zabbix, que puede adquirirse aquí: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/website_browser

Por lo tanto, basta con crear un host, vincular la plantilla y rellenar las macros heredadas del host de la siguiente manera:

Una vez introducidos los archivos macro y creado el elemento, ahora debemos acceder a la interfaz de línea de comandos (CLI) del servidor para finalizar la instalación.

En la interfaz de línea de comandos (CLI) del servidor, debemos editar el archivo zabbix_server.conf e introducir las siguientes variables (por lo general, se encuentran al final del archivo)

WebDriverURL = ¿Cuál es la URL que permite acceder a Selenium?

Y

StartBrowserPollers = Número de pollers que se utilizarán para recopilar los elementos de tipo navegador

Si instala Selenium de forma local, puede dejar la variable configurada de la siguiente manera:

WebDriverURL=http://localhost:4444

En cuanto al número de pollers, podemos empezar con 1 e ir aumentándolo según sea necesario: StartBrowserPollers=1

Una forma sencilla de instalar Selenium es utilizarlo mediante un contenedor; para ello, primero debemos instalar Docker Engine en nuestro servidor y, a continuación, configurar el contenedor de Selenium. Para ello, podemos utilizar dos comandos:

Este primer comando es un script de instalación automática de Docker Engine en su servidor.

Y el segundo comando sirve para configurar el contenedor de Selenium en su servidor.

Para consultar el estado del contenedor, puede utilizar el comando

Una vez configurado el contenedor, basta con reiniciar el servicio del servidor Zabbix para que lea las nuevas variables y pueda utilizar Selenium y llevar a cabo la supervisión.

Volviendo al front-end, podemos acceder al panel de control del servidor que acabamos de supervisar, y el resultado esperado es:

Explicación de cada uno de los aspectos objeto de seguimiento:

  1. Tiempo de carga:
  1. Ejemplo práctico en YouTube: El tiempo total que tarda en cargarse por completo la página de inicio de YouTube, incluidos los vídeos recomendados, los menús, la barra de búsqueda, etc.
  1. Tamaño de la navegación:
  1. Ejemplo práctico en YouTube: El tamaño total de los datos transferidos al cargar la página de inicio de YouTube, incluidos todos los elementos visuales, scripts y demás recursos.
  1. Tiempo de navegación:
  1. Ejemplo práctico en YouTube: El tiempo que tarda el navegador en resolver la dirección de YouTube (tiempo de búsqueda de DNS), establecer una conexión TCP (tiempo de establecimiento de conexión TCP), negociar una conexión segura (tiempo de negociación TLS), solicitar recursos de la página (tiempo de solicitud) y recibir una respuesta del servidor (tiempo de respuesta).
  1. Sincronización de recursos:
  1. Ejemplo práctico en YouTube: el tiempo que tarda cada recurso (imagen, vídeo, script, etc.) necesario para cargar la página de inicio de YouTube en ser solicitado, respondido y cargado en el navegador.

Gráficos y estadísticas

Cada gráfico muestra la evolución de las métricas a lo largo del tiempo, lo que permite identificar patrones y posibles cuellos de botella en el rendimiento. Los valores mínimos (mín.), medios (med.) y máximos (máx.) ayudan a comprender la distribución de las métricas:

Estas métricas son fundamentales para supervisar el rendimiento del sitio web e identificar problemas que puedan afectar a la experiencia del usuario.

Leave a Reply

Your email address will not be published. Required fields are marked *

Made4it surge para suplir las necesidades del mercado, que viene exigiendo soluciones cada vez más personalizadas.