9 Monitoreo web
Descripción general
Con Zabbix puede comprobar varios aspectos de disponibilidad de los sitios web.
Para realizar la monitorización web, el server de Zabbix debe estar configurado inicialmente con soporte para cURL (libcurl) configured.
Para activar la monitorización web, debe definir escenarios web. Un escenario web consta de una o varias solicitudes HTTP o "pasos". Los pasos se ejecutan periódicamente por el server de Zabbix en un orden predefinido. Si un host es monitorizado por un proxy, los pasos son ejecutados por el proxy.
Los escenarios web se adjuntan a hosts/templates de la misma forma que los items, triggers, etc. Esto significa que los escenarios web también pueden crearse a nivel de template y luego aplicarse a varios hosts de una sola vez.
La siguiente información se recopila en cualquier escenario web:
- velocidad media de descarga por segundo para todos los pasos del escenario completo
- número del paso que falló
- último mensaje de error
La siguiente información se recopila en cualquier paso de un escenario web:
- velocidad de descarga por segundo
- tiempo de respuesta
- código de respuesta
Para más detalles, consulte items de monitorización web.
Los datos recopilados al ejecutar escenarios web se conservan en la base de datos. Los datos se utilizan automáticamente para gráficos, triggers y notificaciones.
Zabbix también puede comprobar si una página HTML recuperada contiene una cadena predefinida. Puede ejecutar un inicio de sesión simulado y seguir una ruta de clics de ratón simulados en la página.
La monitorización web de Zabbix admite tanto HTTP como HTTPS. Al ejecutar un escenario web, Zabbix seguirá opcionalmente las redirecciones (consulte la opción Follow redirects más abajo). El número máximo de redirecciones está codificado de forma fija en 10 (usando la opción de cURL CURLOPT_MAXREDIRS). Todas las cookies se conservan durante la ejecución de un único escenario.
Configuración de un escenario web
Para configurar un escenario web:
- Ir a: Recopilación de datos → Equipos (o Plantillas)
- Hacer clic en Web en la fila del equipo/plantilla
- Hacer clic en Crear escenario web a la derecha (o en el nombre del escenario para editar uno existente)
- Introducir los parámetros del escenario en el formulario
La pestaña Escenario le permite configurar los parámetros generales de un escenario web.

