9. Monitoratge Web

Vista general

Amb Zabbix podeu comprovar diversos aspectes de disponibilitat dels llocs web.

Per realitzar el monitoratge web, el servidor Zabbix ha d'ésser inicialment configurat amb suport cURL (libcurl).

Per activar el monitoratge web cal definir escenaris web. Un escenari web consta d'una o diverses peticions HTTP o "passes". Les passes les executa periòdicament el servidor Zabbix en un ordre predefinit. Si un equip és monitorat per un proxy, les passes les executa el proxy.

Els escenaris web s'adjunten als equips/plantilles de la mateixa manera que els elements, els triggers, etc. Això vol dir que els escenaris web també es poden crear a nivell de plantilla i després aplicar-los a diversos equips en un sol moviment.

La informació següent es recull a qualsevol escenari web:

  • velocitat mitjana de descàrrega per segon per a totes les passes de tot l'escenari
  • nombre de la passa que ha fallat
  • darrer missatge d'error

La informació següent es recopila en qualsevol passa d'escenari web:

  • velocitat de descàrrega per segon
  • temps de resposta
  • codi de resposta

Per obtindre més detalls, veieu articles de monitoratge web.

Les dades recollides de l'execució d'escenaris web es desen a la base de dades. Les dades s'empren automàticament per a gràfics, triggers i notificacions.

Zabbix també pot comprovar si una pàgina HTML recuperada conté una cadena predefinida. Pot executar un inici de sessió simulat i seguir un camí de clics simulats del ratolí a la pàgina.

