This is a translation of the original English documentation page. Help us make it better.

Sidebar

Become a monitoring expert!
Sign up for Zabbix training

1 Cluster haute disponibilité

Aperçu

Le mode haute disponibilité offre une protection contre les pannes logiciels/matériels des serveur Zabbix et permet de minimiser les temps d'arrêt des maintenances logicielles/matérielles.

Le cluster haute disponibilité (HA) est une solution opt-in et il est supporté pour le serveur Zabbix. La solution HA native est conçue pour être simple d'utilisation, elle fonctionnera à travers vos différents sites et n'a pas d'exigences spécifiques pour les bases de données reconnues par Zabbix. Les utilisateurs sont libres d'utiliser la solution HA native Zabbix, ou une solution HA tierce, en fonction de ce qui convient le mieux aux exigences de haute disponibilité de leur environnement.

La solution consiste en plusieurs instances ou nœuds zabbix_server. Chaque nœud :

  • est configuré séparément (fichier de configuration, scripts, chiffrement, exportation de données)
  • utilise la même base de données
  • dispose de plusieurs modes : actif (active), veille (standby), indisponible (unavailable), arrêté (stopped)

Un seul nœud peut être actif à la fois. Les nœuds de secours ne font pas de collecte, de traitement de données ou autres activités régulières du serveur ; ils n'écoutent pas sur les ports ; ils ont un minimum de connexions à la base de données.

Les nœuds actifs et en veille mettent à jour leur heure de dernier accès toutes les 5 secondes. Chaque nœud de secours surveille l'heure du dernier accès du nœud actif. Si le dernier temps d'accès au nœud actif est supérieur au 'délai de basculement' ('failover delay') en secondes, le nœud en veille bascule en nœud actif et attribue le statut 'indisponible' au nœud précédemment actif.

Le nœud actif surveille sa propre connectivité à la base de données - s'il est perdu pendant plus de failover delay-5 secondes, il doit arrêter tout traitement et passer en mode veille. Le nœud actif surveille également l'état des nœuds en veille - si le dernier temps d'accès d'un nœud en veille est supérieur au 'délai de basculement' en secondes, le nœud en veille se voit attribuer l'état 'indisponible'.

Le délai de basculement est configurable, le minimum étant de 10 secondes.

Les nœuds sont conçus pour être compatibles entre versions mineures de Zabbix.

Activation du cluster HA

Configuration du serveur

Pour transformer n'importe quel serveur Zabbix d'un serveur autonome en un noeud du cluster HA, il faudra spécifier le paramètre HANodeName dans le fichier de configuration du serveur.

Le paramètre NodeAddress (adresse:port), s'il est défini, doit être utilisé par le frontal pour le nœud actif, remplaçant la valeur dans zabbix.conf.php.

Preparing frontend

Make sure that Zabbix server address:port is not defined in the frontend configuration.

Zabbix frontend will autodetect the active node by reading settings from the nodes table in Zabbix database. Node address of the active node will be used as the Zabbix server address.

Configuration du proxy

Pour activer les connexions à plusieurs serveurs dans une configuration en haute disponibilité, répertorier les adresses des nœuds HA dans le paramètre Server du proxy, séparées par un point-virgule.

Configuration des agents

Pour activer les connexions à plusieurs serveurs dans une configuration en haute disponibilité, répertorier les adresses des nœuds HA dans le paramètre ServerActive de l'agent, séparées par un point-virgule.

Failover to standby node

Zabbix will fail over to another node automatically if the active node stops. There must be at least one node in standby status for the failover to happen.

How fast will the failover be? All nodes update their last access time (and status, if it is changed) every 5 seconds. So:

  • If the active node shuts down and manages to report its status as "shut down", another node will take over within 5 seconds.

  • If the active node shuts down/becomes unavailable without being able to update its status, standby nodes will wait for the failover delay + 5 seconds to take over

The failover delay is configurable, with the supported range between 10 seconds and 15 minutes (one minute by default). To change the failover delay, you may run:

zabbix_server -R ha_set_failover_delay=5m

Managing HA cluster

The current status of the HA cluster can be managed using the dedicated runtime control options:

  • ha_status - log HA cluster status in the Zabbix server log;
  • ha_remove_node=target - remove an HA node identified by its <target> - number of the node in the list (the number can be obtained from the output of running ha_status). Note that active/standby nodes cannot be removed.
  • ha_set_failover_delay=delay - set HA failover delay (time suffixes are supported, e.g. 10s, 1m)

Node status can be monitored:

  • in ReportsSystem information
  • in the System information dashboard widget
  • using the ha_status runtime control option of the server (see above).

The zabbix[cluster,discovery,nodes] internal item can be used for node discovery, as it returns a JSON with high availability node information.

Disabling HA cluster

To disable a high availability cluster:

  • make backup copies of configuration files
  • stop standby nodes
  • remove the HANodeName parameter from the active primary server
  • restart the primary server (it will start in standalone mode)

Implementation details

The high availability (HA) cluster is an opt-in solution and it is supported for Zabbix server. The native HA solution is designed to be simple in use, it will work across sites and does not have specific requirements for the databases that Zabbix recognizes. Users are free to use the native Zabbix HA solution, or a third party HA solution, depending on what best suits the high availability requirements in their environment.

The solution consists of multiple zabbix_server instances or nodes. Every node:

  • is configured separately (configuration file, scripts, encryption, data export)
  • uses the same database
  • has several modes: active, standby, unavailable, stopped

Only one node can be active (working) at a time. The standby nodes do no data collection, processing or other regular server activities; they do not listen on ports; they have minimum database connections.

Both active and standby nodes update their last access time every 5 seconds. Each standby node monitors the last access time of the active node. If the last access time of the active node is over 'failover delay' seconds, the standby node switches itself to be the active node and assigns 'unavailable' status to the previously active node.

The active node monitors its own database connectivity - if it is lost for more than failover delay-5 seconds, it must stop all processing and switch to standby mode. The active node also monitors the status of the standby nodes - if the last access time of a standby node is over 'failover delay' seconds, the standby node is assigned the 'unavailable' status.

The failover delay is configurable, with the minimum being 10 seconds.

The nodes are designed to be compatible across minor Zabbix versions.