Advertising:

Configuracion minima y tunning de Zabbix Server 7.X

From Zabbix-ES
Jump to navigation Jump to search

Configuracion minima para Zabbix 7.X

Tipos de procesos e hilos del servidor

FUENTE: https://www.zabbix.com/documentation/current/en/manual/concepts/server#server-process-types-and-threads

- agent poller                # proceso de sondeo asíncrono para comprobaciones pasivas con un subproceso de trabajo
- alert manager               # gestor de colas de alertas
- alert syncer                # escritor de la base de datos de alertas
- alerter                     # proceso para enviar notificaciones
- availability manager        # proceso para actualizar la disponibilidad del host
- configuration syncer        # proceso para gestionar la caché en memoria de los datos de configuración
- configuration syncer worker # proceso para resolver y sincronizar valores de macros de usuario en nombres de elementos
- connector manager           # proceso de gestión de conectores
- connector worker            # proceso para gestionar las solicitudes del gestor de conectores
- discovery manager           # proceso de gestión para el descubrimiento de dispositivos
- discovery worker            # proceso para gestionar las tareas de descubrimiento del gestor de descubrimiento
- escalator                   # proceso para escalar acciones
- ha manager                  # proceso para gestionar la alta disponibilidad
- history poller              # proceso para gestionar comprobaciones calculadas que requieren una conexión a una base de datos
- history syncer              # escritor de la base de datos del historial
- housekeeper                 # proceso de eliminación de datos históricos antiguos
- http agent poller           # proceso de poller asíncrono para comprobaciones HTTP con un hilo de trabajo
- http poller                 # poller de monitorización web
- icmp pinger                 # poller para comprobaciones icmpping
- ipmi manager                # gestor de sondeo IPMI
- ipmi poller                 # poller para comprobaciones IPMI
- java poller                 # poller para comprobaciones Java
- lld manager                 # proceso gestor de tareas de descubrimiento de bajo nivel
- lld worker                  # proceso worker de tareas de descubrimiento de bajo nivel
- odbc poller                 # poller para comprobaciones ODBC
- poller                      # poller normal para comprobaciones pasivas
- preprocessing manager       # gestor de tareas de preprocesamiento con subprocesos de trabajador de preprocesamiento
- preprocessing worker        # subproceso para el preprocesamiento de datos
- proxy poller                # poller para proxies pasivos
- proxy group manager         # gestor de balanceo de carga de proxy y alta disponibilidad
- report manager              # gestor de tareas programadas de generación de informes
- report writer               # proceso de generación de informes programados
- self-monitoring             # proceso para recopilar estadísticas internas del servidor
- service manager             # proceso para gestionar servicios recibiendo información sobre problemas, etiquetas de problemas y recuperación de 
                              # problemas del sincronizador de historial, gestor de tareas y gestor de alertas
- snmp poller                 # proceso de poller asíncrono para comprobaciones SNMP con un hilo de trabajo (sólo elementos walk[OID] y get[OID])
- snmp trapper                # trapper para traps SNMP
- task manager                # proceso para la ejecución remota de tareas solicitadas por otros componentes (por ejemplo, cerrar problema, 
                              # reconocer problema, comprobar valor de elemento ahora, funcionalidad de comando remoto)
- timer                       # temporizador para procesar mantenimientos
- trapper                     # atrapador para comprobaciones activas, trampas, comunicación proxy
- trigger housekeeper         # proceso para eliminar problemas generados por disparadores que han sido eliminados
- unreachable poller          # poller para dispositivos inalcanzables
- vmware collector            # recolector de datos VMware responsable de la recolección de datos de los servicios VMware
Nota: Se pueden monitorizar varios tipos de procesos del servidor Zabbix utilizando el elemento interno zabbix[process,<type>,<mode>,<state>]. [Internal checks]

Tunning de Zabbix Server Conf

FUENTES: https://www.zabbix.com/documentation/current/es/manual/appendix/config/zabbix_server
         https://www.initmax.cz/wp-content/uploads/2022/06/zabbix_performance_tuning_6.0.pdf
         https://www.initmax.cz/wp-content/uploads/2024/02/zabbix-performance-tuning-7.0.pdf

Configuracion parametros GENERALES

