Esta es una traducción de la página de documentación original en español. Ayúdanos a mejorarla.

9 Monitoreo web

Descripción general

Con Zabbix puedes comprobar varios aspectos de disponibilidad de los sitios web.

Para realizar la monitorización web el servidor Zabbix debe estar inicialmente configurado con soporte cURL (libcurl).

Para activar la monitorización web es necesario definir escenarios web. Un excenari web consta de una o varias solicitudes o "pasos" HTTP. Los pasos son ejecutados periódicamente por el servidor Zabbix en un orden predefinido. si un equipo es monitoreado por un proxy, los pasos son ejecutados por el proxy.

Los escenarios web se asocian a equipos/plantillas de la misma manera que las métricas, iniciadores, etc. Eso significa que los escenarios web también se pueden crear a nivel de plantilla y luego se aplican a múltiples equipos en un solo movimiento.

En cualquier escenario web se recoge la siguiente información:

  • velocidad de descarga promedio 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 del escenario web:

  • velocidad de descarga por segundo
  • tiempo de respuesta
  • código de respuesta

Para obtener más detalles, consulte elementos de monitorización web.

Los datos recopilados durante la ejecución de escenarios web se guardan en la base de datos. Los datos se utilizan automáticamente para gráficos, iniciadores 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 acceso simulando clics del ratón en la página.

