Supervisar sitios web con items de navegador

Introducción

Esta página le guía a través de los pasos necesarios para comenzar la monitorización básica de sitios web con browser items.

Para quién está dirigida esta guía

Esta guía está diseñada para nuevos usuarios de Zabbix y contiene el conjunto mínimo de pasos necesarios para habilitar la monitorización básica de sitios web con browser items. Si busca opciones de personalización avanzadas o requiere una configuración más avanzada, consulte la página Browser items o la sección Configuration del manual de Zabbix.

Requisitos previos

Antes de continuar con esta guía, debe descargar e instalar Zabbix server y Zabbix frontend de acuerdo con las instrucciones para su sistema operativo.

Según su entorno, algunos pasos de esta guía pueden diferir ligeramente. Esta guía se basa en un entorno que ejecuta Ubuntu.

Configurar WebDriver

Los elementos de navegador requieren un framework de automatización (ya sea Selenium Server o un WebDriver simple, por ejemplo, ChromeDriver) como un punto final de pruebas web que controla e interactúa con un navegador, ejecutando comandos de prueba como hacer clic en botones o introducir texto. Como ejemplo, esta guía utilizará Selenium Server con Chrome en un contenedor de Docker.

Se asume que Docker ya está configurado. Esta guía no cubre la configuración de Docker. Para obtener instrucciones de instalación, consulte Install Docker Engine on Ubuntu.

1. Inicie Selenium Server con Chrome en un contenedor de Docker con las siguientes opciones:

  • docker run --name browser - ejecuta un nuevo contenedor de Docker llamado "browser";
  • -p 4444:4444 - asigna el puerto 4444 de su host al puerto 4444 del contenedor (este es el puerto que usa Selenium Server para aceptar comandos);
  • -p 7900:7900 - asigna el puerto 7900 de su host al puerto 7900 del contenedor (este es el puerto que usa el servidor de Virtual Network Computing (VNC), lo que permite ver la interfaz gráfica del navegador de forma remota; requiere un cliente VNC);
  • --shm-size="2g" - asigna 2 GB de memoria compartida al contenedor (esto es importante para que Chrome funcione correctamente, ya que puede requerir una cantidad significativa de memoria compartida para evitar fallos);
  • -d - ejecuta el contenedor en modo detached, es decir, en segundo plano;
  • selenium/standalone-chrome:latest - especifica la imagen de Docker que se usará; en este caso, la última versión de Selenium Server with Chrome.
docker run --name browser \
-p 4444:4444 \
-p 7900:7900 \
--shm-size="2g" \
-d selenium/standalone-chrome:latest

2. Asegúrese de que el contenedor Docker browser se esté ejecutando y sea accesible.

  • Obtenga la dirección IP del contenedor (en este ejemplo, 192.0.2.1):
ip addr

# 1: lo: <LOOPBACK,UP,LOWER_UP>
#    ...
# 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ...
#    inet 192.0.2.1/16 brd 192.0.255.255 scope global docker0
#    ...
  • Pruebe la conexión al contenedor con Ncat:
nc -zv 192.0.2.1 4444

# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
  • Obtenga el contenido de la página web desde Selenium Server con curl:
curl -L 192.0.2.1:4444

# <!DOCTYPE html>
# <html lang="en">
# 
# <head>
#   <meta charset="utf-8"/>
#   <link href="favicon.svg" rel="icon" type="image/svg">
#   <meta content="width=device-width, initial-scale=1" name="viewport"/>
#   <link href="logo192.png" rel="apple-touch-icon"/>
#   <link href="manifest.json" rel="manifest"/>
#   <title>Selenium Grid</title>
# </head>
# 
# <body>
# ...

Para la solución de problemas, consulte la documentación de Docker.

Configurar Zabbix server

Los elementos de navegador son ejecutados y procesados por procesos de Zabbix browser poller que deben habilitarse ajustando el parámetro de configuración del server StartBrowserPollers. Además, el parámetro WebDriverURL debe especificar el endpoint de pruebas web configurado previamente.