# ListenPort=10051                            # El puerto de escucha para el trapper (10051).
# SourceIP=                                   # Dirección IP de origen para salida
                                              # Conexiones salientes al proxy Zabbix y al agente Zabbix;
                                              # Conexiones sin agente (VMware, SSH, JMX, SNMP, Telnet y comprobaciones simples);
                                              # Conexiones de agente HTTP;
                                              # Solicitudes HTTP de JavaScript de elementos de secuencia de comandos;
                                              # Preprocesamiento de solicitudes HTTP de JavaScript;
                                              # Envío de correos electrónicos de notificación (conexiones al servidor SMTP);
                                              # Notificaciones de webhook (conexiones HTTP de JavaScript);
                                              # Conexiones a Vault
LogFile=/var/log/zabbix/zabbix_server.log     # El nombre del archivo de registro.
# LogType=file                                # Tipo de salida del registro
                                              # file - escribe el registro en el archivo especificado por el parámetro LogFile;
                                              # system - escribe el registro en syslog;
                                              # console - escribe el registro en la salida estándar.
LogFileSize=0                                 # El tamaño máximo del archivo de registro en MB. 0 - desactivar la rotación automática del registro.
                                              # Si se alcanza el límite de tamaño del archivo de registro y falla la rotación de archivos, 
                                              # por la razón que sea, el archivo de registro existente se trunca y se inicia de nuevo.
PidFile=/run/zabbix/zabbix_server.pid         # Nombre del archivo PID.
SocketDir=/run/zabbix                         # Directorio para almacenar sockets IPC utilizados por los servicios internos de Zabbix.
# DebugLevel=3                                # Especifica el nivel de depuración:
                                              # 0 - información básica sobre el arranque y parada de los procesos de Zabbix.
                                              # 1 - información crítica
                                              # 2 - información de error
                                              # 3 - advertencias
                                              # 4 - para depuración (produce mucha información)
                                              # 5 - depuración extendida (produce aún más información)

Parametros para configurar la conexion con la base de datos

# DBHost=localhost                            # El nombre del host de la base de datos.
                                              # Con MySQL localhost o cadena vacía resulta en el uso de un socket. 
                                              # Con PostgreSQL sólo la cadena vacía da como resultado el intento de utilizar un socket. 
                                              # Con Oracle la cadena vacía resulta en el uso del método de conexión Net Service Name; 
                                              # en este caso considere el uso de la variable de entorno TNS_ADMIN para especificar el directorio del archivo tnsnames.ora.
DBName=zabbix                                 # El nombre de la base de datos.
DBUser=zabbix                                 # El usuario de la base de datos.
DBPassword=Z4bb1x                             # La contraseña de la base de datos.
# DBSchema=                                   # Schema name. Used for PostgreSQL.
# DBSocket=                                   # La ruta al archivo de socket MySQL.
# DBPort=                                     # El puerto de la base de datos cuando no se utiliza el socket local.
# AllowUnsupportedDBVersions=0                # Permitir que el servidor trabaje con versiones de bases de datos no compatibles. 0 No permitido - 1 Permitido

Parametros para la configuración de Elasticsearch

# HistoryStorageURL=                          # La URL HTTP[S] de almacenamiento histórico
# HistoryStorageTypes=uint,dbl,str,log,text   # Una lista separada por comas de los tipos de valores que se enviarán al almacenamiento del historial.
# HistoryStorageDateIndex=0                   # Permite el preprocesamiento de los valores históricos en el almacenamiento histórico para almacenar valores en diferentes índices basados en la fecha.

Parametros para la exportacion de valores en tiempo real

# ExportDir=                                  # El directorio para la exportación en tiempo real de eventos, historial y tendencias en formato JSON delimitado por nuevas líneas. 
                                              # Si se establece, habilita la exportación en tiempo real.
# ExportFileSize=1G                           # El tamaño máximo por archivo de exportación en bytes. Se utiliza para la rotación si ExportDir está configurado.
# ExportType=events,history,trends            # La lista de tipos de entidad delimitados por comas (eventos, historial, tendencias) para la exportación en tiempo real (todos los tipos por defecto). 
                                              # Válido sólo si ExportDir está configurado.
                                              # Tenga en cuenta que si se especifica ExportType, pero no ExportDir, se trata de un error de configuración y el servidor no se iniciará.

