4 Proxy
Descripción general
El proxy de Zabbix es un proceso que puede recopilar datos de monitorización de uno o más dispositivos monitorizados y enviar la información al servidor Zabbix, funcionando esencialmente en nombre del servidor. Todos los datos recopilados se almacenan temporalmente de forma local y luego se transfieren al servidor Zabbix al que pertenece el proxy.
El despliegue de un proxy es opcional, pero puede ser muy beneficioso para distribuir la carga de un único servidor Zabbix. Si solo los proxies recopilan datos, el procesamiento en el servidor requiere menos CPU y E/S de disco.
Un proxy de Zabbix es la solución ideal para la monitorización centralizada de ubicaciones remotas, sucursales y redes sin administradores locales.
El proxy de Zabbix requiere una base de datos independiente.
Tenga en cuenta que las bases de datos compatibles con el proxy de Zabbix son SQLite, MySQL y PostgreSQL. El uso de Oracle es bajo su propio riesgo y puede contener algunas limitaciones, por ejemplo, en los valores devueltos de las reglas de descubrimiento de bajo nivel.
Consulte también: Uso de proxies en un entorno distribuido
Ejecutando el proxy
Si se instala como paquete
El proxy de Zabbix se ejecuta como un proceso demonio. El proxy puede iniciarse ejecutando:
systemctl start zabbix-proxy
Esto funcionará en la mayoría de los sistemas GNU/Linux. En otros sistemas puede que necesite ejecutar:
/etc/init.d/zabbix-proxy start
De manera similar, para detener/reiniciar/ver el estado del proxy de Zabbix, utilice los siguientes comandos:
systemctl stop zabbix-proxy
systemctl restart zabbix-proxy
systemctl status zabbix-proxy
Iniciar manualmente
Si lo anterior no funciona, debe iniciarlo manualmente.
Busque la ruta al binario zabbix_proxy y ejecute:
zabbix_proxy
Puede usar los siguientes parámetros de línea de comandos con Zabbix proxy:
-c --config <file> Ruta al archivo de configuración
-f --foreground Ejecutar Zabbix proxy en primer plano
-R --runtime-control <option> Realizar funciones administrativas
-T --test-config Validar el archivo de configuración y salir
-h --help Mostrar esta ayuda
-V --version Mostrar el número de versión
Ejemplos de ejecución de Zabbix proxy con parámetros de línea de comandos:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
zabbix_proxy --help
zabbix_proxy -V
Control en tiempo de ejecución
Opciones de control en tiempo de ejecución:
| Option | Description | Target |
|---|---|---|
config_cache_reload |
Recargar la caché de configuración. Se ignora si la caché se está cargando actualmente. El proxy activo de Zabbix se conectará al server de Zabbix y solicitará los datos de configuración. El proxy pasivo de Zabbix solicitará los datos de configuración al server de Zabbix la próxima vez que el server se conecte al proxy. |
|
diaginfo[=<section>] |
Recopilar información de diagnóstico en el archivo de registro del proxy. | historycache - estadísticas de la caché de historial;preprocessing - estadísticas del gestor de preprocesamiento;locks - lista de mutexes (está vacía en sistemas BSD). |
snmp_cache_reload |
Recargar la caché SNMP: limpiar las propiedades del motor SNMP (engine time, engine boots, engine id, credenciales) para todos los hosts. Úselo para forzar una limpieza global de la caché al solucionar problemas de SNMP. | |
housekeeper_execute |
Iniciar el procedimiento de housekeeping. Se ignora si el procedimiento de housekeeping ya está en curso. | |
log_level_increase[=<target>] |
Aumentar el nivel de registro; afecta a todos los procesos si no se especifica target. No es compatible con sistemas BSD. |
process type - todos los procesos del tipo especificado (por ejemplo, poller).Consulte todos los tipos de procesos del proxy. process type,N - tipo de proceso y número (por ejemplo, poller,3).pid - identificador de proceso ( 1 a 65535). Para valores mayores, especifique target como 'process type,N'. |
log_level_decrease[=<target>] |
Disminuir el nivel de registro; afecta a todos los procesos si no se especifica target. No es compatible con sistemas BSD. |
|
prof_enable[=<target>] |
Habilitar el profiling. Afecta a todos los procesos si no se especifica target. El profiling habilitado proporciona detalles de todos los rwlocks/mutexes por nombre de función. |
process type - todos los procesos del tipo especificado (por ejemplo, history syncer).Consulte todos los tipos de procesos del proxy. process type,N - tipo de proceso y número (por ejemplo, history syncer,1)pid - identificador de proceso ( 1 a 65535). Para valores mayores, especifique target como 'process type,N'.scope - rwlock, mutex, processing se pueden usar con el tipo de proceso y número (por ejemplo, history syncer,1,processing) o con todos los procesos de un tipo (por ejemplo, history syncer,rwlock). |
prof_disable[=<target>] |
Deshabilitar el profiling. Afecta a todos los procesos si no se especifica target. |
process type - todos los procesos del tipo especificado (por ejemplo, history syncer).Consulte todos los tipos de procesos del proxy. process type,N - tipo de proceso y número (por ejemplo, history syncer,1).pid - identificador de proceso ( 1 a 65535). Para valores mayores, especifique target como 'process type,N'. |
Ejemplo de uso del control en tiempo de ejecución para recargar la caché de configuración del proxy:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R config_cache_reload
Ejemplos de uso del control en tiempo de ejecución para recopilar información de diagnóstico:
# Recopilar toda la información de diagnóstico disponible en el archivo de registro del proxy:
zabbix_proxy -R diaginfo
# Recopilar estadísticas de la caché de historial en el archivo de registro del proxy:
zabbix_proxy -R diaginfo=historycache
Ejemplo de uso del control en tiempo de ejecución para recargar la caché SNMP:
zabbix_proxy -R snmp_cache_reload
Cuando una interfaz SNMPv3 se actualiza mediante la UI de Zabbix, Zabbix recargará automáticamente las nuevas credenciales SNMPv3 para esa interfaz en la mayoría de los casos; use -R snmp_cache_reload solo si la sondeo sigue fallando después de cambiar las credenciales (por ejemplo, debido a inconsistencias de engineBoots/engineID o a dispositivos no RFC), o cuando necesite forzar una limpieza global de la caché SNMP para solucionar problemas.
Ejemplo de uso del control en tiempo de ejecución para iniciar la ejecución de housekeeping:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R housekeeper_execute
Ejemplos de uso del control en tiempo de ejecución para cambiar el nivel de registro:
# Aumentar el nivel de registro de todos los procesos:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase
# Aumentar el nivel de registro del segundo proceso poller:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=poller,2
# Aumentar el nivel de registro del proceso con PID 1234:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=1234
# Disminuir el nivel de registro de todos los procesos http poller:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Usuario del proceso
Zabbix proxy está diseñado para ejecutarse como un usuario que no sea root. Se ejecutará como cualquier usuario que no sea root con el que se inicie. Por lo tanto, puede ejecutar proxy como cualquier usuario que no sea root sin ningún problema.
Si intenta ejecutarlo como 'root', cambiará a un usuario 'zabbix' codificado de forma fija, que debe estar presente en su sistema.
Solo puede ejecutar proxy como 'root' si modifica el parámetro AllowRoot en el archivo de configuración de proxy en consecuencia.
Archivo de configuración
Consulte las opciones del archivo de configuración para obtener más detalles sobre la configuración de zabbix_proxy.
Tipos de procesos y hilos del proxy
agent poller- proceso de sondeo asíncrono para comprobaciones pasivas con un hilo de trabajo;availability manager- proceso para actualizaciones de disponibilidad del host;browser poller- sondeador para comprobaciones de items de navegador;configuration syncer- proceso para gestionar la caché en memoria de los datos de configuración;data sender- emisor de datos del proxy;discovery manager- proceso gestor para el descubrimiento de dispositivos;discovery worker- proceso para gestionar tareas de descubrimiento procedentes del discovery manager;history syncer- escritor de la base de datos de historial;housekeeper- proceso para eliminar el historial obsoleto de los items;http agent poller- proceso de sondeo asíncrono para comprobaciones HTTP con un hilo de trabajo;http poller- sondeador para la supervisión web;icmp pinger- sondeador para comprobaciones icmpping;internal poller- sondeador para comprobaciones internas;ipmi manager- gestor del sondeador IPMI;ipmi poller- sondeador para comprobaciones IPMI;java poller- sondeador para comprobaciones Java;odbc poller- sondeador para comprobaciones ODBC;poller- sondeador normal para comprobaciones pasivas;preprocessing manager- gestor de tareas de preprocesamiento con hilos de trabajo de preprocesamiento;preprocessing worker- hilo para el preprocesamiento de datos;self-monitoring- proceso para recopilar estadísticas internas del server;snmp poller- proceso de sondeo asíncrono para comprobaciones SNMP con un hilo de trabajo (solo itemswalk[OID]yget[OID]);snmp trapper- trapper para traps SNMP;task manager- proceso para la ejecución remota de tareas solicitadas por otros componentes (por ejemplo, cerrar un problema, reconocer un problema, comprobar el valor de un item ahora, funcionalidad de comando remoto);trapper- trapper para comprobaciones activas, traps y comunicación con el proxy;unreachable poller- sondeador para dispositivos inalcanzables;vmware collector- recopilador de datos de VMware responsable de la obtención de datos de los servicios de VMware.
El archivo de registro del proxy puede utilizarse para observar estos tipos de procesos.
Desde Zabbix 7.0.22, el archivo de registro del proxy se crea con permisos de lectura y escritura solo para el propietario del archivo. Además, el archivo es legible por el grupo propietario. Se deniegan todos los demás permisos.
Se pueden supervisar varios tipos de procesos del proxy de Zabbix mediante el internal item zabbix[process,<type>,<mode>,<state>].
Plataformas compatibles
Zabbix proxy se ejecuta en la misma lista de plataformas compatibles que Zabbix server.
Buffer de memoria
El buffer de memoria permite almacenar nuevos datos (valores de item, descubrimiento de red, autoregistro de host) en el buffer y cargarlos en el server de Zabbix sin acceder a la base de datos. El buffer de memoria se introdujo para el proxy en Zabbix 7.0.
En instalaciones anteriores a Zabbix 7.0, los datos recopilados se almacenaban en la base de datos antes de cargarse en el server de Zabbix. En estas instalaciones, este sigue siendo el comportamiento predeterminado después de actualizar a Zabbix 7.0.
Para un rendimiento optimizado, se recomienda configurar el uso del buffer de memoria en el proxy.
Esto es posible modificando el valor de ProxyBufferMode de disk (valor predeterminado codificado para instalaciones existentes) a hybrid (recomendado) o memory.
También es necesario establecer el tamaño del buffer de memoria (parámetro ProxyMemoryBufferSize).
En el modo híbrido, el buffer está protegido contra la pérdida de datos vaciando los datos no enviados a la base de datos si el proxy se detiene, el buffer se llena o los datos son demasiado antiguos. Cuando todos los valores se han vaciado en la base de datos, el proxy vuelve a usar el buffer de memoria.
En el modo de memoria, se usará el buffer de memoria; sin embargo, no hay protección contra la pérdida de datos. Si el proxy se detiene o la memoria se sobrecarga, los datos no enviados se descartarán.
El modo híbrido (ProxyBufferMode=hybrid) se aplica a todas las instalaciones nuevas desde Zabbix 7.0.
Parámetros adicionales como ProxyMemoryBufferSize y ProxyMemoryBufferAge definen, respectivamente, el tamaño del buffer de memoria y la antigüedad máxima de los datos en el buffer.
Tenga en cuenta que, ante una configuración en conflicto, el proxy mostrará un error y no podrá iniciarse, por ejemplo, si:
ProxyBufferModeestá establecido enhybridomemoryyProxyMemoryBufferSizees0.ProxyBufferModeestá establecido enhybridomemoryyProxyLocalBufferno es0.
Configuración regional
Tenga en cuenta que el proxy requiere una configuración regional UTF-8 para que algunos elementos de texto puedan interpretarse correctamente. La mayoría de los sistemas modernos similares a Unix tienen una configuración regional UTF-8 por defecto, sin embargo, hay algunos sistemas donde esto puede necesitar configurarse específicamente.
Cálculo de colas durante el mantenimiento
El proxy de Zabbix no tiene conocimiento de los períodos de mantenimiento; consulte Cálculo de colas durante el mantenimiento para más detalles.