1 Clúster de alta disponibilidad

Descripción

El modo de alta disponibilidad ofrece protección contra fallas de software/hardware para el servidor Zabbix y permite minimizar el tiempo de inactividad durante mantenimiento de software/hardware.

El clúster de alta disponibilidad (HA) es una solución opcional y compatible con el servidor Zabbix. La solución HA nativa está diseñada para ser de simple uso, funcionará en todos los sitios y no tiene requisitos para las bases de datos que reconoce Zabbix. Los usuarios son libres de usar la solución Zabbix HA nativa o una solución HA de terceros, dependiendo de lo que mejor se adapte a los requisitos de alta disponibilidad en sus entornos.

La solución consta de varias instancias o nodos de zabbix_server. Cada nodo:

  • se configura por separado (archivo de configuración, scripts, cifrado, exportación de datos)
  • utiliza la misma base de datos
  • tiene varios modos: activo, en espera, no disponible, detenido

Solo un nodo puede estar activo (trabajando) a la vez. Los nodos en espera no recopilan datos, procesamiento u otras actividades regulares del servidor; ellas no escuchan en los puertos; tienen conexiones mínimas de base de datos.

Los nodos activos y en espera actualizan su última hora de acceso cada 5 segundos. Cada nodo standby monitorea la última hora de acceso del nodo activo. Si la última hora de acceso del nodo activo ha superado la "segundos de retardo por error de conmutación", el nodo en espera cambia a sí mismo para ser el nodo activo y asigna el estado 'no disponible' al nodo previamente activo.

El nodo activo supervisa su propia conectividad de base de datos, si se pierde durante más de 5 segundos, debe detener todo el procesamiento y cambiar al modo de espera. El nodo activo también supervisa el estado de los nodos en espera - si el último tiempo de acceso de un nodo en espera ha terminado los segundos de 'retraso de conmutación por error', al nodo en espera se le asigna el estado 'no disponible'.

El retraso de conmutación por error es configurable, con un mínimo de 10 segundos.

Los nodos están diseñados para ser compatibles con las versiones menores de Zabbix.

Habilitación del clúster HA (High Availability)

Iniciando el servidor Zabbix como nodo del clúster

Se requieren dos parámetros en la configuración del servidor para iniciar un servidor Zabbix como nodo del clúster:

  • Se debe especificar el parámetro HANodeName para cada servidor Zabbix que sea un nodo de clúster HA.

Este es un identificador de nodo único (por ejemplo, zabbix-node-01) al que se hará referencia en las configuraciones del agente y proxy. Si no especifica HANodeName, el servidor se iniciará en modo independiente.

  • Se debe especificar el parámetro NodeAddress para cada nodo.

El parámetro NodeAddress (dirección: puerto) será utilizado por la interfaz de Zabbix para conectarse al nodo del servidor activo. NodeAddress debe coincidir con la IP o el nombre FQDN del servidor Zabbix respectivo.

Reinicie todos los servidores Zabbix después de realizar cambios en los archivos de configuración. Ahora, se iniciarán como nodos del clúster. El nuevo estado de los servidores se puede ver en InformesInformación del sistema y también ejecutando:

zabbix_server -R ha_status

Este comando de tiempo de ejecución registrará el estado actual del clúster HA en el registro del servidor Zabbix (y en la salida estándar):

Preparando la interfaz

Asegúrese de que la dirección del servidor Zabbix:puerto no esté definido en la configuración de la interfaz (que se encuentra en conf/zabbix.conf.php del directorio de archivos del frontend).

La interfaz de Zabbix detectará automáticamente el nodo activo leyendo la configuración de la tabla de nodos en la base de datos Zabbix. La dirección de nodo del nodo activo se utilizará como la dirección del servidor Zabbix.

Configuración de proxy

Los nodos (servidores) del clúster HA deben aparecer en la configuración de cualquiera de los dos Proxy Zabbix pasivo o activo.

Para un proxy pasivo, los nombres de los nodos deben aparecer en el parámetro Server del proxy, separados por una coma.

Server=zabbix-node-01,zabbix-node-02

Para un proxy activo, los nombres de los nodos deben aparecer en el parámetro Server del proxy, separados por un punto y coma.

Server=zabbix-node-01;zabbix-node-02
Configuración del agente