Parametros para la configuracion de pollers precargados al iniciar zabbix

# StartPollers=5                              # Número de instancias precargadas de pollers.
# StartAgentPollers=1                         # Número de instancias precargadas de agentes pollers asíncronos de Zabbix.
# StartHTTPAgentPollers=1                     # Número de instancias precargadas de pollers de agentes HTTP asíncronos.
# StartSNMPPollers=1                          # Número de instancias precargadas de pollers SNMP asíncronos.
# MaxConcurrentChecksPerPoller=1000           # Número máximo de comprobaciones asíncronas que pueden ser ejecutadas a la vez por cada HTTP agent poller, agent poller o SNMP poller. 
                                              # Ver StartHTTPAgentPollers, StartAgentPollers y StartSNMPPollers.
# StartIPMIPollers=0                          # Número de instancias precargadas de pollers IPMI.
# StartPreprocessors=3                        # Número de instancias precargadas de preprocessing workers.
# StartConnectors=0                           # Número de instancias preforked de trabajadores conectores.
                                              # El proceso del gestor de conectores se inicia automáticamente cuando se inicia un worker de conectores.
# StartPollersUnreachable=1                   # Número de instancias preforked de pollers para hosts inalcanzables (incluyendo IPMI y Java).
                                              # Al menos un poller para hosts inalcanzables (Unreachable) debe estar en ejecución si se inician pollers normales, IPMI o Java.
# StartHistoryPollers=5                       # Número de instancias preforked de history pollers. Solo se requiere para comprobaciones calculadas (calculated checks).
# StartTrappers=5                             # Número de instancias preforked de trappers. Los trappers aceptan conexiones entrantes de Zabbix sender, agentes activos y proxies activos.
# StartPingers=1                              # Número de instancias preforked de pingers ICMP
# StartDiscoverers=5                          # Número de instancias preforked de discovery workers.
# StartHTTPPollers=1                          # Número de instancias preforked de pollers HTTP
# StartTimers=1                               # Número de instancias preforked de temporizadores. Los temporizadores procesan periodos de mantenimiento.
# StartEscalators=1                           # Número de instancias preforzadas de escaleras mecánicas.
# StartAlerters=3                             # Número de instancias preforked de alertas

Parametros para la configuracion de JavaGateway

# JavaGateway=                                # Dirección IP (o nombre de host) de la pasarela Java de Zabbix. Sólo se requiere si se inician los pollers de Java.
# JavaGatewayPort=10052                       # El puerto en el que escucha la pasarela Java de Zabbix.
# StartJavaPollers=0                          # Número de instancias preforked de los pollers Java

Parametros para recolectar metricas del VMWare

# StartVMwareCollectors=0
# VMwareFrequency=60
# VMwarePerfFrequency=60
# VMwareCacheSize=8M
# VMwareTimeout=10

Parametros Generales

SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
# StartSNMPTrapper=0                # Si se establece en 1, se iniciará un proceso SNMP trapper.

# HousekeepingFrequency=1           # Este parámetro determina la frecuencia con la que Zabbix realizará el procedimiento de limpieza en horas.
# MaxHousekeeperDelete=5000         # No se eliminarán más de las filas indicadas por 'MaxHousekeeperDelete' (correspondientes a [nombre de tabla], [campo], [valor]) por tarea en un ciclo de limpieza.
                                    # Si se establece en 0, no hay límite usado en absoluto. En este caso debes saber lo que estás haciendo, para no ¡sobrecargar la base de datos!
                                    # Este parámetro se aplica solo para eliminar el historial. y tendencias de métricas ya eliminadas.

# CacheSize=32M                     # El tamaño de la caché de tendencias, en bytes. El tamaño de la memoria compartida para almacenar datos de tendencias.
# CacheUpdateFrequency=10           # Frecuencia con la que Zabbix actualizará la caché de configuración, en segundos.

# StartDBSyncers=4                  # Número de instancias preforked de DB Syncers. 
                                    # Tenga cuidado al cambiar este valor, aumentarlo puede hacer más daño que bien. 
                                    # Aproximadamente, el valor predeterminado debería ser suficiente para manejar hasta 4000 NVPS.
                                    # Como regla general, un DBSyncer puede manejar 1.000 Nuevos Valores por Segundo (NVPS), 
                                    # siempre y cuando su base de datos pueda mantener el ritmo de escritura I/O. 
                                    # Puedes comprobar el estado de tus DBSyncers usando los tipos internos de Zabbix para comprobar 
                                    # el estado de cada proceso, y sus tiempos de ocupación.