De forma predeterminada, el parámetro StartBrowserPollers está establecido en 1, por lo tanto, solo necesita especificar el endpoint de pruebas web.

1. Abra el archivo de configuración de Zabbix server.

vi /etc/zabbix/zabbix_server.conf

2. Localice y establezca el parámetro WebDriverURL en el archivo de configuración de Zabbix server:

### Option: WebDriverURL
#   WebDriver interface HTTP[S] URL. For example http://localhost:4444 used with Selenium WebDriver standalone server.
#
# Mandatory: no
# Default:
# WebDriverURL=

WebDriverURL=192.0.2.1:4444

3. Reinicie Zabbix server.

systemctl restart zabbix-server

Configurar frontend de Zabbix

1. Inicie sesión en el frontend de Zabbix.

2. Cree un host en la interfaz web de Zabbix:

  • En el campo Host name, introduzca un nombre de host (por ejemplo, "git.zabbix.com").
  • En el campo Templates, escriba o seleccione el template "Website by Browser". Para obtener más información sobre este template, consulte Website by Browser.
  • En el campo Host groups, escriba o seleccione un grupo de hosts (por ejemplo, un nuevo grupo de hosts "Websites").

  • En la pestaña Macros, cambie a Inherited and host macros, busque las siguientes macros y haga clic en Change junto al valor de la macro para actualizarlo:
    • {$WEBSITE.DOMAIN} - Nombre de dominio (por ejemplo, git.zabbix.com/projects/ZBX/repos/zabbix/browse)
    • {$WEBSITE.GET.DATA.INTERVAL} - Intervalo de actualización de datos del item (por ejemplo, 15m)

3. Haga clic en el botón Add para crear el host. Este host representará el sitio web que desea supervisar.

Ver métricas recopiladas

¡Felicidades! En este punto, Zabbix ya está monitorizando el sitio web que especificó.

Para ver las métricas recopiladas, vaya a la sección de menú Monitoring → Hosts y haga clic en Dashboards junto al host.

Esta acción le llevará al dashboard del host (configurado a nivel de template) con las métricas más importantes recopiladas del sitio web.

Configurar alertas de problemas

Zabbix puede notificarle sobre un problema en su infraestructura mediante diversos métodos. Esta guía proporciona pasos básicos de configuración para enviar alertas por correo electrónico.

1. Vaya a User settings → Profile, cambie a la pestaña Media y agregue su correo electrónico.

2. Siga la guía para Receiving a problem notification.

La próxima vez que Zabbix detecte un problema, debería recibir una alerta por correo electrónico.

Pruebe su configuración

Para probar su configuración, podemos simular un problema real actualizando la configuración del host en el frontend de Zabbix.

1. Abra la configuración del host de su sitio web en Zabbix.

2. Cambie a la pestaña Macros y seleccione Inherited and host macros.

3. Haga clic en Change junto al valor de macro {$WEBSITE.DOMAIN} configurado previamente y establezca un nombre de dominio incorrecto (por ejemplo, /git.zabbix.com/projects/ZBX/repos/zabbix/browse).

4. Haga clic en Update para actualizar la configuración del host.

5. En unos momentos, Zabbix detectará el problema "Failed to get JSON of the requested website", porque no podrá conectarse al sitio web especificado. El problema aparecerá en Monitoring → Problems.

Si las alertas están configuradas, también recibirá la notificación del problema.

6. Cambie el valor de la macro de nuevo a su valor anterior para resolver el problema y continuar supervisando el sitio web.

Ver también

  • Creación de un item - cómo empezar a supervisar métricas adicionales.
  • Escalaciones de problemas - cómo crear escenarios de alertas de varios pasos (por ejemplo, primero enviar un mensaje al administrador del sistema y luego, si un problema no se resuelve en 45 minutos, enviar un mensaje al responsable del centro de datos).
  • Items de navegador - cómo configurar items de navegador.
  • template Website by Browser - información adicional sobre el template Website by Browser.