El monitoratge web de Zabbix admet tant HTTP com HTTPS. Quan s'executa un escenari web, Zabbix seguirà opcionalment les redireccions (veieu l'opció Seguir les redireccions tot seguit). El nombre màxim de redireccions és codificat a 10 (emprant l'opció cURL CURLOPT_MAXREDIRS). Totes les cookies es conserven durant l'execució d'un únic escenari.

Configurant un escenari web

Per configurar un escenari web:

  • Aneu a: Recull de dades → Equips (o Plantilles)
  • Feu clic a Web a la filera de l'equip/plantilla
  • Feu clic a Crear un escenari a la dreta (o al nom de l'escenari per editar un escenari existent)
  • Introduïu els paràmetres de l'escenari al formulari

La pestanya Escenari us permet configurar els paràmetres generals d'un escenari web.

Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.

Paràmetres de l'escenari:

Paràmetre Descripció
Nom Nom de l'escenari únic.
S'admeten macros d'usuari. Tingueu en compte que si s'empren macros d'usuari, aquestes es deixaran sense resoldre en els noms element de monitoratge web.
Interval d'actualització Amb quina freqüència s'executarà l'escenari.
S'admeten sufixos de temps, p. 30s, 1m, 2h, 1d.
S'admeten macros d'usuari. Tingueu en compte que si s'empra una macro d'usuari i es canvia el seu valor (per exemple, 5m → 30s), la següent comprovació s'executarà d'acord amb el valor anterior (més en el futur amb els valors d'exemple).
Els nous escenaris web es comprovaran dins dels 60 segons de la seva creació.
Intents Nombre d'intents per executar passes d'escenari web. En cas de problemes de xarxa (temps d'espera, sense connectivitat, etc.) Zabbix pot repetir l'execució d'una passa diversos cops. El conjunt de xifres afectarà per igual a cada passa de l'escenari. Es poden especificar fins a 10 intents, el valor per defecte és 1.
Nota: Zabbix no repetirà cap passa a causa d'un codi de resposta incorrecte o de la falta de coincidència d'una cadena requerida.
Agent Trieu un agent client.
Zabbix simularà ser el navegador triat. Això és útil quan un lloc web retorna contingut diferent per a diferents navegadors.
En aquest camp es poden emprar macros d'usuari.
Proxy HTTP Podeu especificar un proxy HTTP per emprar, emprant el format [protocol://][nom d'usuari[:motdepas]@]proxy.exemple.cat[:port].
Això estableix la opció de cURL CURLOPT_PROXY.
El prefix opcional protocol:// es pot emprar per especificar protocols alternatius de proxy (el suport de prefix de protocol es va afegir a cURL 7.21.7). Sense cap protocol especificat, el proxy es tractarà com un proxy HTTP.
De manera predeterminada, s'emprarà el port 1080.
Si s'especifica, el proxy sobreescriurà variables d'entorn relacionades amb el proxy, com ara http_proxy, HTTPS_PROXY. Si no s'especifica, el proxy no sobreescriurà les variables d'entorn relacionades amb el proxy. El valor introduït es transmet "tal com és", no es fa cap comprovació de seny.
També podeu introduir una adreça proxy SOCKS. Si especifiqueu un protocol incorrecte, la connexió fallarà i l'element no s'admetrà.
Tingueu en compte que només s'admet l'autenticació simple amb el proxy HTTP.
En aquest camp es poden emprar macros d'usuari.
Variables Variables que es poden emprar a les passes de l'escenari (URL, variables de publicació).
Tenen el format següent:
{macro1}=valor1
**{macro2}* *=valor2
{macro3}=regex:<expressió regular>
Per exemple:
{nom d'usuari}=Alexei
{motdepas}=kj3h5kJ34bd
{hostid}=regex :hostid és ([0-9]+)
Tot seguit, es pot fer referència a les macros a les passes com a {nom d'usuari}, {motdepas} i {identificador}. Zabbix els substituirà automàticament per valors reals. Tingueu en compte que les variables amb regex: necessiten una passa per obtindre el valor de l'expressió regular, de manera que el valor extret només es pot aplicar a la passa posterior.
Si la part del valor comença amb regex: aleshores la part posterior es tracta com una expressió regular que cerca a la pàgina web i, si es troba, emmagatzema la coincidència a la variable. Hi ha d'haver com a mínim un subgrup perquè es pugui extreure el valor coincident.
S'admeten macros d'usuari i macros {HOST.*}.
Les variables són automàticament codificades per URL quan s'empra a camps de consulta o dades de formulari per a variables de publicació, però s'ha de codificar per URL manualment quan s'empra a la publicació sense processar o directament a l'URL.
Capçaleres Les capçaleres HTTP s'empren quan es fa una petició. Es poden emprar capçaleres predeterminades i personalitzades.
Les capçaleres s'assignaran mitjançant la configuració predeterminada en funció del tipus d'agent triat d'una llista desplegable a nivell d'escenari, i s'aplicaran a totes les passes, tret que siguin definides personalment a un nivell de passa.
S'ha de tindre en compte que la definició de la capçalera en un nivell de passa descarta automàticament totes les capçaleres definides anteriorment, excepte una capçalera predeterminada que s'assigna triant l'"Agent d'usuari" d'un menú desplegable de llista a nivell d'escenari.
Tot i això, fins i tot la capçalera predeterminada "Agent d'usuari" es pot substituir especificant-la a un nivell de passa.
Per desactivar la capçalera a nivell d'escenari, la capçalera s'hauria d'anomenar i s'atribueix sense cap valor a un nivell de passa.
Les capçaleres s'han de llistar emprant la mateixa sintaxi que apareixeria al protocol HTTP, opcionalment emprant algunes funcions addicionals compatibles amb l'opció cURL CURLOPT_HTTPHEADER.
Per exemple:
Accept-Charset=utf-8
Accept-Language=en-US
Content-Type=application/xml; charset=utf-8
S'admeten macros d'usuari i macros {HOST.*}.
Activat L'escenari és actiu si aquesta casella és marcada, en cas contrari - desactivat.

Tingueu en compte que en editar un escenari existent, hi ha dos botons addicionals disponibles al formulari:

Crear un altre escenari basat en les propietats de l'existent.
Esborra l'historial i les dades de tendències de l'escenari. Això farà que el servidor faci l'escenari immediatament després d'esborrar les dades.

Si el camp Proxy HTTP es deixa buit, una altra manera d'emprar un proxy HTTP és establir variables d'entorn relacionades amb el proxy.

Per a les comprovacions HTTP: establiu la variable d'entorn http_proxy per a l'usuari del servidor Zabbix. Per exemple, http_proxy=http://proxy_ip:proxy_port.

Per a les comprovacions HTTPS: establiu la variable d'entorn HTTPS_PROXY. Per exemple, HTTPS_PROXY=http://proxy_ip:proxy_port. Hi ha més detalls disponibles executant una ordre de shell: # man curl.

La pestanya Passes us permet configurar les passes de l'escenari web. Per afegir una passa d'escenari web, feu clic a Afegir al bloc Passes.

Les [macros d'usuari] secretes (/manual/config/macros/user_macros#configuration) no s'han d'emprar a les URL, ja que es resoldran en "******".

Configurant passes

Paràmetre de passes:

Paràmetre Descripció
Nom Nom únic de la passa.
S'admeten macros d'usuari. Tingueu en compte que si s'empren macros d'usuari, aquestes es deixaran sense resoldre en els noms element de monitoratge web.
URL URL per connectar-se i recuperar dades. Per exemple:
https://www.exemple.cat
http://www.exemple.cat/download
Els noms de domini es poden especificar en caràcters Unicode. Es converteixen automàticament en codi punycode a ASCII quan s'executa la passa de l'escenari web.
El botó Analitzar es pot emprar per separar els camps de consulta opcionals (com ara ?name=Admin&password=mypassword) de l'URL, movent els atributs i els valors a Camps de consulta per a la codificació automàtica d'URL.
Es poden emprar variables a l'URL mitjançant la sintaxi {macro}. Les variables es poden codificar per URL manualment mitjançant una sintaxi {{macro}.urlencode()}.
S'admeten macros d'usuari i {HOST.*} macros.<br >Limitat a 2048 caràcters.
Camps de consulta Variables HTTP GET per a l'URL.
Especificat com a parelles d'atribut i valor.
Els valors es codifiquen automàticament per URL. Els valors de les variables d'escenari, les macros d'usuari o les macros {HOST.*} es resolen i després es codifiquen automàticament per URL. L'ús d'una sintaxi {{macro}.urlencode()} els codificarà per doble URL.
S'admeten macros d'usuari i macros {HOST.*} .
Publicació Variables HTTP POST.
En el mode Dades de formulari, especificat com a parelles d'atributs i valors.
Els valors es codifiquen automàticament per URL. Els valors de les variables d'escenari, les macros d'usuari o les macros {HOST.*} es resolen i després es codifiquen automàticament per URL.
En el mode Dades en brut, els atributs/valors es mostren en una sola línia i es concatenen amb un * Símbol *&**.
Els valors en brut es poden codificar/descodificar manualment mitjançant una sintaxi {{macro}.urlencode()} o {{macro}.urldecode()}.
Per exemple: id= 2345&userid={usuari}
Si {usuari} es defineix com una variable de l'escenari web, es substituirà pel seu valor quan s'executi la passa. Si voleu codificar l'URL de la variable, substituïu {user} per {{user}.urlencode()}.
Macros d'usuari i macros {HOST.*} són compatibles.
Variables Variables de nivell de la passa que es poden emprar per a les funcions GET i POST.
Especificades com a parelles d'atributs i valors.
Les variables de nivell de la passa anul·len les variables de nivell d'escenari o les variables de la passa anterior. Tanmateix, el valor d'una variable de nivell de la passa només afecta la passa posterior (i no la passa actual).
Tenen el format següent:
{macro}=valor
{ macro}=regex:<expressió regular>
Per obtindre més informació, consulteu la descripció de la variable al nivell escenari.
Les variables es codifiquen automàticament en URL quan s'empren en camps de consulta o dades de formulari per a variables de publicació, però s'han de codificar manualment per URL quan s'empren a la publicació en brut o directament a l'URL.
Capçaleres Capçaleres HTTP personalitzades que s'enviaran quan es faci una petició.
Especificada com a parelles d'atribut i valor.
S'emprarà una capçalera definida en un nivell de la passa per a aquest pas en concret.
** Cal tindre en compte que la definició de la capçalera en un nivell de la passa descarta automàticament totes les capçaleres definides anteriorment, excepte una capçalera predeterminada que s'assigna triant "User-Agent" d'una llista desplegable a nivell d'escenari.**< br>tot i això, fins i tot la capçalera predeterminada "Agent d'usuari" es pot anul·lar especificant-la en un nivell de la passa.
Per exemple, assignar el nom a una capçalera, però no establir cap valor anul·larà la capçalera predeterminada a nivell d'escenari.
S'admeten macros d'usuari i macros {HOST.*}.
Això estableix l'opció cURL CURLOPT_HTTPHEADER.
Follow redirects Marqueu la casella de selecció per seguir les redireccions HTTP.
Això estableix l'opció cURL CURLOPT_FOLLOWLOCATION.
Mode de recuperació Trieu el mode de recuperació:
Cos - recupera només el cos de la resposta HTTP
Capçaleres - recupera només les capçaleres de la resposta HTTP
Cos i capçaleres - recupera el cos i les capçaleres de la resposta HTTP
Temps d'espera Zabbix no dedicarà més del temps establert a processar l'URL (d'un segon fins a un màxim d'1 hora). En realitat, aquest paràmetre defineix el temps màxim per fer la connexió a l'URL i el temps màxim per realitzar una petició HTTP. Per tant, Zabbix no dedicarà més de 2 x Temps d'espera segons la passa.
S'admeten sufixos de temps, p. ex. 30s, 1m, 1h. Les macros d'usuari són compatibles.
Cadena obligatòria Patró d'expressió regular obligatori.
Llevat que el contingut recuperat (HTML) coincideixi amb el patró requerit, la passa fallarà. Si és buit, no es fa cap comprovació de la cadena necessària.
Per exemple:
Pàgina d'inici de Zabbix
Benvingut.*administrador
Nota: En aquest camp no s'admeten referències a expressions regulars creades a la interfície Zabbix.
S'admeten macros d'usuari i macros {HOST.*}.
Codis d'estat obligatoris Llista de codis d'estat HTTP esperats. Si Zabbix obté un codi que no és a la llista, la passa fallarà.
Si és buit, no es fa cap comprovació dels codis d'estat.
Per exemple: 200,201,210-299
S'admeten macros d'usuari.

Qualsevol canvi en les passes de l'escenari web només es desarà quan es desi tot l'escenari.

Veieu també un exemple de la vida real de com es poden configurar les passes de monitoratge web.

#### Configuració de les etiquetes

La pestanya Etiquetes permet definir etiquetes a nivell d'escenari.

Les etiquetes s'empren per filtrar escenaris web i monitoratge d'elements web.

Configurant l'autenticació

La pestanya Autenticació us permet configurar les opcions d'autenticació d'escenaris. Un punt verd al costat del nom de la pestanya indica que hi ha habilitat algun tipus d'autenticació HTTP.

Paràmetres d'autenticació:

Paràmetre Descripció
Autenticació Opcions d'autenticació.
Cap - no s'empra cap autenticació.
Bàsica - s'empra l'autenticació bàsica.
NTLM - S'empra l'autenticació NTLM (Windows NT LAN Manager) .
Kerberos - s'empra l'autenticació Kerberos. Veieu també: Configuració de Kerberos amb Zabbix.
Digest - s'empra l'autenticació de Digest.
Seleccionar un mètode d'autenticació proporcionarà dos camps addicionals per introduir un nom d'usuari i mot de pas.
Les macros d'usuari es poden emprar als camps d'usuari i mot de pas.
Verificar peer SSL Marqueu la casella de selecció per verificar el certificat SSL del servidor web.
El certificat del servidor s'agafarà automàticament de la ubicació de l'autoritat de certificació (CA) de tot el sistema. Podeu substituir la ubicació dels fitxers CA mitjançant el paràmetre de configuració del servidor o proxy Zabbix SSLCALocation.
Això estableix la opció cURL CURLOPT_SSL_VERIFYPEER.
Verificat equip SSL Marqueu la casella de selecció per verificar que el camp Common Name o el camp Subject Alternate Name del certificat del servidor web coincideix.
Això estableix la opció cURL CURLOPT_SSL_VERIFYHOST.
Fitxer de certificat SSL Nom del fitxer de certificat SSL emprat per a l'autenticació del client. El fitxer del certificat ha de ser en format PEM1. Si el fitxer de certificat també conté la clau privada, deixeu el camp Fitxer de clau SSL buit. Si la clau és xifrada, especifiqueu el mot de pas al camp Mot de pas de la clau SSL. El directori que conté aquest fitxer l'especifica el servidor Zabbix o el paràmetre de configuració del servidor proxy SSLCertLocation.
En aquest camp es poden emprar les macros HOST.* i les macros d'usuari.
Això estableix l'opció cURL CURLOPT_SSLCERT.
Fitxer de clau SSL Nom del fitxer de clau privada SSL emprat per a l'autenticació del client. El fitxer de clau privada ha de ser en format PEM1. El directori que conté aquest fitxer l'especifica el servidor Zabbix o el paràmetre de configuració del proxy SSLKeyLocation.
En aquest camp es poden emprar macros HOST.* i macros d'usuari.
Això estableix l'opció cURL CURLOPT_SSLKEY.
Mot de pas de clau SSL Mot de pas del fitxer de clau privada SSL.
En aquest camp es poden emprar macros d'usuari.
Això estableix la opció cURL CURLOPT_KEYPASSWD.

[1] Zabbix només admet fitxers de certificat i clau privada en format PEM. En cas que tingueu el vostre certificat i les vostres dades de clau privada en un fitxer de format PKCS #12 (normalment amb l'extensió *.p12 o *.pfx), podeu generar-ne el fitxer PEM mitjançant les ordres següents:

 openssl pkcs12 -in ssl-cert.p12 -clcerts -nokeys -out ssl-cert.pem
        openssl pkcs12 -in ssl-cert.p12 -nocerts -nodes -out ssl-cert.key

El servidor Zabbix recull els canvis als certificats sense reiniciar-los.

Si teniu un certificat de client i una clau privada en un sol fitxer, només heu d'especificar-los en un camp "Fitxer de certificat SSL" i deixar el camp "Fitxer de clau SSL" buit. El certificat i la clau han de ser en format PEM. Combinar certificat i clau és fàcil:

cat client.crt client.key > client.pem

Visualització

Per veure els escenaris web configurats per a un equip, aneu a Monitoratge → Equips, localitzeu l'equip a la llista i feu clic a l'hiperenllaç Web de la darrera columna. Feu clic al nom de l'escenari per obtindre informació detallada.

També es pot veure una visió general dels escenaris web a Taulers mitjançant un giny de monitoratge web.

Els resultats recents de l'execució de l'escenari web estan disponibles a la secció Monitoratge → Dades més recents.

Monitoratge ampliat

De vegades cal registrar el contingut de la pàgina HTML rebuda. Això és especialment útil si falla una passa de l'escenari web. Per a això s'empra el nivell de depuració 5 (traça). Aquest nivell es pot establir als fitxers de configuració del servidor i proxy o mitjançant una opció de control en temps d'execució (-R log_level_increase="http poller ,N", on N és el nombre de procés). Els exemples següents mostren com es pot iniciar el monitoratge ampliat sempre que el nivell de depuració ja sigui establert a 4:

 Augmenteu el nivell de registre de tots els enquestadors http:
        shell> zabbix_server -R log_level_increase="http poller"
       
        Augmenteu el nivell de registre del segon sondeig http:
        shell> zabbix_server -R log_level_increase="http poller,2"

Si no cal un monitoratge web ampliat, es pot aturar mitjançant l'opció -R log_level_decrease.