# HistoryCacheSize=16M              # Tamaño de la caché del historial, en bytes.   Tamaño de la memoria compartida para almacenar datos históricos.
# HistoryIndexCacheSize=4M          # Tamaño de caché índice de historia, en bytes. Tamaño de memoria compartida para caché de historial de indexación.
# TrendCacheSize=4M                 # Tamaño de la memoria compartida (caché) para almacenar datos de tendencias en bytes.
# TrendFunctionCacheSize=4M         # Tamaño de la memoria compartida (caché) para almacenar en caché los datos calculados de la función de tendencia.
# ValueCacheSize=8M                 # Tamaño de la memoria compartida (caché) para almacenar las solicitudes de datos del historial de elementos. El valor 0 desactiva la caché de valores (no recomendado). 
                                    # Cuando la caché de valores agota la memoria compartida, se escribe un mensaje de advertencia en el registro del servidor cada 5 minutos.

Timeout=4                           # Especifica el tiempo de espera para la conexión al proxy, agente, servicio web de Zabbix, o comprobaciones SNMP (excepto elementos SNMP walk[OID] y get[OID]), en segundos.

# TrapperTimeout=300                # Especifica cuántos segundos puede pasar el trapper procesando nuevos datos (300s = 5m).

# UnreachablePeriod=45              # Determina después de cuántos segundos de inalcanzabilidad o no disponible trata un host como no disponible. Si se alcanza este periodo la interfaz del host se considera no disponible.
                                    # En este momento entra el parámetro UnavailableDelay que define la frecuencia con la que se comprueba una interfaz durante su inalcanzabilidad.
# UnavailableDelay=60               # Determina con qué frecuencia se verifica la disponibilidad del equipo durante el período de inalcanzabilidad en segundos. 
                                    # Durante este periodo (1m) se desactivaran las comprobaciones.
# UnreachableDelay=15               # Determina con qué frecuencia se verifica la disponibilidad del equipo durante el período de inalcanzabilidad en segundos.
                                    # Dichas comprobaciones se realizarán ya por los unreachable pollers (o IPMI pollers para IPMI checks)

# AlertScriptsPath=/usr/lib/zabbix/alertscripts   # Ubicación de los scripts de alerta personalizados.
# ExternalScripts=/usr/lib/zabbix/externalscripts # Ubicación de los scripts externos.
# FpingLocation=/usr/sbin/fping                   # Ubicación de fping. Asegúrese de que el binario fping tenga a root como propietario y el indicador SUID esté configurado.
# Fping6Location=/usr/sbin/fping6                 # Ubicación de fping6. Asegúrese de que el binario fping6 tenga propiedad raíz y el indicador SUID esté configurado. 
                                                  # Deje vacío ("Fping6Location=") si su utilidad fping es capaz de procesar direcciones IPv6.

LogSlowQueries=3000                 # Determina cuánto tiempo en milisegundos puede tardar una consulta de base de datos antes de registrarse. Esta opción se habilita a partir de DebugLevel=3.
# TmpDir=/tmp                       # Directorio para temporales

Parametros para los proxys

# StartProxyPollers=1               # Número de instancias preforked (pre cargadas) para servidores proxy pasivos.
# ProxyConfigFrequency=10           # Determina la frecuencia con la que el servidor Zabbix envía datos de configuración a un proxy Zabbix. Solo se utiliza para proxies en modo pasivo.
# ProxyDataFrequency=1              # Determina la frecuencia con la que el servidor Zabbix solicita datos históricos a un proxy Zabbix en segundos. Solo se utiliza para proxies en modo pasivo.


Parametros generales

# StartLLDProcessors=2              # Número de instancias preforked de los workers de low-level discovery (LLD).
                                    # El proceso del gestor de LLD se inicia automáticamente cuando se inicia un worker de LLD.

Parametros SSL