Para habilitar las conexiones a varios servidores en una configuración de alta disponibilidad, enumerar las direcciones de los nodos HA en ServerActive parámetro del agente, separados por un punto y coma.

Conmutación por error al nodo en espera

Zabbix conmutará por error a otro nodo automáticamente si el nodo activo se detiene. Debe haber al menos un nodo en estado de espera para que se produzca la conmutación por error.

¿Qué tan rápida será la conmutación por error? Todos los nodos actualizan su última hora de acceso (y su estado, si se cambia) cada 5 segundos. Entonces:

  • Si el nodo activo se apaga y logra informar su estado como "detenido", otro nodo tomará el control en 5 segundos.

  • Si el nodo activo se apaga o deja de estar disponible sin poder actualizarse su estado, los nodos en espera esperarán el retraso de conmutación por error + 5 segundos para tomar el control

El retraso de conmutación por error es configurable, con un rango admitido entre 10 segundos y 15 minutos (un minuto por defecto). Para cambiar el retraso de la conmutación por error, puede ejecutar:

zabbix_server -R ha_set_failover_delay=5m

Gestión del clúster de alta disponibilidad (HA)

El estado actual del clúster de alta disponibilidad se puede administrar mediante las opciones de control de tiempo de ejecución:

  • ha_status - registra el estado del clúster HA en el log del servidor Zabbix;
  • ha_remove_node=target - elimina un nodo HA identificado por su <objetivo> - número del nodo en la lista (el número puede ser obtenido de la salida de la ejecución de ha_status), por ejemplo:
zabbix_server -R ha_remove_node=zabbix-node-02

Tenga en cuenta que los nodos activos/en espera no se pueden eliminar.

  • ha_set_failover_delay=delay - establece el retraso de conmutación por error de HA (entre 10 segundos y 15 minutos; se admiten sufijos de tiempo, p.e. 10s, 1m)

El estado del nodo se puede monitorear:

  • en Informesinformación del sistema
  • en el widget de tablero Información del sistema
  • usando la opción de control de tiempo de ejecución ha_status del servidor (ver más arriba).

La métrica interna zabbix[cluster,discovery,nodes] se puede usar para el descubrimiento de nodos, ya que devuelve un JSON con información de los nodos de alta disponibilidad.

Deshabilitación del clúster HA

Para deshabilitar un clúster de alta disponibilidad:

  • hacer copias de seguridad de los archivos de configuración
  • detener los nodos en espera
  • elimine el parámetro HANodeName del servidor primario activo
  • reinicie el servidor principal (comenzará en modo independiente)

Detalles de implementacion

El clúster de alta disponibilidad (HA) es una solución opcional y es compatible con el servidor Zabbix. La solución HA nativa está diseñada para ser de uso sencillo, funcionará en todos los sitios y no tiene requisitos específicos para las bases de datos que Zabbix reconoce. Los usuarios son libres de usar la solución HA nativa de Zabbix o una solución HA de terceros, dependiendo de lo que mejor se adapte a los requisitos de alta disponibilidad en su ambiente.

La solución consta de múltiples instancias o nodos zabbix_server. Cada nodo:

  • se configura por separado
  • utiliza la misma base de datos
  • puede tener varios modos: activo, en espera, no disponible, detenido

Sólo un nodo puede estar activo (en funcionamiento) a la vez. Un nodo en espera ejecuta solo un proceso: el administrador de HA. Un nodo en espera no recopila datos, ni ejecuta procesos ni otras actividades regulares del servidor; ellos no escuchan en puertos; Tienen conexiones mínimas a la base de datos.

Tanto los nodos activos como los en espera actualizan su última hora de acceso cada 5 segundos. Cada nodo en espera monitorea la última hora de acceso del nodo activo. Si el último tiempo de acceso del nodo activo ha terminado 'failover segundos de retraso, el nodo en espera cambia a sí mismo para ser el nodo activo y asigna el estado "no disponible" al nodo previamente activo.

El nodo activo monitorea su propia conectividad de base de datos, si se pierde durante más de "retraso de conmutación por error-5" segundos, debe detener todo el procesamiento y cambiar al modo de espera. El nodo activo también monitorea el estado de los nodos en espera: si el último tiempo de acceso de un nodo en espera ha terminado segundos de 'retraso de conmutación por error', al nodo en espera se le asigna el estado 'no disponible' estado.

Los nodos están diseñados para ser compatibles con versiones menores de Zabbix.