Todos los campos obligatorios están marcados con un asterisco rojo.
Parámetros del escenario:
| Parámetro | Descripción |
|---|---|
| Nombre | Nombre único del escenario. Se admiten macros de usuario. Nota que si se utilizan macros de usuario, estas macros quedarán sin resolver en los nombres de los elementos de supervisión web. |
| Intervalo de actualización | Con qué frecuencia se ejecutará el escenario. Se admiten sufijos de tiempo, por ejemplo, 30s, 1m, 2h, 1d. Se admiten macros de usuario. Nota que si se utiliza una macro de usuario y su valor se cambia (por ejemplo, 5m → 30s), la siguiente comprobación se ejecutará según el valor anterior (más adelante en el futuro con los valores de ejemplo). Los nuevos escenarios web se comprobarán dentro de los 60 segundos posteriores a su creación. |
| Intentos | El número de intentos para ejecutar los pasos del escenario web. En caso de problemas de red (timeout, sin conectividad, etc.), Zabbix puede repetir la ejecución de un paso varias veces. La cifra establecida afectará por igual a cada paso del escenario. Se pueden especificar hasta 10 intentos, el valor por defecto es 1. Nota: Zabbix no repetirá un paso debido a un código de respuesta incorrecto o a la falta de coincidencia de una cadena requerida. |
| Agente | Seleccione un agente cliente. Zabbix simulará ser el navegador seleccionado. Esto es útil cuando un sitio web devuelve contenido diferente para distintos navegadores. Se pueden utilizar macros de usuario en este campo. |
| Proxy HTTP | Puede especificar un proxy HTTP a utilizar, usando el formato [protocol://][usuario[:contraseña]@]proxy.ejemplo.com[:puerto].Esto establece la opción cURL CURLOPT_PROXY. El prefijo opcional protocol:// puede usarse para especificar protocolos de proxy alternativos (el soporte para el prefijo de protocolo se añadió en cURL 7.21.7). Si no se especifica protocolo, el proxy se tratará como un proxy HTTP.Por defecto, se usará el puerto 1080. Si se especifica, el proxy sobrescribirá las variables de entorno relacionadas con el proxy como http_proxy, HTTPS_PROXY. Si no se especifica, el proxy no sobrescribirá las variables de entorno relacionadas con el proxy. El valor introducido se pasa "tal cual", no se realiza ninguna comprobación de validez. También puede introducir una dirección de proxy SOCKS. Si especifica el protocolo incorrecto, la conexión fallará y el elemento quedará no soportado. Nota que solo se admite autenticación simple con proxy HTTP. Se pueden utilizar macros de usuario en este campo. |
| Variables | Variables que pueden usarse en los pasos del escenario (URL, variables post). Tienen el siguiente formato: {macro1}=valor1 {macro2}=valor2 {macro3}=regex:<expresión regular> {macro4}=jsonpath:<jsonpath> {macro5}=xmlxpath:<xmlxpath> {macro6}={{macro}.function()} (ver funciones de macro) Por ejemplo: {usuario}=Alexei {contraseña}=kj3h5kJ34bd {hostid}=regex:hostid is ([0-9]+) {url}=jsonpath:$.host_url {estado}=xmlxpath://host/response/status {nuevavar}={{myvar}.btoa()} Las macros pueden referenciarse en los pasos como {usuario}, {contraseña}, {hostid}, etc. Zabbix las reemplazará automáticamente por los valores reales. Tenga en cuenta que las variables con regex: necesitan un paso para obtener el valor de la expresión regular, por lo que el valor extraído solo puede aplicarse al paso siguiente.Si la parte del valor comienza con regex:, la parte posterior se trata como una expresión regular que busca en la página web y, si se encuentra, almacena la coincidencia en la variable. Debe haber al menos un subgrupo para que se pueda extraer el valor coincidente.Se admiten macros de usuario y macros}. Las variables se codifican automáticamente en URL cuando se usan en campos de consulta o datos de formulario para variables post, pero deben codificarse manualmente cuando se usan en post sin procesar o directamente en la URL. |
| Cabeceras | Las cabeceras HTTP se utilizan al realizar una solicitud. Se pueden usar cabeceras por defecto y personalizadas. Las cabeceras se asignarán usando la configuración por defecto dependiendo del tipo de Agente seleccionado en una lista desplegable a nivel de escenario, y se aplicarán a todos los pasos, a menos que se definan de forma personalizada a nivel de paso. Debe tenerse en cuenta que definir la cabecera a nivel de paso descarta automáticamente todas las cabeceras definidas previamente, excepto la cabecera por defecto que se asigna seleccionando el 'User-Agent' en la lista desplegable a nivel de escenario. Sin embargo, incluso la cabecera por defecto 'User-Agent' puede ser sobrescrita especificándola a nivel de paso. Para desactivar la cabecera a nivel de escenario, la cabecera debe nombrarse y atribuirse sin valor a nivel de paso. Las cabeceras deben listarse usando la misma sintaxis que aparecerían en el protocolo HTTP, usando opcionalmente algunas características adicionales soportadas por la opción cURL CURLOPT_HTTPHEADER. Por ejemplo: Accept-Charset=utf-8 Accept-Language=en-US Content-Type=application/xml; charset=utf-8 Se admiten macros de usuario y macros}. |
| Habilitado | El escenario está activo si esta casilla está marcada, en caso contrario, está deshabilitado. |
Tenga en cuenta que al editar un escenario existente, hay dos botones adicionales disponibles en el formulario:
![]() |
Crear otro escenario basado en las propiedades del existente. |
![]() |
Eliminar los datos de historial y tendencias del escenario. Esto hará que el servidor ejecute el escenario inmediatamente después de eliminar los datos. |
Si el campo Proxy HTTP se deja vacío, otra forma de usar un proxy HTTP es establecer las variables de entorno relacionadas con el proxy.
Para comprobaciones HTTP - establezca la variable de entorno http_proxy para el usuario del servidor Zabbix. Por ejemplo,
http_proxy=http://ip_proxy:puerto_proxy.
Para comprobaciones HTTPS - establezca la variable de entorno HTTPS_PROXY. Por ejemplo, HTTPS\_PROXY=http://ip_proxy:puerto_proxy. Hay más detalles disponibles ejecutando el comando de shell: # man curl.
La pestaña Pasos le permite configurar los pasos del escenario web. Para añadir un paso al escenario web, haga clic en Añadir en el bloque Pasos.

