Se rendre au contenu

La haute disponibilité native du serveur Zabbix

Présentation de la HA native Zabbix

Zabbix offre une solution native pour la haute disponibilité, sans besoin d’outils externes ni de compétences spécifiques en clustering. Chaque serveur Zabbix devient un nœud du cluster : un est actif, les autres en standby, prêts à prendre le relais en cas de défaillance.


Cette solution est idéale pour réduire les interruptions lors de pannes matérielles, mises à jour ou de maintenances planifiées.


Lien vers la documentation officielle 👉 [Zabbix - HA]


Activer le mode HA

Configuration du serveur Zabbix

Ajoutez dans le fichier de configuration zabbix_server.conf sur chaque nœud :

HANodeName=<nom_unique_du_noeud_dans_le_cluster>
NodeAddress=<IP_ou_FQDN[:port]>
  • HANodeName : identifiant unique du nœud (ex. zbx-node-01)
  • NodeAddress : adresse à laquelle accéder à ce nœud (utilisée par le frontend)


Redémarrez ensuite le serveur Zabbix :

systemctl restart zabbix-server


Configuration du frontend

Dans le fichier de configuration du frontend zabbix.conf.php, commentez les lignes suivantes :

//$ZBX_SERVER = '...';

//$ZBX_SERVER_PORT = '...';

Cela permet au frontend de détecter dynamiquement le nœud actif via la base de données.


Vérifier le statut du cluster

Dans le frontend

Dans le menu Rapports → Informations système

La section High Availability cluster indique le statut des nœuds (actif, standby, stoppé, inaccessible)


En ligne de commande

La commande suivante permet d'afficher le statut de l'ensemble des noeuds du cluster:

zabbix_server -R ha_status

Les différents statuts possibles sont les suivants :

  • 0 : standby
  • 1 : arrêté manuellement
  • 2 : inaccessible
  • 3 : actif


Gestion du basculement

Zabbix gère le basculement sans outil tiers.

Zabbix basculera automatiquement vers un autre nœud si le nœud actif s’arrête. Pour que le basculement ait lieu, il doit y avoir au moins un nœud en statut standby.


Quelle est la rapidité du basculement ?

Tous les nœuds mettent à jour leur heure de dernier contact dans la base de données (et leur statut, si celui-ci a changé) toutes les 5 secondes. Ainsi :

  • Si le nœud actif s’arrête proprement et parvient à signaler son statut comme “stopped”, un autre nœud prendra le relais en moins de 5 secondes.
  • Si le nœud actif devient indisponible brutalement (crash, coupure réseau…) sans pouvoir indiquer son arrêt, les nœuds standby patienteront le délai de basculement défini (failover delay) + 5 secondes avant de prendre la main.


Le délai de basculement est configurable, avec une plage supportée allant de 10 secondes à 15 minutes (la valeur par défaut étant 1 minute).

Pour modifier ce délai, vous pouvez exécuter la commande suivante :

zabbix_server -R ha_set_failover_delay=5m

Cela définira un délai de basculement de 5 minutes avant qu’un nœud standby prenne le relais en cas d’indisponibilité du nœud actif.

Le délai de basculement actuel est affiché sur la page Informations système.


Gestion du cluster HA

Le statut actuel du cluster haute disponibilité peut être géré via des commandes runtime dédiées du serveur Zabbix :

  • ha_status – affiche le statut du cluster HA dans les logs du serveur Zabbix et dans la sortie standard :
zabbix_server -R ha_status
  • ha_remove_node=<cible> – supprime un nœud HA du cluster, en le désignant par son nom ou son ID, récupérable via la commande ha_status.
zabbix_server -R ha_remove_node=zbx-node-02

Les nœuds en cours d’utilisation (actif ou standby) ne peuvent pas être supprimés.

  • ha_set_failover_delay=<délai> – définit le délai de basculement entre 10 secondes et 15 minutes. Vous pouvez utiliser les suffixes temporels (s, m, etc.) :
zabbix_server -R ha_set_failover_delay=1m


Surveillance du statut HA

Le statut des nœuds du cluster peut être surveillé de différentes manières :

  • Dans le menu Rapports → Informations système
  • À travers le widget Informations système sur le tableau de bord
  • Par la commande ha_status depuis le serveur Zabbix
  • Via l’élément interne zabbix[cluster,discovery,nodes] qui renvoie un JSON contenant les informations du cluster HA


Configuration des agents et proxys avec la HA Zabbix

Agents passifs (Server)

En mode passif, c’est le serveur Zabbix qui interroge l’agent.

Configurez dans le fichier de votre agent zabbix_agentd.conf (ou zabbix_agent2.conf) :

Server=zbx-node-01,zbx-node-02
  • Liste des adresses IP ou noms DNS autorisés à interroger l’agent
  • Séparés par des virgules
  • Tous les nœuds HA doivent être listés

Cela permet à n’importe quel nœud (actif ou standby) d’interroger l’agent si nécessaire (par exemple lors d’un changement de rôle manuel ou pour des tests).

Agents actifs (ServerActive)

En mode actif, c’est l’agent qui se connecte au serveur Zabbix pour envoyer ses données.

ServerActive=zbx-node-01:10051;zbx-node-02:10051
  • Serveurs vers lesquels l’agent tente d’envoyer ses données
  • Séparés par des points-virgules
  • L’ordre a de l’importance : l’agent commence par le premier et passe au suivant en cas d’échec


Proxys Zabbix

Les proxys Zabbix utilisent les mêmes règles que les agents, selon qu’ils sont passifs ou actifs.

Proxy passif

Un proxy passif est interrogé par le serveur Zabbix.

Dans ce cas, le proxy doit autoriser explicitement les nœuds HA.

Configuration côté proxy (zabbix_proxy.conf) :

Server=zabbix-node-01,zabbix-node-02
  • Les noms des nœuds Zabbix Server (tels que définis par HANodeName) ou IP doivent être listés
  • Les noms sont séparés par des virgules


Proxy actif

Un proxy actif se connecte au serveur Zabbix pour envoyer les données collectées.

Dans ce cas, le proxy doit savoir vers quels nœuds HA il peut envoyer ses données.

Configuration côté proxy (zabbix_proxy.conf) :

Server=zabbix-node-01;zabbix-node-02
  • Les noms des nœuds sont séparés par des points-virgules
  • L’ordre a de l’importance : le proxy tente le premier, puis passe au suivant si le premier est indisponible


Conclusion

La haute disponibilité native Zabbix (v6+) est simple à configurer, efficace, et totalement intégrée. Elle réduit les risques d’indisponibilité tout en restant facile à administrer.

4ème façon d'ajouter un hôte dans Zabbix grâce à l'auto-enregistrement