1 Proxies

Resumen

Un Zabbix proxy puede recopilar datos de rendimiento y disponibilidad en nombre del server de Zabbix. De este modo, un proxy puede asumir parte de la carga de recopilación de datos y descargar al server de Zabbix.

Además, usar un proxy es la forma más sencilla de implementar una supervisión centralizada y distribuida, cuando todos los agent y proxy informan a un único server de Zabbix y todos los datos se recopilan de forma centralizada.

Un Zabbix proxy se puede usar para:

  • Supervisar ubicaciones remotas
  • Supervisar ubicaciones con comunicaciones poco fiables
  • Descargar al server de Zabbix al supervisar miles de dispositivos
  • Simplificar el mantenimiento de la supervisión distribuida

El proxy requiere solo una conexión TCP con el server de Zabbix. De este modo, es más fácil atravesar un firewall, ya que solo necesita configurar una regla de firewall.

Zabbix proxy debe usar una base de datos separada. Apuntarlo a la base de datos del server de Zabbix romperá la configuración.

Todos los datos recopilados por el proxy se almacenan localmente antes de enviarse al server. De este modo, no se pierde ningún dato debido a problemas temporales de comunicación con el server. Los parámetros ProxyLocalBuffer y ProxyOfflineBuffer en el archivo de configuración del proxy controlan durante cuánto tiempo se conservan los datos localmente.

Puede ocurrir que un proxy, que recibe los últimos cambios de configuración directamente desde la base de datos del server de Zabbix, tenga una configuración más actualizada que el server de Zabbix, cuya configuración puede no actualizarse tan rápido debido al valor de CacheUpdateFrequency. Como resultado, el proxy puede empezar a recopilar datos y enviarlos al server de Zabbix, que ignora estos datos.

Zabbix proxy es un recopilador de datos. No calcula triggers, procesa eventos ni envía alertas. Para obtener una visión general de cuál es la funcionalidad del proxy, revise la siguiente tabla:

Function Supported by proxy
Items
Zabbix agent checks Yes
Zabbix agent checks (active) Yes 1
Simple checks Yes
Trapper items Yes
SNMP checks Yes
SNMP traps Yes
IPMI checks Yes
JMX checks Yes
Log file monitoring Yes
Internal checks Yes
SSH checks Yes
Telnet checks Yes
External checks Yes
Dependent items Yes
Script items Yes
Browser items Yes
Built-in web monitoring Yes
Item value preprocessing Yes
Network discovery Yes
Active agent autoregistration Yes
Low-level discovery Yes 2
Remote commands Yes
Calculating triggers No
Processing events No
Event correlation No
Sending alerts No

[1] Para asegurarse de que un agent solicite al proxy (y no al server) las comprobaciones activas, el proxy debe estar incluido en el parámetro ServerActive del archivo de configuración del agent.
[2] Para LLD, Zabbix proxy solo recopila y preprocesa los datos y luego los envía al server de Zabbix para su posterior procesamiento.

Protección contra sobrecarga

Si el server de Zabbix estuvo caído durante algún tiempo y los proxies han recopilado muchos datos, y luego el server se inicia, puede sobrecargarse (el uso de la caché de historial permanece en 95-100% durante algún tiempo). Esta sobrecarga podría provocar una degradación del rendimiento, en la que las comprobaciones se procesan más lentamente de lo que deberían. Se implementó una protección contra este escenario para evitar los problemas que surgen debido a la sobrecarga de la caché de historial.

Cuando la caché de historial del server de Zabbix está llena, el acceso de escritura a la caché de historial se limita, deteniendo los procesos de recopilación de datos del server. El caso más común de sobrecarga de la caché de historial es después de un tiempo de inactividad del server, cuando los proxies están cargando los datos recopilados. Para evitar esto, se añadió la limitación de proxy (actualmente no se puede deshabilitar).

El server de Zabbix dejará de aceptar datos de los proxies cuando el uso de la caché de historial alcance el 80%. En su lugar, esos proxies se colocarán en una lista de limitación. Esto continuará hasta que el uso de la caché baje al 60%. Entonces el server comenzará a aceptar datos de los proxies uno por uno, según la lista de limitación. Esto significa que el primer proxy que intentó cargar datos durante el período de limitación será atendido primero y, hasta que termine, el server no aceptará datos de otros proxies.

Este modo de limitación continuará hasta que el uso de la caché vuelva a alcanzar el 80%, baje al 20% o la lista de limitación quede vacía. En el primer caso, el server dejará de aceptar datos de proxy nuevamente. En los otros dos casos, el server comenzará a funcionar normalmente, aceptando datos de todos los proxies.

La información anterior puede ilustrarse en la siguiente tabla:

Uso de la caché de escritura de
historial
Modo del server de Zabbix Acción del server de Zabbix
Alcanza el 80% Espera Deja de aceptar datos de proxy, pero mantiene una lista de limitación (lista priorizada de proxies a los que se contactará más tarde).
Baja al 60% Limitado Comienza a procesar la lista de limitación, pero sigue sin aceptar datos de proxy.
Baja al 20% Normal Descarta la lista de limitación y comienza a aceptar datos de proxy normalmente.

Puede usar el item interno zabbix[wcache,history,pused] para correlacionar este comportamiento del server de Zabbix con una métrica.

Configuración

Una vez que haya instalado y configurado un proxy, es hora de configurarlo en el frontend de Zabbix.

Añadir proxies

Para configurar un proxy en Zabbix frontend:

  • Vaya a: Administration → Proxies
  • Haga clic en Create proxy