No deben usarse macros de usuario secretas en las URLs ya que se resolverán como "******".
Configuración de pasos

Parámetros del paso:
| Parámetro | Descripción |
|---|---|
| Nombre | Nombre único del paso. Se admiten macros de usuario. Tenga en cuenta que si se utilizan macros de usuario, estas macros quedarán sin resolver en los nombres de item de monitorización web. |
| URL | URL a la que conectarse y de la que recuperar datos. Por ejemplo: https://www.example.com http://www.example.com/download Los nombres de dominio pueden especificarse con caracteres Unicode. Se convierten automáticamente de punycode a ASCII al ejecutar el paso del escenario web. El botón Parse puede utilizarse para separar de la URL los campos de consulta opcionales (como ?name=Admin&password=mypassword), moviendo los atributos y valores a Campos de consulta para la codificación automática de URL. Se pueden usar variables en la URL mediante la sintaxis {macro}. Las variables pueden codificarse manualmente para URL mediante la sintaxis {{macro}.urlencode()}. Se admiten macros de usuario y macros}. Limitado a 2048 caracteres. |
| Campos de consulta | Variables HTTP GET para la URL. Se especifican como pares de atributo y valor. Los valores se codifican automáticamente para URL. Los valores de variables del escenario, macros de usuario o macros {HOST.*} se resuelven y luego se codifican automáticamente para URL. El uso de la sintaxis {{macro}.urlencode()} hará que se codifiquen dos veces para URL. Se admiten macros de usuario y macros}. |
| Post | Variables HTTP POST. En el modo Form data, se especifican como pares de atributo y valor. Los valores se codifican automáticamente para URL. Los valores de variables del escenario, macros de usuario o macros {HOST.*} se resuelven y luego se codifican automáticamente para URL. En el modo Raw data, los atributos/valores se muestran en una sola línea y se concatenan con el símbolo &. Los valores sin procesar pueden codificarse/decodificarse manualmente para URL mediante la sintaxis {{macro}.urlencode()} o {{macro}.urldecode()}. Por ejemplo: id=2345&userid={user} Si {user} está definida como una variable del escenario web, se sustituirá por su valor cuando se ejecute el paso. Si desea codificar la variable para URL, sustituya {user} por {{user}.urlencode()}. Se admiten macros de usuario y macros}. |
| Variables | Variables a nivel de paso que pueden utilizarse para las funciones GET y POST. Se especifican como pares de atributo y valor. Las variables a nivel de paso sobrescriben las variables a nivel de escenario o las variables del paso anterior. Sin embargo, el valor de una variable a nivel de paso solo afecta al paso siguiente (y no al paso actual). Tienen el siguiente formato: {macro}=valor {macro}=regex:<expresión regular> Para más información, consulte la descripción de variables en el nivel de escenario. Las variables se codifican automáticamente para URL cuando se usan en campos de consulta o en datos de formulario para variables post, pero deben codificarse manualmente para URL cuando se usan en post sin procesar o directamente en la URL. |
| Cabeceras | Cabeceras HTTP personalizadas que se enviarán al realizar una solicitud. Se especifican como pares de atributo y valor. Una cabecera definida a nivel de paso se utilizará para ese paso en particular. Debe tenerse en cuenta que definir la cabecera a nivel de paso descarta automáticamente todas las cabeceras definidas previamente, excepto una cabecera predeterminada que se asigna al seleccionar 'User-Agent' en una lista desplegable a nivel de escenario. Sin embargo, incluso la cabecera predeterminada 'User-Agent' puede sobrescribirse especificándola a nivel de paso. Por ejemplo, asignar el nombre a una cabecera, pero no establecer ningún valor, desactivará la cabecera predeterminada a nivel de escenario. Se admiten macros de usuario y macros {HOST.*}. Esto establece la opción cURL CURLOPT_HTTPHEADER. |
| Seguir redirecciones | Marque la casilla para seguir redirecciones HTTP. Esto establece la opción cURL CURLOPT_FOLLOWLOCATION. |
| Modo de recuperación | Seleccione el modo de recuperación: Body - recuperar solo el cuerpo de la respuesta HTTP Headers - recuperar solo las cabeceras de la respuesta HTTP Body and headers - recuperar el cuerpo y las cabeceras de la respuesta HTTP |
| Timeout | Zabbix no dedicará más del tiempo establecido al procesamiento de la URL (desde un segundo hasta un máximo de 1 hora). En realidad, este parámetro define el tiempo máximo para establecer la conexión con la URL y el tiempo máximo para realizar una solicitud HTTP. Por lo tanto, Zabbix no dedicará más de 2 x Timeout segundos al paso. Se admiten sufijos de tiempo, por ejemplo, 30s, 1m, 1h. Se admiten macros de usuario. |
| Cadena requerida | Patrón de expresión regular requerido. A menos que el contenido recuperado (HTML) coincida con el patrón requerido, el paso fallará. Si está vacío, no se realizará ninguna comprobación de la cadena requerida. Por ejemplo: Página principal de Zabbix Welcome.*admin Nota: No se admite en este campo la referencia a expresiones regulares creadas en el frontend de Zabbix. Se admiten macros de usuario y macros}. |
| Códigos de estado requeridos | Lista de códigos de estado HTTP esperados. Si Zabbix obtiene un código que no está en la lista, el paso fallará. Si está vacío, no se realizará ninguna comprobación de los códigos de estado. Por ejemplo: 200,201,210-299 Se admiten macros de usuario. |
Cualquier cambio en los pasos del escenario web solo se guardará cuando se guarde el escenario completo.
Vea también un ejemplo real de cómo pueden configurarse los pasos de monitorización web.
Configurar etiquetas
La pestaña Etiquetas permite definir etiquetas a nivel de escenario.