# SSLCertLocation=${datadir}/zabbix/ssl/certs   # Ubicación de los archivos de certificados SSL de cliente para la autenticación de clientes. Este parámetro sólo se utiliza en la monitorización web.
# SSLKeyLocation=${datadir}/zabbix/ssl/keys     # Ubicación de los archivos de claves privadas SSL para la autenticación de clientes. Este parámetro sólo se utiliza en la monitorización web.
# SSLCALocation=                                # Anula la ubicación de los archivos de autoridad de certificación (CA) para la verificación de certificados de servidor SSL. 
                                                # Si no se establece, se utilizará el directorio de todo el sistema.

Parametros de seguridad

# AllowRoot=0                       # Permite que el servidor se ejecute como 'root'. Si se desactiva y el servidor es iniciado por 'root', 
                                    # el servidor intentará cambiar al usuario 'zabbix' en su lugar. No tiene efecto si se inicia con un usuario normal.
StatsAllowedIP=127.0.0.1            # Lista de direcciones IP delimitadas por comas, opcionalmente en notación CIDR, o nombres DNS de instancias externas de Zabbix. 
                                    # Sólo se aceptarán peticiones de estadísticas de las direcciones aquí listadas. 

Parametros modulos cargables

####### LOADABLE MODULES #######

# LoadModulePath=${libdir}/modules
# LoadModule=

Parametros Generales

Parametros de TLS

####### TLS-RELATED PARAMETERS #######
# TLSCAFile=
# TLSCRLFile=
# TLSCertFile=
# TLSKeyFile=
# TLSCipherCert13=
# TLSCipherCert=
# TLSCipherPSK13=
# TLSCipherPSK=
# TLSCipherAll13=
# TLSCipherAll=
# DBTLSConnect=
# DBTLSCAFile=
# DBTLSCertFile=
# DBTLSKeyFile=
# DBTLSCipher=

Parametros para configuracion de VAULT Hashicorp

# Vault=HashiCorp
# VaultToken=
# VaultURL=https://127.0.0.1:8200
# VaultPrefix=
# VaultDBPath=
# VaultTLSCertFile=
# VaultTLSKeyFile=

# StartReportWriters=0
# WebServiceURL=
# ServiceManagerSyncFrequency=60
# ProblemHousekeepingFrequency=60
# StartODBCPollers=1
EnableGlobalScripts=0
# AllowSoftwareUpdateCheck=1
# SMSDevices=
# ListenBacklog=
# HANodeName=
# NodeAddress=localhost:10051
# WebDriverURL=
# StartBrowserPollers=1

Tunning

- Situacion normal
# ps ax | grep sync
zabbix_server: history syncer #1 [synced 1845 items in 0.257111 sec, syncing history]
zabbix_server: history syncer #2 [synced 24 items in 0.060314 sec, idle 4 sec]
zabbix_server: history syncer #3 [synced 0 items in 0.000018 sec, idle 4 sec]
zabbix_server: history syncer #4 [synced 0 items in 0.000009 sec, syncing history]
- Durante el problema
# ps ax | grep sync
history syncer #1 [synced 1020 items in 285.198752 sec, syncing history]
history syncer #2 [synced 915 items in 285.177799 sec, syncing history]
history syncer #3 [synced 3401 items in 284.936376 sec, syncing history]
history syncer #4 [synced 1194 items in 285.280719 sec, syncing history]
- Habilitar el modo debug para los procesos
# zabbix_server -R log_level_increase=alerter
Nota: Buscar en el registro /var/log/zabbix/zabbix_server.log información sobre el problema.
- Identificar mala performance en la base de datos
LogSlowQueries=3000
Nota: Buscar en el registro /var/log/zabbix/zabbix_server.log información sobre el problema. 
grep slow /var/log/zabbix/zabbix_server.log


https://www.zabbix.com/documentation/current/es/manual/appendix/config/zabbix_server#listenport
https://www.zabbix.com/documentation/current/en/manual/appendix/config/zabbix_server#javagateway
https://www.zabbix.com/documentation/current/en/manual/concepts/server#server-process-types-and-threads
https://www.initmax.cz/wp-content/uploads/2024/02/zabbix-performance-tuning-7.0.pdf
https://www.zabbix-es.com.es/index.php/Configuracion_minima_y_tunning_de_Zabbix_Server_7.X#Tunning_de_Zabbix_Server_Conf