Parameter Description
Proxy name Introduzca el nombre del proxy. Debe ser el mismo nombre que en el parámetro Hostname del archivo de configuración del proxy.
Proxy group Seleccione un grupo de proxy para balanceo de carga/alta disponibilidad del proxy.
Address for active agents Introduzca la dirección a la que deben conectarse los agentes activos o remitentes monitorizados. Compatible solo con agentes Zabbix 7.0 o posteriores.
Esta dirección se usa para conectarse tanto a proxies activos como pasivos. Este campo solo está disponible si se selecciona un grupo de proxy en el campo Proxy group.
Address Dirección IP/nombre DNS al que conectarse.
Port Número de puerto TCP (10051 por defecto) al que conectarse. Se admiten macros de usuario.
Proxy mode Seleccione el modo del proxy.
Active - el proxy se conectará al server de Zabbix y solicitará datos de configuración
Passive - el server de Zabbix se conecta al proxy
Note que, sin comunicaciones cifradas, los datos de configuración del proxy (sensibles) pueden quedar disponibles para terceros que tengan acceso al puerto trapper del server de Zabbix cuando se usa un proxy activo. Esto es posible porque cualquiera puede hacerse pasar por un proxy activo y solicitar datos de configuración si no se realiza autenticación o si las direcciones del proxy no están limitadas en el campo Proxy address.
Proxy address Si se especifica, las solicitudes del proxy activo solo se aceptan desde esta lista de direcciones IP separadas por comas, opcionalmente en notación CIDR, o nombres DNS del proxy Zabbix activo.
Este campo solo está disponible si se selecciona un proxy activo en el campo Proxy mode. No se admiten macros.
Interface Introduzca los detalles de la interfaz para un proxy pasivo.
Este campo solo está disponible si se selecciona un proxy pasivo en el campo Proxy mode.
Address Dirección IP/nombre DNS del proxy pasivo.
Port Número de puerto TCP del proxy pasivo (10051 por defecto). Se admiten macros de usuario.
Description Introduzca la descripción del proxy.

La pestaña Encryption le permite exigir conexiones cifradas con el proxy.

Parameter Description
Connections to proxy Cómo se conecta el server al proxy pasivo: sin cifrado (predeterminado), usando PSK (clave precompartida) o certificado.
Connections from proxy Seleccione qué tipo de conexiones se permiten desde el proxy activo. Se pueden seleccionar varios tipos de conexión al mismo tiempo (útil para pruebas y para cambiar a otro tipo de conexión). El valor predeterminado es "No encryption".
Issuer Emisor permitido del certificado. Primero se valida el certificado con la CA (autoridad certificadora). Si es válido y está firmado por la CA, entonces el campo Issuer puede usarse para restringir aún más la CA permitida. Este campo es opcional y está pensado para usarse si su instalación de Zabbix utiliza certificados de varias CAs.
Subject Asunto permitido del certificado. Primero se valida el certificado con la CA. Si es válido y está firmado por la CA, entonces el campo Subject puede usarse para permitir solo un valor de la cadena Subject. Si este campo está vacío, se acepta cualquier certificado válido firmado por la CA configurada.
PSK identity Cadena de identidad de la clave precompartida.
No coloque información sensible en la identidad PSK, ya que se transmite sin cifrar por la red para informar al receptor qué PSK debe usar.
PSK Clave precompartida (cadena hexadecimal). Longitud máxima: 512 dígitos hexadecimales (PSK de 256 bytes) si Zabbix usa la biblioteca GnuTLS u OpenSSL, 64 dígitos hexadecimales (PSK de 32 bytes) si Zabbix usa la biblioteca mbed TLS (PolarSSL). Ejemplo: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

La pestaña Timeouts le permite sobrescribir los timeouts globales para los tipos de item que lo admiten.

Parameter Description
Timeouts for item types Seleccione la opción de timeout:
Global - se usa el timeout global (mostrado en el campo Timeout atenuado para cada tipo de item);
Override - se usa un timeout personalizado (configurado en el campo Timeout para cada tipo de item). Rango permitido: 1 - 600 s (predeterminado: heredado de los timeouts globales). Se admiten sufijos de tiempo, por ejemplo 30s, 1m, y macros de usuario.

Al hacer clic en el enlace Global timeouts puede configurar los timeouts globales. Tenga en cuenta que el enlace Global timeouts solo es visible para usuarios de tipo Super admin con permisos para la sección de frontend AdministrationGeneral.

Tipos de item admitidos:
- Zabbix agent (comprobaciones pasivas y activas)
- Simple check (excepto items icmpping*, vmware.*)
- SNMP agent (solo para items SNMP walk[OID] y get[OID])
- External check
- Database monitor
- HTTP agent
- SSH agent
- TELNET agent
- Script
- Browser

Tenga en cuenta que los timeouts establecidos en Override prevalecerán sobre los globales, pero serán sobrescritos por los timeouts individuales de cada item si estos se configuran en la configuración del item.

Si la versión principal del proxy no coincide con la versión principal del server, se mostrará el icono junto a Timeouts for item types, con el mensaje al pasar el cursor "Timeouts disabled because the proxy and server versions do not match". En tales casos, el proxy usará el parámetro Timeout del archivo de configuración del proxy.

El formulario de edición de un proxy existente tiene los siguientes botones adicionales:

  • Refresh configuration - actualiza la configuración del proxy
  • Clone - crea un nuevo proxy basado en las propiedades del proxy existente
  • Delete - elimina el proxy
Configuración de host

Puede especificar que un host individual debe ser monitoreado por un proxy o un grupo de proxy en el formulario de configuración de host, usando el campo Monitored by.

La actualización masiva de host es otra forma de especificar que los hosts deben ser monitoreados por un proxy o un grupo de proxy.