8 Monitoreu llocs web amb elements del navegador

Introducció

Aquest lloc us explica les passes necessàries per començar el monitoratge bàsic d'elements del navegador.

Per a qui és feta aquesta guia

Aquesta guia és dissenyada per a usuaris nous de Zabbix i conté el conjunt mínim de passes necessaris per habilitar el monitoratge bàsic de llocs web amb elements de navegador. Si busqueu opcions de personalització més complexes o us cal una configuració més avançada, consulteu la secció d'elements de navegador o la secció Configuració del manual Zabbix.

Prerequisits

Abans de continuar amb aquesta guia, heu de descarregar i instal·lar el servidor Zabbix i la interfície Zabbix segons les instruccions del vostre sistema operatiu.

Aquesta guia es basa en la configuració següent:

  • Versió Zabbix: 7.2 (instal·lat des de paquets)
  • Distribució del sistema operatiu: Ubuntu
  • Versió del sistema operatiu: 22.04 (Jammy)
  • Components Zabbix: Servidor, Frontend, Agent
  • Base de dades: MySQL
  • Servidor web: Apache

Configura WebDriver

Els elements del navegador requereixen un marc d'automatització (ja sigui Selenium Server o un WebDriver senzill, com ara ChromeDriver) com a punt final de prova web que controla i interacciona amb un navegador, executant ordres de prova, com ara fer clic a botons o introduir text. Com a exemple, aquesta guia emprarà Selenium Server amb Chrome en un contenidor Docker.

Se suposa que Docker ja és configurat. Aquesta guia no cobreix la configuració de Docker. Per obtindre instruccions d'instal·lació, consulteu Instal·leu Docker Engine a Ubuntu.

1. Inicieu Selenium Server amb Chrome en un contenidor Docker amb les opcions següents:

  • docker run --name browser - executa un nou contenidor Docker anomenat "browser";
  • -p 4444:4444 - mapeja el port 4444 del vostre equip al port 4444 del contenidor (aquest és el port emprat per Selenium Server per acceptar comandes);
  • -p 7900:7900: mapeja el port 7900 del vostre equip al port 7900 del contenidor (aquest és el port emprat pel servidor de Virtual Network Computing (VNC), que us permet veure la GUI del navegador de forma remota; requereix un client VNC);
  • --shm-size="2g": assigna 2 Go de memòria compartida al contenidor (això és important perquè Chrome funcioni correctament, ja que pot requerir una quantitat important de memòria compartida per evitar bloquejos);
  • -d - executa el contenidor en mode desconnectat, és a dir, s'executarà en segon pla;
  • selenium/standalone-chrome:latest - especifica la imatge de Docker a emprar; en aquest cas, la darrera versió de Selenium Server amb Chrome.
docker run --name browser \
       -p 4444:4444 \
       -p 7900:7900 \
       --shm-size="2g" \
       -d selenium/standalone-chrome:latest

2. Assegureu-vos que el contenidor Docker navegador s'és executant i accessible.

  • Recupereu l'adreça IP del contenidor (en aquest exemple, 192.0.2.1):
ip addr
       
       # 1: ho: <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
       #...
  • Proveu la connexió al contenidor amb Ncat:
nc -zv 192.0.2.1 4444
       
       # La connexió al port 192.0.2.1 4444 [tcp/*] s'ha aconseguit!
  • Recupereu el contingut de la pàgina web de Selenium Server amb 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>
       # ...

Per a la resolució de problemes, consulteu la documentació de Docker.

Configurar el servidor Zabbix

Els elements del navegador s'executen i processen mitjançant browser poller processos Zabbix que s'han d'habilitar ajustant el paràmetre de configuració del servidor StartBrowserPollers. A més, el paràmetre WebDriverURL hauria d'especificar el punt final de prova web configurat anteriorment.

De manera predeterminada, el paràmetre StartBrowserPollers s'estableix en 1, per tant només cal que especifiqueu el punt final de prova web.

1. Obriu el fitxer de configuració del servidor Zabbix.

vi /etc/zabbix/zabbix_server.conf