El monitoreo web de Zabbix admite HTTP y HTTPS. Al ejecutar un escenario web, Zabbix opcionalmente seguirá las redirecciones (consulte la opción Seguir redirecciones a continuación). El número máximo de redirecciones está codificado en 10 (usando la opción 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:

  • Vaya a: Recopilación de datos → Equipos (o Plantillas)
  • Haga clic en Web en la fila del equipo/plantilla
  • Haga clic en Crear escenario web a la derecha (o en el nombre del escenario para editar un escenario existente)
  • Introduzca 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 de entrada 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 monitorización web.
Intervalo de actualización Con qué frecuencia se ejecutará el escenario.
Se admiten los sufijos de tiempo, p. ej., 30 s, 1 m, 2 h, 1 d.
Se admiten las macros de usuario. Nota que si se utiliza una macro de usuario y se cambia su valor (p. ej., 5 m → 30 s), la próxima comprobación se ejecutará de acuerdo con 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 La cantidad de intentos para ejecutar los pasos del escenario web. En caso de problemas de red (tiempo de espera, falta de 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 predeterminado 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.
Agent Seleccione un agente de 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 para usar, utilizando el formato [protocolo://][nombreusuario[:contraseña]@]proxy.example.com[:puerto].
Esto establece la opción de cURL CURLOPT_PROXY.
El prefijo opcional protocolo:// se puede utilizar para especificar protocolos de proxy alternativos (la compatibilidad con el prefijo de protocolo se agregó en cURL 7.21.7). Si no se especifica ningún protocolo, el proxy se tratará como un proxy HTTP.
De manera predeterminada, se utilizará 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 ingresado se transmite "tal cual", no se realiza ninguna verificación de integridad.
También puede ingresar una dirección de proxy SOCKS. Si especifica el protocolo incorrecto, la conexión fallará y el elemento dejará de ser compatible.
Nota: con el proxy HTTP solo se admite la autenticación simple.
Se pueden usar macros de usuario en este campo.
Variables Variables que pueden usarse en los pasos del escenario (URL, variables de publicación).
Tienen el siguiente formato:
{macro1}=valor1
{macro2}=valor2
{macro3}=regex:<expresión regular>
{macro4}=jsonpath:<jsonpath>
{macro5}=xmlxpath:<xmlxpath>
{macro6}={{macro}.function()} (consulte funciones de macro).
Nota que el uso de JSONPath, XML XPath y funciones de macro en variables es compatible desde Zabbix 7.0.4.
Para ejemplo:
{username}=Alexei
{password}=kj3h5kJ34bd
{hostid}=regex:hostid is ([0-9]+)
{url}=jsonpath:$.host_url
{status}=xmlxpath://host/response/status
{newvar}={{myvar}.btoa()}
Luego, se puede hacer referencia a las macros en los pasos como {username}, {password}, ​​{hostid}, etc. Zabbix las reemplazará automáticamente con 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 se puede aplicar al paso posterior.
Si la parte del valor comienza con regex:, la parte posterior se trata como una expresión regular que busca la página web y, si la encuentra, almacena la coincidencia en la variable. Al menos un subgrupo debe estar presente para que se pueda extraer el valor coincidente.
Se admiten macros de usuario y {HOST.*} macros.
Las variables se codifican automáticamente en URL cuando se usan en campos de consulta o datos de formulario para variables de publicación, pero se deben codificar en URL manualmente cuando se usan en publicaciones sin procesar o directamente en URL.
Encabezados Los encabezados HTTP se usan al realizar una solicitud. Se pueden usar encabezados predeterminados y personalizados.
Los encabezados se asignarán utilizando configuraciones predeterminadas según el tipo de agente seleccionado de una lista desplegable en un nivel de escenario, y se aplicarán a todos los pasos, a menos que se definan de forma personalizada en un nivel de paso.
Se debe tener en cuenta que definir el encabezado en un nivel de paso descarta automáticamente todos los encabezados definidos previamente, excepto un encabezado predeterminado que se asigna seleccionando "User-Agent" de una lista desplegable en un escenario nivel.
Sin embargo, incluso el encabezado predeterminado 'User-Agent' se puede anular si se lo especifica en un nivel de paso.
Para anular el encabezado en un nivel de escenario, el encabezado debe tener un nombre y un atributo sin valor en un nivel de paso.
Los encabezados se deben enumerar utilizando la misma sintaxis que aparecerían en el protocolo HTTP, utilizando opcionalmente algunas características adicionales compatibles con 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 las macros de usuario y las macros {HOST.*}.
Habilitado El escenario está activo si esta casilla está marcada, de lo contrario, está deshabilitado.

Tenga en cuenta que al editar un escenario existente, hay dos botones adicionales disponibles en el formato:

Crear otro escenario basado en las propiedades del existente.
Eliminar el historial y los datos de tendencia del escenario. Esto hará que el servidor ejecute el escenario inmediatamente después de eliminar los datos.

Si el campo HTTP proxy se deja vacío, otra forma de usar un proxy HTTP es configurar las variables de entorno relacionadas con el proxy.

Para las comprobaciones HTTP, configure la variable de entorno http_proxy para el usuario del servidor Zabbix. Por ejemplo, http_proxy=http://proxy_ip:proxy_port.

Para verificaciones HTTPS, configure la variable de entorno HTTPS_PROXY. Por ejemplo, HTTPS_PROXY=http://proxy_ip:proxy_port. Hay más detalles disponibles al ejecutar un comando de shell: # man curl.

La pestaña Pasos le permite configurar los pasos del escenario web. Para agregar un paso del escenario web, haga clic en Agregar en el bloque Pasos.

No se deben usar macros de usuario secretos en las URL, ya que se resolverán en "******".

Configurando pasos

Parámetros de paso:

Parámetro Descripción
Name Nombre único de 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 elemento de monitoreo web.
URL URL para conectarse y recuperar datos. Por ejemplo:
https://www.example.com
http://www.example.com/download
Los nombres de dominio se pueden especificar en caracteres Unicode. Se convierten automáticamente en punycode a ASCII al ejecutar el paso del escenario web.
El botón Analizar se puede utilizar para separar campos de consulta opcionales (como ?nombre=Admin&contraseña=micontraseña) de la URL, moviendo los atributos y valores a Campos de consulta para codificación automática de URL.
Se pueden utilizar variables en la URL, utilizando la sintaxis {macro}. Las variables se pueden codificar en URL manualmente usando una sintaxis {{macro}.urlencode()}.
Se admiten macros de usuario y {HOST.*} macros.<br >Limitado a 2048 caracteres.
Query fields Variables HTTP GET para la URL.
Especificadas como pares de atributo y valor.
Los valores se codifican en URL automáticamente. Los valores de variables de escenario, macros de usuario o macros {HOST.*} se resuelven y luego se codifican en URL automáticamente. El uso de una sintaxis {{macro}.urlencode()} duplicará la codificación URL.
Se admiten macros de usuario y {HOST.*} macros.
Post Variables HTTP POST.
En modo Datos de formulario, especificados como pares de atributo y valor.
Los valores se codifican en URL automáticamente. Los valores de variables de escenario, macros de usuario o macros {HOST.*} se resuelven y luego se codifican en URL automáticamente.
En el modo Datos sin procesar, los atributos/valores se muestran en una sola línea y se concatenan con un * Símbolo *&**.
Los valores sin procesar se pueden codificar/decodificar en URL manualmente usando una sintaxis {{macro}.urlencode()} o {{macro}.urldecode()}.
Por ejemplo: id= 2345&userid={user}
Si {user} se define como una variable del escenario web, será reemplazada por su valor cuando se ejecute el paso. Si desea codificar la variable en URL, sustituya {usuario} por {{usuario}.urlencode()}.
Macros de usuario y {HOST.*} macros son compatibles.
Variables Variables de nivel de paso que se pueden usar para funciones GET y POST.
Especificadas como pares de atributo y valor.
Las variables de nivel de paso anulan las variables de nivel de escenario o las variables del paso anterior. Sin embargo, el valor de una variable de nivel de paso solo afecta el paso posterior (y no el paso actual).
Tienen el siguiente formato:
{macro}=valor
{ macro}=regex:<expresión regular>
Para obtener más información, consulte la descripción de la variable en el nivel escenario.
Las variables se codifican automáticamente en URL cuando se usan en campos de consulta o datos de formulario para variables de publicación, pero deben codificarse manualmente en URL cuando se usan en publicaciones sin formato o directamente en URL.
Headers Encabezados HTTP personalizados que se enviarán al realizar una solicitud.
Especificados como pares de atributo y valor.
Se utilizará un encabezado definido en un nivel de paso para ese paso en particular.
** Cabe señalar que definir el encabezado a nivel de paso descarta automáticamente todos los encabezados definidos previamente, excepto un encabezado predeterminado que se asigna seleccionando el 'Usuario-Agente' de una lista desplegable a nivel de escenario.**< br>Sin embargo, incluso el encabezado predeterminado 'User-Agent' se puede anular especificándolo en un nivel de paso.
Por ejemplo, asignar el nombre a un encabezado, pero no establecer ningún valor, desactivará el encabezado predeterminado en un nivel de escenario. .
Se admiten macros de usuario y macros {HOST.*}.
Esto configura la opción cURL CURLOPT_HTTPHEADER.
Follow redirects Marque la casilla de verificación para seguir las redirecciones HTTP.
Esto establece la opción de cURL CURLOPT_FOLLOWLOCATION.
Retrieve mode Seleccione el modo de recuperación:
Cuerpo - recuperar solo el cuerpo de la respuesta HTTP
Encabezados - recuperar solo los encabezados de la respuesta HTTP
Cuerpo y encabezados: recupera el cuerpo y los encabezados de la respuesta HTTP
Timeout Zabbix no dedicará más del tiempo establecido a procesar 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 a la URL y el tiempo máximo para realizar una solicitud HTTP. Por lo tanto, Zabbix no pasará más de 2 x Tiempo de espera segundos en el paso.
Se admiten sufijos de tiempo, p. 30s, 1m, 1h. Se admiten macros de usuario.
Required string 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 realiza ninguna verificación de la cadena requerida.
Por ejemplo:
Página de inicio de Zabbix
Bienvenido.*admin
Nota: Referencia a expresiones regulares creadas en Zabbix La interfaz no es compatible con este campo.
Se admiten macros de usuario y {HOST.*} macros.
Required status codes 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 realiza ninguna verificació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 todo el escenario está guardado.

Vea también un ejemplo de la vida real de cómo se pueden configurar los pasos de monitoreo 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);
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 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 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 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.