La monitorización sintética de sitios web en Zabbix, también conocida como pruebas sintéticas, consiste en simular el comportamiento del usuario al interactuar con un sitio web, una API o una aplicación web. Estas simulaciones permiten evaluar continuamente el rendimiento, la disponibilidad y la experiencia del usuario, incluso cuando no hay acceso real.
Al crear estos escenarios automatizados, es posible monitorizar de forma proactiva todo el flujo de la aplicación, identificando fallos, ralentizaciones y problemas de disponibilidad antes de que afecten a los usuarios finales. Además, la monitorización sintética permite probar recorridos completos del usuario, medir los tiempos de respuesta, evaluar el rendimiento de carga y comparar resultados de diferentes regiones geográficas, lo que garantiza una mayor fiabilidad y calidad en el entorno monitorizado.
En este artículo, explicamos con más detalle la monitorización sintética, con ejemplos de configuraciones en Zabbix. ¡Sigue leyendo!
Recursos de Zabbix para monitorización sintética
Zabbix cuenta con dos funciones principales para realizar monitorización sintética: escenarios web y explorador de elementos. Veamos cómo funciona cada una.
Escenarios Web
En Zabbix, la función Escenarios Web permite comenzar a monitorizar aplicaciones web o sitios web mediante secuencias de pasos. Toda la configuración se realiza directamente a través de la interfaz de Zabbix, generalmente mediante plantillas, lo que facilita la aplicación del escenario a uno o más hosts simultáneamente.
Cada escenario web consta de pasos que simulan la navegación o la interacción con páginas específicas, lo que permite la validación continua de la disponibilidad y el rendimiento de la aplicación monitorizada.
Basándose en este monitoreo, Zabbix puede devolver varias métricas importantes, entre ellas:
- Velocidad media de descarga por segundo considerando todos los pasos del escenario;
- Identificación del paso que falló, en caso de producirse un error;
- Mensaje de error detallado;
- Tiempo de respuesta para cada paso;
- Código HTTP devuelto por la aplicación.
Toda esta información se almacena en la base de datos de Zabbix y puede utilizarse para:
- Generación de gráficos;
- Creación de triggers;
- Emisión de alertas;
- Supervisión de paneles de control.
Navegador de Items
A partir de la versión 7.0, Zabbix incorporó la función de navegador, ampliando significativamente las capacidades de monitorización web y permitiendo la creación de escenarios de recopilación de datos, tanto sencillos como muy complejos.
Este nuevo tipo de elemento utiliza JavaScript junto con un Google Chrome WebDriver, activado por Selenium, lo que garantiza una simulación mucho más fiel del comportamiento real de un usuario navegando en un navegador moderno.
Con esta función, Zabbix puede simular varias acciones de navegación típicas, como por ejemplo:
- Hacer clic en botones y elementos específicos;
- Introducir texto en campos de formulario;
- Navegar entre diferentes páginas o URL;
- Localizar texto o elementos en el DOM;
Realizar comprobaciones visuales mediante capturas de pantalla; - Ejecutar cualquier lógica adicional compatible con JavaScript + Selenium.
Esto permite crear desde validaciones de disponibilidad sencillas hasta escenarios completos, como la verificación de inicio de sesión, la verificación del panel de control, las pruebas del flujo de compra, la cumplimentación de formularios y otras interacciones complejas.
Creación de escenarios realistas para la monitorización sintética
A continuación, crearemos una plantilla que compruebe el estado de la página de inicio de sesión de Zabbix y realice la autenticación y algunas otras comprobaciones.
Para empezar: en su entorno Zabbix, cree una plantilla y navegue hasta la opción «Escenarios web»:
Haz clic en Crear escenario web y configura lo siguiente:
- Definir un nombre = Estado del frontend;
- Intervalo de actualización = 15 min (15 minutos);
- Intentos = 1 (en este caso, solo 1 intento);
- Agente = Zabbix.
En «Variables», defina:
- {contraseña} – {$BNCHMRK.PASS} – macro que almacenará la contraseña del usuario;
- {nombre de usuario} – {$BNCHMRK.USER} – macro que almacenará el nombre de usuario.
En la misma pantalla, haz clic en «Pasos».
A continuación, haz clic en «Agregar» para añadir un nuevo paso:
Ahora, completa la siguiente información en los campos correspondientes:
- En «Nombre», escriba «01. página de inicio»;
- URL = http://{$URL}/index.php;
- Tiempo de espera = 15 s, que será el tiempo máximo de espera para que la página se cargue por completo;
- Cadena requerida = Zabbix SIA, en este caso es lo que Zabbix espera encontrar para confirmar que la página se ha cargado por completo;
- Códigos de estado requeridos = 200, que es el código HTTP que significa «correcto».
Adjúntelo a un host y complete la macro {$URL}. La siguiente información debería estar disponible después de este paso, en la pestaña «Monitorización» > «Hosts»:
En el campo de datos más reciente, al buscar el host y el elemento creados, podemos ver la opción para visualizar los gráficos:
Para crear la prueba de autenticación, agregue un nuevo paso con la siguiente configuración:
- Nombre = 02. Prueba de inicio de sesión;
- URL = http://{$URL}/index.php;
- Campos de la publicación:
- nombre = {nombre de usuario};
- contraseña = {contraseña};
- ingresar = Iniciar sesión;
- Variables:
- {sid} – regex:name=»csrf-token» content=»([0-9a-z]{16})»;
- Tiempo de espera = 15 s, que será el tiempo máximo de espera para que la página se cargue por completo;
- Cadena requerida = Monitoring, que hace referencia al menú de Zabbix después de iniciar sesión correctamente.
Por lo tanto, deberíamos tener ambos pasos configurados y que devuelvan un estado «ok».
Sin embargo, el paso «02. Prueba de inicio de sesión» solo devolverá ok si la contraseña de usuario configurada en la macro {$BNCHMRK.PASS} es correcta.
La imagen a continuación muestra el último campo de datos para el elemento «02. Prueba de inicio de sesión»:
Si la contraseña del usuario es incorrecta en la macro, el resultado será similar a este:

Métricas y alertas
Al usar Escenarios Web en Zabbix, se recopilan automáticamente varias métricas esenciales, como la velocidad de descarga, el tiempo de respuesta y el código HTTP devuelto por la aplicación monitorizada. Esta información permite evaluar la disponibilidad y el rendimiento de cada etapa del escenario configurado.
Basándose en estas métricas, es posible crear triggers que ayuden a Zabbix a detectar problemas de forma proactiva, con alertas que se activan cuando:
- La velocidad de descarga es demasiado baja;
- El tiempo de respuesta supera el límite óptimo;
- El código HTTP indica un error (4xx o 5xx);
- Algún paso específico del escenario falla.
La imagen que aparece a continuación muestra un ejemplo de un trigger que se activará si el código HTTP devuelto no es 200 (el código que indica que todo está bien):
Estas alertas permiten reaccionar rápidamente ante problemas de rendimiento, inestabilidades o interrupciones del servicio, lo que garantiza una mayor visibilidad del comportamiento de la aplicación y reduce el impacto en los usuarios finales.
Ejemplos prácticos de monitorización sintética de sitios web
A continuación, mostramos un seguimiento de la página de inicio de sesión de Zabbix, utilizando el elemento Navegador, disponible a partir de Zabbix 7.0:

La siguiente imagen muestra un ejemplo de un panel de control resultante de la configuración anterior:

Para lograr esta monitorización, es necesario integrar el servidor Zabbix o el proxy Zabbix con el servidor Selenium o un controlador web como ChromeDriver. Esta integración se encarga de controlar e interactuar con el navegador, realizando pruebas como hacer clic en botones y rellenar formularios, además de recopilar métricas de todos los pasos involucrados.
En el ejemplo anterior, se utilizó un contenedor de Selenium. Pero supongamos que el usuario tiene Docker instalado y funcionando correctamente. En ese caso, es necesario ejecutar el siguiente comando:
docker run --name browser \ -d -p 4444:4444 \ --shm-size="2g" \ selenium/standalone-chrome:latest
Dónde,
- docker run –name browser – Crea un nuevo contenedor Docker y lo denomina «browser»;
- -d – Ejecutar el contenedor en segundo plano;
- -p 4444:4444 – Realiza la asignación del puerto interno 4444 del contenedor al puerto 4444 del host;
- –shm-size=»2g» – Asigna 2 GB de memoria compartida al contenedor; esto es para garantizar el correcto funcionamiento de Google Chrome, ya que en algunos casos se requiere un uso significativo de memoria para evitar fallos.
- selenium/standalone-chrome:latest – Define la imagen de Docker que se va a utilizar. En este caso, la más reciente del repositorio de Selenium con Chrome.
Después de ejecutar el comando, es necesario verificar si el contenedor está en funcionamiento ejecutando el comando «docker ps» o «docker container os», como se muestra en el siguiente ejemplo:
También puedes comprobarlo mediante curl o acceder a él a través de un navegador para verificar el estado de Selenium.
- A través del navegador: Acceda a la dirección IP y al puerto 4444:
- Mediante curl: Recupere el contenido de la página web del servidor Selenium usando «curl -L 192.0.2.1:4444» en la terminal del host que aloja el contenedor o en la terminal del servidor donde se encuentra el servidor Zabbix:
Una vez completadas las validaciones, es hora de configurar el servidor o proxy de Zabbix para que pueda usar WebDriver. La línea de configuración es la misma en ambos casos. En el ejemplo siguiente, la configuraremos en el proxy de Zabbix.
- Abra el archivo de configuración del proxy:
vi /etc/zabbix/zabbix_proxy.conf
- Localice y configure la URL de WebDriver:
WebDriverURL=http://localhost:4444
En este ejemplo, el contenedor WebDriver se encuentra en la misma máquina virtual (VM) que el Proxy. Además de tratarse de una configuración de laboratorio, la VM se ha configurado con recursos considerables. En un entorno de producción, se recomienda utilizar una VM dedicada para WebDriver o una VM independiente del servidor/proxy de Zabbix para evitar la contención de recursos.
- Reinicie el servicio Zabbix Proxy:
systemctl restart zabbix-proxy
Una vez hecho esto, veamos cómo realizar la configuración en la interfaz de Zabbix.
- Crea un host;
- Nombra el host como: ZABBIX-WEB;
- Añade la plantilla «Sitio web por navegador»;
- En el campo «Grupos de hosts«, introduce «Aplicaciones«;
- Define el proxy configurado con el controlador web.
A continuación, complete las macros según su escenario:
- {$WEBSITE.DOMAIN} – Esta es la URL o la dirección IP que se utiliza para acceder a la aplicación.
- {$WEBSITE.GET.DATA.INTERVAL} – Defina el intervalo de recolección; en este caso, 10 minutos son suficientes.
- {$WEBSITE.SCHEME} – Define si el protocolo es HTTP o HTTPS.
Ahora, solo queda esperar a que los resultados aparezcan en el campo de datos más reciente o acceder a la pantalla del panel de control ya configurada en la plantilla:
Para lograr el resultado que se muestra en el panel de control a continuación, fue necesario crear un elemento de navegador, similar al elemento que ya existe por defecto en la plantilla:
El nuevo dispositivo es capaz de realizar pruebas de inicio de sesión, recopilar métricas de página y tomar capturas de pantalla de los procesos de inicio y cierre de sesión, así como registrar los fallos de inicio de sesión cuando sea necesario.
La respuesta JSON es similar a la que se muestra a continuación, con métricas para cada paso. A partir de esto, es posible crear nuevos elementos dependientes, LLD y otras posibilidades de monitorización.
Otro punto interesante es la creación de elementos dependientes para filtrar las capturas de pantalla generadas, como se muestra en el siguiente ejemplo:

Este filtro se puede ajustar en el panel de control de Zabbix:
Debes marcar la opción «Mostrar miniatura» para que la imagen aparezca en el panel de control.
También cabe destacar que las imágenes se almacenan en la base de datos en formato base64. Por lo tanto, en el último campo de datos, la imagen se identifica con un valor binario:
Con todos estos datos e información a mano, es posible crear nuevos triggers, además de los ya existentes, y crear nuevos elementos con pruebas de rendimiento y navegabilidad.
Conclusión sobre la monitorización sintética
La combinación de Escenarios Web y la nueva función de Navegador en Zabbix representa un avance significativo en la monitorización sintética de sitios web y aplicaciones. Si bien Escenarios Web proporciona un método sencillo, robusto y ampliamente utilizado para validar la disponibilidad, medir los tiempos de respuesta e identificar errores HTTP, la función de Navegador amplía este concepto al permitir simulaciones de navegación realistas mediante JavaScript y Selenium.
Esta evolución permite reproducir fielmente el comportamiento del usuario final, incluyendo clics, cumplimentación de formularios, flujos de autenticación y validaciones visuales mediante capturas de pantalla.
El uso combinado de estos dos enfoques proporciona un ecosistema completo de métricas, que abarca desde la velocidad de descarga, los tiempos de respuesta por paso y los códigos HTTP hasta métricas avanzadas para la renderización, la carga de elementos y la evidencia visual. De esta forma, Zabbix ofrece no solo la monitorización sintética tradicional, sino también una comprensión profunda del rendimiento real de la aplicación, lo que permite identificar cuellos de botella antes de que afecten la experiencia del usuario.
Lleva tu sistema de monitorización al siguiente nivel con Zabbix.
¿Desea explorar las funcionalidades de los escenarios web y la monitorización del navegador en la práctica, y descubrir cómo implementar la monitorización sintética avanzada en su entorno? Visite el sitio web oficial de Zabbix y conozca la documentación, los casos de uso y las nuevas funciones que están transformando la forma en que los equipos de TI realizan el seguimiento de la experiencia del usuario y la disponibilidad de las aplicaciones.



















