Con Zabbix puede verificar varios aspectos de disponibilidad de sitios web.
Para realizar la monitorización web, el servidor Zabbix debe estar inicialmente configurado con soporte para cURL (libcurl).
Para activar la monitorización web, debe definir escenarios web. Un escenario web consta de una o varias solicitudes HTTP o "pasos". El servidor Zabbix ejecuta periódicamente los pasos en un orden predefinido. Si un equipo es monitorizado por proxy, los pasos son ejecutados por el proxy.
Los escenarios web se adjuntan a los 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 aplicar a varios equipos en un solo movimiento.
La siguiente información se recopila en cualquier escenario web:
La siguiente información se recopila en cualquier paso del escenario web:
Para obtener más detalles, consulte métricas de monitoreo web.
Los datos recopilados de 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 verificar si una página HTML recuperada contiene una cadena predefinida. Puede ejecutar un inicio de sesión simulado y seguir una ruta de clics simulados del mouse en la página.
El monitoreo web de Zabbix admite HTTP y HTTPS. Al ejecutar un escenario web, Zabbix seguirá opcionalmente 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.
Para configurar un escenario web:
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 elemento de monitorización web. |
Intervalo de actualización | Con qué frecuencia se ejecutará el escenario. Se admiten sufijos de tiempo, p. ej., 30 s, 1 m, 2 h, 1 d. Se admiten 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). |
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. El conjunto de cifras 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: solo se admite la autenticación simple con el proxy HTTP. Se pueden usar macros de usuario en este campo. |
Variables | Variables que se pueden usar en los pasos del escenario (URL, variables de publicación). Tienen el siguiente formato: {macro1}=valor1 {macro2}=valor2 {macro3}=expresión regular:<expresión regular> Por ejemplo: {nombre de usuario}=Alexei {contraseña}=kj3h5kJ34bd {id de host}=expresión regular:id de host es ([0-9]+) Luego, se puede hacer referencia a las macros en los pasos como {nombre de usuario}, {contraseña} y {id de host}. 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 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 la encuentra, almacena la coincidencia en la variable. Debe estar presente al menos un subgrupo 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 una publicación sin procesar o directamente en la URL. |
Encabezados | Los encabezados HTTP se usan al realizar una solicitud. Se pueden utilizar 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 nivel de escenario. Sin embargo, incluso el encabezado predeterminado "User-Agent" se puede anular al especificarlo en un nivel de paso. Para anular la configuración del encabezado en un nivel de escenario, el encabezado debe tener un nombre y un atributo sin valor en un nivel de paso. Los encabezados deben enumerarse utilizando la misma sintaxis que aparecerían en el protocolo HTTP, utilizando opcionalmente algunas funciones adicionales compatibles con el protocolo HTTP. 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 {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 tendencias 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 las comprobaciones 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 "******".
Parámetros de paso:
Parámetro | Descripción |
---|---|
Nombre | Nombre de paso único. 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 métricas de monitorización 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 código puny a ASCII al ejecutar el paso del escenario web. El botón Parse se puede utilizar para separar los campos de consulta opcionales (como ?name=Admin&password=mypassword) de la URL, moviendo los atributos y valores a Campos de consulta para la codificación automática de la URL. Se pueden utilizar variables en la URL, utilizando la sintaxis {macro}. Las variables se pueden codificar en la URL de forma manual utilizando una sintaxis {{macro}.urlencode()}. Se admiten macros de usuario y macros {HOST.*}. Limitado a 2048 caracteres. |
Campos de consulta | Variables HTTP GET para la URL. Especificadas como pares de atributo y valor. Los valores se codifican en la URL de forma automática. Los valores de las variables de escenario, las macros de usuario o las macros {HOST.*} se resuelven y luego se codifican automáticamente en URL. Si se utiliza la sintaxis {{macro}.urlencode()}, se codificarán en URL dos veces. Se admiten las macros de usuario y las macros {HOST.*}. |
Variables HTTP POST* | . En el modo Datos de formulario, se especifican como pares de atributo y valor. Los valores se codifican automáticamente en URL. Los valores de las variables de escenario, las macros de usuario o las 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/descodificar en URL manualmente utilizando una sintaxis {{macro}.urlencode()} o {{macro}.urldecode()}. Por ejemplo: id=2345&userid={user} Si {user} se define como una variable del escenario web, se reemplazará por su valor cuando se ejecute el paso. Si desea codificar la variable en URL, sustituya {user} por {{user}.urlencode()}. Se admiten las macros de usuario y las macros {HOST.*}. |
Variables | Variables de nivel de paso que se pueden usar para las funciones GET y POST. Se especifican como pares de atributo y valor. Las variables de nivel de paso reemplazan 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 al paso siguiente (y no al paso actual). Tienen el siguiente formato: {macro}=valor {macro}=expresión regular:<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 se deben codificar en URL manualmente cuando se usan en una publicación sin procesar o directamente en la URL. |
Encabezados | Encabezados HTTP personalizados que se enviarán al realizar una solicitud. Se especifican como pares de atributo y valor. Se utilizará un encabezado definido en un nivel de paso para ese paso en particular. 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 nivel de escenario. Sin embargo, incluso el encabezado predeterminado 'User-Agent' se puede anular al especificarlo en un nivel de paso. Por ejemplo, asignar el nombre a un encabezado, pero no configurar ningún valor, anulará el encabezado predeterminado en un nivel de escenario. Se admiten macros de usuario y macros {HOST.*}. Esto configura el cURL CURLOPT_HTTPHEADER Opción. Se admite la especificación de encabezados personalizados a partir de Zabbix 2.4. |
Seguir redirecciones | Marque la casilla de verificación para seguir las redirecciones HTTP. Esto establece la opción cURL CURLOPT_FOLLOWLOCATION. |
Modo de recuperación | Seleccione el modo de recuperación: Cuerpo: recupera solo el cuerpo de la respuesta HTTP Encabezados: recupera solo los encabezados de la respuesta HTTP Cuerpo y encabezados: recupera el cuerpo y los encabezados de la respuesta HTTP |
Tiempo de espera | Zabbix no dedicará más de la cantidad de tiempo establecida 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 realizar la conexión a 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, p. ej., 30 s, 1 m, 1 h. 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 realiza ninguna verificación de la cadena requerida. Por ejemplo: Página de inicio de Zabbix Bienvenido.*admin Nota: En este campo no se admite la referencia a expresiones regulares creadas en la interfaz de Zabbix. Se admiten macros de usuario y macros {HOST.*}. |
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 realiza ninguna verificación de 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 todo el escenario.
Vea también un ejemplo real de cómo se pueden configurar los pasos de monitoreo web.
La pestaña Etiquetas permite definir etiquetas a nivel de escenario.
El etiquetado permite filtrar escenarios web y métricas de monitorización web.
La pestaña Autenticación le permite configurar las opciones de autenticación del escenario. Un punto verde junto al nombre de la pestaña indica que algún tipo de autenticación HTTP está habilitada.
Parámetros de autenticación:
Parámetro | Descripción |
---|---|
Autenticación | Opciones de autenticación. Ninguna: no se utiliza autenticación. Básica: se utiliza autenticación básica. NTLM: se utiliza autenticación NTLM (Windows NT LAN Manager). Kerberos: se utiliza autenticación Kerberos. Consulte también: Configuración de Kerberos con Zabbix. Digest: se utiliza la autenticación Digest. Al seleccionar un método de autenticación, se proporcionarán dos campos adicionales para ingresar un nombre de usuario y una contraseña. Se pueden utilizar macros de usuario en los campos de usuario y contraseña. |
SSL verified peer | 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 de certificación (CA) de todo el sistema. Puede anular la ubicación de los archivos de la CA mediante el parámetro de configuración del servidor o proxy de Zabbix SSLCALocation. Esto establece la opción cURL CURLOPT_SSL_VERIFYPEER. |
SSL verificar host | 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 la opción cURL CURLOPT_SSL_VERIFYHOST. |
Archivo de certificado SSL | Nombre del archivo de certificado SSL utilizado para la autenticación del cliente. El archivo de certificado debe estar en formato PEM1. Si el archivo de certificado también contiene 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 se especifica mediante el parámetro de configuración del servidor o proxy de Zabbix SSLCertLocation. Se pueden utilizar macros HOST.* y macros de usuario en este campo.Esto establece 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 se especifica mediante el parámetro de configuración del servidor o proxy de Zabbix SSLKeyLocation. Se pueden usar macros HOST.* y macros de usuario en este campo.Esto establece la opción cURL CURLOPT_SSLKEY. |
Contraseña de clave SSL | Contraseña de archivo de clave privada SSL. Se pueden usar macros de usuario en este campo. Esto establece la opción cURL CURLOPT_KEYPASSWD. |
[1] Zabbix admite archivos de certificado y clave privada solo en formato PEM. En caso de que tenga su certificado y datos de clave privada en un archivo de formato PKCS #12 (generalmente con extensión *.p12 o *.pfx), puede generar el archivo PEM a partir de él utilizando 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 los cambios en los certificados sin necesidad de reiniciar.
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 vacío el campo "Archivo de clave SSL". El certificado y la clave deben seguir estando en formato PEM. Combinar certificado y clave es fácil:
cat client.crt client.key > client.pem
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 Monitoreo → 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.
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 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 la supervisión ampliada siempre que el nivel de depuración 4 ya esté disponible:
# 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
.