El etiquetado permite filtrar escenarios web y métricas de monitorización web.
Configurar la autenticación
La pestaña Autenticación le permite configurar las opciones del escenario de autenticación. Un punto verde al lado del nombre de la pestaña indica que algún tipo de autenticación HTTP está habilitado.

Parámetros de autenticación:
| Parámetro | Descripción |
|---|---|
| Autenticación HTTP | Seleccione la opción de autenticación: Ninguno: no se utiliza autenticación; Básico: se utiliza autenticación básica; NTLM - NTLM ( Windows NT LAN Manager) se utiliza autenticación; Kerberos - Se utiliza autenticación Kerberos (consulte también: [Configuración de Kerberos con Zabbix](/ manual/appendix/items/kerberos)); Digest: se utiliza autenticación implícita. |
| Usuario | Ingrese el nombre de usuario (hasta 255 caracteres). Este campo está disponible si autenticación HTTP está configurada en Básica, NTLM, Kerberos o Digest. Se admiten macros de usuario. |
| Contraseña | Ingrese la contraseña de usuario (hasta 255 caracteres). Este campo está disponible si la autenticación HTTP está configurada en Básica, NTLM, Kerberos o Digest. Se admiten macros de usuario. |
| SSL verificar par | Marque la casilla de verificación para verificar el certificado SSL del servidor web. El certificado del servidor se tomará automáticamente de la ubicación de la autoridad certificadora (CA) de todo el sistema. Puede anular la ubicación de los archivos CA utilizando el servidor Zabbix o el parámetro de configuración del proxy SSLCALocation. Esto establece el [CURLOPT_SSL_VERIFYPEER](http://curl.haxx .se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html) opción cURL. |
| SSL verificar equipo | Marque la casilla de verificación para verificar que el campo Nombre común o el campo Nombre alternativo del sujeto del certificado del servidor web coincidan. Esto establece el [CURLOPT_SSL_VERIFYHOST](http: //curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html) opción cURL. |
| Archivo de certificado SSL | Nombre del archivo de certificado SSL utilizado para la autenticación del cliente. El archivo del certificado debe estar en formato PEM1. Si el archivo de certificado contiene también la clave privada, deje el campo archivo de clave SSL vacío. Si la clave está cifrada, especifique la contraseña en el campo contraseña de clave SSL. El directorio que contiene este archivo lo especifica el servidor Zabbix o el parámetro de configuración del proxy SSLCertLocation. Las macros HOST.* y las macros de usuario se pueden usar en este campo.Esto configura la opción cURL CURLOPT_SSLCERT. |
| Archivo de clave SSL | Nombre del archivo de clave privada SSL utilizado para la autenticación del cliente. El archivo de clave privada debe estar en formato PEM1. El directorio que contiene este archivo lo especifica el servidor Zabbix o el parámetro de configuración del proxy SSLKeyLocation. Las macros HOST.* y las macros de usuario se pueden usar en este campo.Esto configura la opción cURL CURLOPT_SSLKEY. |
| Contraseña de clave SSL | Contraseña del archivo de clave privada SSL. Se pueden utilizar macros de usuario en este campo. Esto establece el [CURLOPT_KEYPASSWD](http://curl.haxx.se/libcurl/c /CURLOPT_KEYPASSWD.html) opción de curvatura. |
[1] Zabbix admite archivos de certificado y clave privada en formato PEM únicamente. En caso de tener sus datos de certificado y clave privada en un archivo de formato PKCS #12 (generalmente con extensión *.p12 o *.pfx) puede generar el archivo PEM usando los siguientes comandos:
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 detecta cambios en los certificados sin un reinicio.
Si tiene el certificado de cliente y la clave privada en un solo archivo simplemente especifíquelo en el campo "archivo de certificado SSL" y deje el campo "archivo de clave SSL" vacío. El certificado y la clave aún deben estar en formato PEM. Combinar certificado y clave es fácil:
cat client.crt client.key > client.pem
Mostrar
Para ver escenarios web configurados para un equipo, vaya a Monitoreo → Equipos, ubique el equipo en la lista y haga clic en el hipervínculo Web en la última columna. Haga clic en el nombre del escenario para obtener información detallada.

También se puede mostrar una descripción general de los escenarios web en Tableros mediante el widget de monitoreo web.
Los resultados recientes de la ejecución del escenario web están disponibles en la sección Monitoreo → Últimos datos.
Monitoreo extendido
A veces es necesario registrar el contenido de la página HTML recibida. Esto es
especialmente útil si falla algún paso del escenario web. El nivel de depuración 5 (rastreo)
sirve para ese propósito. Este nivel se puede configurar en los archivos de configuración
del servidor y del
proxy o
usando una opción en tiempo de ejecución (-R log_level_increase="http poller,N",
donde N es el número de proceso). Los siguientes ejemplos demuestran cómo
se puede iniciar el monitoreo extendido siempre que el nivel de depuración 4 ya haya sido configurado:
Aumente el nivel de registro de todos los sondeadores http:
zabbix_server -R log_level_increase="http poller"
Aumente el nivel de registro del segundo sondeador http:
zabbix_server -R log_level_increase="http poller,2"
Si no se requiere monitoreo web extendido, se puede detener usando la
opción -R log_level_decrease.