2. Localitzeu i configureu el paràmetre WebDriverURL al fitxer de configuració del servidor Zabbix:

### Opció: WebDriverURL
       # URL HTTP[S] de la interfície WebDriver. Per exemple, http://localhost:4444 emprat amb el servidor autònom de Selenium WebDriver.
       #
       # Obligatori: no
       # Per defecte:
       # WebDriverURL=
       
       WebDriverURL=192.0.2.1:4444

3. Reinicieu el servidor Zabbix.

systemctl restart zabbix-server

Configura la interfície Zabbix

1. Inicieu sessió a la interfície de Zabbix.

2. Crea un equip a la interfície web de Zabbix:

  • Al camp Nom d'equip, introduïu un nom d'equip(per exemple, "git.zabbix.com").
  • Al camp Plantilles, escriviu o trieu la plantilla "Lloc web per navegador". Per obtenir més informació sobre aquesta plantilla, veieu Website by Browser.
  • Al camp Grups d'equips, escriviu o trieu un grup d'equips (per exemple, un grup d'equips nou "Llocs web").

  • A la pestanya Macros, canvieu a Macros heretades i equips, cerqueu les macros següents i feu clic a Canviar al costat del valor de la macro per actualitzar-la:
    • {$WEBSITE.DOMAIN} - Nom de domini (per exemple, git.zabbix.com/projects/ZBX/repos/zabbix/browse)
    • {$WEBSITE.GET.DATA.INTERVAL} - Interval d'actualització de dades d'element (per exemple, 15 m)

3. Feu clic al botó Afegir per crear l'equip. Aquest equip representarà el lloc web que voleu monitorar.

Veure les mètriques recopilades

Felicitats! En aquest moment, Zabbix ja monitora el lloc web que heu definit.

Per veure les mètriques recopilades, aneu a la secció de menú Monitoratge → Equips i feu clic a Taulers al costat de l'equip.

Aquesta acció us durà al tauler de control de l'equip (configurat al nivell de plantilla) amb les mètriques més importants recollides del lloc web.

Configurant les alertes de problemes

Zabbix us pot notificar sobre un problema amb la vostra infraestructura mitjançant diversos mètodes. Aquesta guia ofereix passes bàsiques de configuració per enviar alertes per correu electrònic.

1. Aneu a Configuració de l'usuari → Perfil, canvieu a la pestanya Suport i afegiu el vostre correu electrònic.

2. Seguiu la guia per a Rebre una notificació de problema.

El proper cop, quan Zabbix detecti un problema, hauríeu de rebre una alerta per correu electrònic.

Proveu la vostra configuració

Per provar la vostra configuració, podem simular un problema real actualitzant la configuració de l'equip a la interfície Zabbix.

1. Obriu la configuració d'equip del vostre lloc web a Zabbix.

2. Canvieu a la pestanya Macros i trieu Macros heretades i equips.

3. Feu clic a Canviar al costat, per exemple, del valor de macro configurat anteriorment {$WEBSITE.DOMAIN} i establiu un nom de domini incorrecte (per exemple, /git.zabbix.com/projects/ZBX/repos/zabbix/browse).

4. Feu clic a Actualitzar per actualitzar la configuració de l'equip.

5. En uns moments, Zabbix detectarà el problema "No s'ha pogut obtindre JSON del lloc web triat", perquè no es podrà connectar al lloc web especificat. El problema apareixerà a Monitoratge → Problemes.

Si les alertes són configurades, també rebreu la notificació del problema.

6. Canvieu el valor de la macro al seu valor anterior per resoldre el problema i continuar monitorant el lloc web.

Veieu també

  • Creació d'un element - com començar a monitorar mètriques addicionals.
  • Escalat de problemes - com crear escenaris d'alerta de diverses passes (p. ex., primer enviar el missatge a l'administrador del sistema i després, si un problema no es resol en 45 minuts, enviar el missatge al gestor del centre de dades).
  • Elements del navegador - com configurar els elements del navegador.
  • Plantilla Lloc web per navegador - informació addicional sobre la plantilla Website by Browser.