9. Monitoratge Web

Vista general

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

Per fer el monitoratge web ha de ser el servidor Zabbix configurat inicialment amb suport cURL (libcurl).

Per activar el monitoratge web cal definir escenaris web. L'escenari web consisteix en una o diverses peticions HTTP o "passes". Les passes s'executen periòdicament pel servidor Zabbix en un ordre predefinit. Si l'equip és monitorat pel proxy, les passes són executades pel proxy.

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

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 a més detalls, veieu elements 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é un contingut predefinit. Pot executar un inici de sessió simulat i seguir un camí de simulació de clics del ratolí a la pàgina.

El monitoratge web de Zabbix admet tant HTTP com HTTPS. Quan s'executa una web a l'escenari, Zabbix seguirà opcionalment les redireccions (veieu tot seguit l'opció Seguir redireccions). El nombre màxim de redireccions és codificat en 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: Configuració → 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 als 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).
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 cada passa de l'escenari. Es poden especificar fins a 10 intents, el valor per defecte és 1.
Nota: Zabbix no repetirà cap passa per 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 seleccionat. 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, emprant el format [protocol://][nom d'usuari[:mot_de_pas]@]proxy.example.com[:port].
Això estableix l'opció cURL CURLOPT_PROXY.
El prefix opcional protocol:// es pot emprar per especificar protocols alternatius de proxy (el suport del prefix del 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 intermediaria 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
{mot_de_pas}=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}, {mot de pas} i {identificador}. Zabbix els substituirà automàticament per valors reals. Tingueu en compte que les variables amb regex: necessiten uns 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 {HOST.*} macros.
Les variables són automàticament Codificades per URL quan s'empra en 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 definits 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 seleccionant l'"Agent d'usuari" d'un menú desplegable de llista a nivell d'escenari.
No obstant això, fins i tot la capçalera predeterminada "Agent d'usuari" es pot substituir especificant-la en 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 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 realitzi 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 no s'han d'emprar a les URL, ja que es resoldran a "******".

Configurant passes

Paràmetres de les passes:

Paràmetre Descripció
Nom Nom únic de passa.
S'admeten macros d'usuari. Tingueu en compte que si s'empren macros d'usuari, aquestes es deixaran sense resoldre als noms element de monitoratge web.
URL URL per connectar-se i recuperar dades. Per exemple:
https://www.example.com
http://www.example.com/download
Els noms de domini es poden especificar en caràcters Unicode. Es converteixen automàticament 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.
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 {HOST.*} macros.
Publicació Variables HTTP POST.
Al 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.
Al 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()}.
Les macros d'usuari i {HOST.*} macros són compatibles.
Variables Variables de nivell de 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 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 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 d'escenari.
Les variables es codifiquen automàticament a 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 realitzi una petició.
Especificada com a parelles d'atribut i valor.
S'emprarà una capçalera definida en un nivell de passa per a aquesta passa concreta.
Cal 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 "User-Agent" d'una llista desplegable a nivell d'escenari.
No obstant això, fins i tot la capçalera predeterminada "Agent d'usuari" es pot anul·lar especificant-la en un nivell de 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.
S'admet l'especificació de capçaleres personalitzades a partir de Zabbix 2.4.
Seguir redireccions 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 fer una petició HTTP. Per tant, Zabbix no dedicarà més de 2 x Temps d'espera segons a la passa.
S'admeten sufixos de temps, com ara 30s, 1m, 1h. Les macros d'usuari són compatibles.
Cadena obligatòria Patró obligatori d'expressió regular.
Llevat que el contingut recuperat (HTML) coincideixi amb el patró requerit, la passa fallarà. Si és buit, no es realitza cap comprovació de la cadena necessària.
Per exemple:
Pàgina d'inici de Zabbix
Benvingut.*administrador
Nota: Les expressions regulars referenciades creades a la interfície Zabbix no s'admeten pas.
S'admeten macros d'usuari i {HOST.*} macros.
Codis d'estat obligatoris Llista de codis d'estat HTTP esperats. Si Zabbix obté un codi que no es troba 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 a les passes de l'escenari web només es desarà quan tot l'escenari es desi.

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.

Configuració de l'autenticació

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

Configuració d'autenticació:

Paràmetre Descripció
Autenticació Opcions d'autenticació.
Cap - no s'empra cap autenticació.
Bàsica - s'empra l'autenticació bàsica.
NTLM - l Autenticació NTLM (Windows empra NT LAN Manager).
Kerberos - s'empra l'autenticació Kerberos. Veieu també: Configuració de Kerberos amb Zabbix.
Digest - s'empra l'autenticació de Digest.
En triar un mètode d'autenticació, es proporcionaran 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.
Verifica SSL Peer Marca la casella per verificar el certificat SSL del servidor web.
El certificat del servidor es recuperarà automàticament des 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 l'opció cURL CURLOPT_SSL_VERIFYPEER.
Verifica l'equip SSL Marca la casella per verificar que el camp Nom comú o el camp Nom alternatiu de l'assumpte del certificat del servidor web coincideix.
Això estableix l'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 d'estar en format PEM1. Si el fitxer del certificat també conté la clau privada, deixeu el camp Fitxer de clau SSL en blanc. Si la clau és xifrada, introduïu 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 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 d'estar en format PEM1. El directori que conté aquest fitxer l'especifica el paràmetre de configuració del servidor o proxy de Zabbix SSLKeyLocation.
En aquest camp es poden utilitzar les macros HOST.* i les macros d'usuari.
Això estableix l'opció cURL CURLOPT_SSLKEY.
Contrasenya de clau SSL Contrasenya del fitxer de clau privada SSL.
En aquest camp es poden utilitzar macros d'usuari.
Això estableix l'opció cURL CURLOPT_KEYPASSWD.

[1] Zabbix només admet fitxers de certificat i clau privada en format PEM. Si teniu el vostre certificat i les vostres dades de clau privada en un fitxer en format PKCS #12 (normalment amb l'extensió *.p12 o *.pfx), podeu generar el fitxer PEM amb 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 de certificat sense reiniciar.

Si teniu un certificat de client i una clau privada en un fitxer, només cal que els especifiqueu en un camp "Fitxer de certificat SSL" i deixeu el camp "Fitxer de clau SSL" en blanc. El certificat i la clau han d'estar sempre en format PEM. Combinar certificat i clau és senzill:

 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 Monitoratge → Tauler 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.