Configuration HA
Dans cette section, nous allons configurer Zabbix en haute disponibilité (HA). Cette fonctionnalité, introduite dans Zabbix 6, est une amélioration cruciale qui garantit la poursuite de la surveillance même si un serveur Zabbix tombe en panne. Avec HA, lorsqu'un serveur Zabbix tombe en panne, un autre peut prendre le relais de manière transparente.
Pour ce guide, nous utiliserons deux serveurs Zabbix et une base de données, mais la configuration permet d'ajouter d'autres serveurs Zabbix si nécessaire.

1.1 Configuration HA
Il est important de noter que la configuration de Zabbix HA est simple, fournissant une redondance sans fonctionnalités complexes telles que l'équilibrage de charge.
Au même titre que dans notre configuration de base, nous allons documenter les détails clés des serveurs dans cette configuration HA. Vous trouverez ci-dessous la liste des serveurs et l'endroit où ajouter leurs adresses IP respectives pour plus de commodité :
| Serveur | Adresse IP |
|---|---|
| Serveur Zabbix 1 | |
| Serveur Zabbix 2 | |
| Base de données | |
| IP virtuelle |
Note
Our database (DB) in this setup is not configured for HA. Since it's not a Zabbix component, you will need to implement your own solution for database HA, such as a HA SAN or a database cluster setup. A DB cluster configuration is out of the scope of this guide and unrelated to Zabbix, so it will not be covered here.
Installer la base de données
Reportez-vous au chapitre Installation de base pour obtenir des instructions détaillées sur la configuration de la base de données. Ce chapitre fournit des conseils étape par étape sur l'installation d'une base de données PostgreSQL ou MariaDB sur un nœud dédié fonctionnant sous Ubuntu ou Rocky Linux.
Installation du cluster Zabbix
La mise en place d'un cluster Zabbix consiste à configurer plusieurs serveurs Zabbix pour qu'ils fonctionnent ensemble et offrent une haute disponibilité. Bien que le processus soit similaire à la configuration d'un seul serveur Zabbix, des étapes de configuration supplémentaires sont nécessaires pour activer la haute disponibilité (HA).
Ajoutez les dépôts Zabbix à vos serveurs.
Tout d'abord, ajoutez le dépôt Zabbix à vos deux serveurs Zabbix :
ajouter le dépôt zabbix
Redhat
rpm -Uvh https://repo.zabbix.com/zabbix/7.2/release/rocky/9/noarch/zabbix-release-latest-7.2.el9.noarch.rpm
dnf clean all
Ubuntu
Une fois cela fait, nous pouvons installer les paquets du serveur zabbix.
installer les paquets du serveur Zabbix
Redhat
or if your database is MySQL or MariaDBUbuntu
or if your database is MySQL or MariaDBConfiguration du serveur Zabbix 1
Modifiez le fichier de configuration du serveur Zabbix,
Mettez à jour les lignes suivantes pour vous connecter à la base de données :
Configurer les paramètres HA pour ce serveur :
Spécifier l'adresse du serveur frontend pour les scénarios de basculement :
Configuration de Zabbix Server 2
Répétez les étapes de configuration pour le deuxième serveur Zabbix. Ajustez les
champs HANodeName et NodeAddress si nécessaire pour ce serveur.
Démarrage du serveur Zabbix
Après avoir configuré les deux serveurs, activez et démarrez le service zabbix-server sur chacun d'eux :
Note
The NodeAddress must match the IP or FQDN name of the Zabbix server node.
Without this parameter the Zabbix front-end is unable to connect to the active
node. The result will be that the frontend is unable to display the status
the queue and other information.
Vérification de la configuration
Vérifiez les fichiers journaux des deux serveurs pour vous assurer qu'ils ont démarré correctement et qu'ils fonctionnent dans leurs modes HA respectifs.
Sur le premier serveur :
Dans les journaux du système, vous devriez observer les entrées suivantes, indiquant l'initialisation du gestionnaire de haute disponibilité (HA) :
Ces messages confirment que le processus HA manager a démarré et a assumé le rôle actif. Cela signifie que l'instance Zabbix est maintenant le nœud principal dans le cluster HA, gérant toutes les opérations de surveillance. Si un événement de basculement se produit, un autre nœud en attente prendra le relais en fonction de la stratégie HA configurée.
Sur le deuxième serveur (et tout autre nœud supplémentaire) :
Dans les journaux du système, les entrées suivantes indiquent l'initialisation du gestionnaire de haute disponibilité (HA) :
Ces messages confirment que le processus du gestionnaire HA a été lancé avec succès en mode veille. Cela suggère que le nœud est opérationnel mais qu'il n'agit pas actuellement en tant qu'instance HA active, en attendant d'autres transitions d'état basées sur la stratégie HA configurée.
À ce stade, votre cluster Zabbix est configuré correctement pour la haute disponibilité (HA). Les journaux du système confirment que le gestionnaire HA a été initialisé et qu'il fonctionne en mode veille, ce qui indique que les mécanismes de basculement sont en place. Cette configuration garantit une surveillance ininterrompue, même en cas de défaillance d'un serveur, en permettant des transitions de rôle automatiques basées sur la configuration HA.
Installation du frontend
Avant de procéder à l'installation et à la configuration du serveur web, il est essentiel d'installer Keepalived. Keepalived permet l'utilisation d'une IP virtuelle (VIP) pour les services frontaux, assurant un basculement transparent et la continuité du service. Il fournit un cadre robuste pour l'équilibrage de la charge et la haute disponibilité, ce qui en fait un composant essentiel dans le maintien d'une infrastructure résiliente.
Mise en place de keepalived
Note
Keepalived is like a helper that makes sure one computer takes over if another one stops working. It gives them a shared magic IP address so users don't notice when a server fails. If the main one breaks, the backup jumps in right away. You can replace it with tools like Pacemaker, Corosync, or cloud load balancers that do the same “take over” job. So let's get started. On both our servers we have to install keepalived.
Ensuite, nous devons modifier la configuration de Keepalived sur les deux serveurs. Bien que les configurations soient similaires, chaque serveur nécessite de légères adaptations. Nous commencerons par le serveur 1. Pour éditer le fichier de configuration de Keepalived, utilisez la commande suivante :
Si le fichier contient quelque chose, il doit être effacé et remplacé par les lignes suivantes :
Warning
Replace enp0s1 with the interface name of your machine and replace the password
with something secure. For the virtual_ipaddress use a free IP from your network.
This will be used as our VIP.
Nous pouvons maintenant faire la même modification sur notre deuxième serveur
Zabbix. Supprimez tout dans le même fichier comme nous l'avons fait précédemment
et remplacez le par les lignes suivantes :
Comme pour notre 1er serveur Zabbix, remplacez enp0s1 par le nom de
l'interface de votre machine, remplacez password par votre mot de passe et
remplissez le virtual_ipaddress comme précédemment.
Ceci termine la configuration de keepalived. Nous pouvons maintenant continuer à adapter le frontend.
Installer et configurer le frontend
Sur les deux serveurs, nous pouvons exécuter les commandes suivantes pour installer notre serveur web et les paquets du serveur frontend :
installation et configuration du serveur web
RedHat
Ubuntu
En outre, il est essentiel de configurer le pare-feu. Des règles de pare-feu appropriées garantissent une communication transparente entre les serveurs et préviennent les défaillances inattendues. Avant de continuer, vérifiez que les ports nécessaires sont ouverts et appliquez les règles de pare-feu requises en conséquence.
configurer le firewall
RedHat
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=zabbix-server --permanent
firewall-cmd --reload
Ubuntu
Avec la configuration en place et le pare-feu correctement configuré, nous pouvons maintenant démarrer le service Keepalived. De plus, nous devons l'activer pour nous assurer qu'il démarre automatiquement. Pour ce faire, utilisez les commandes suivantes :
Configurer le serveur web
Le processus d'installation du frontend suit les mêmes étapes que celles
décrites dans la section Installation de base sous Installation du
frontend. En utilisant des
procédures pré-établies, nous assurons la cohérence et la fiabilité du
déploiement.
Warning
Ubuntu users need to use the VIP in the setup of Nginx, together with the local IP in the listen directive of the config.
Note
Don't forget to configure both front-ends. Also this is a new setup. Keep in
mind that with an existing setup we need to comment out the lines $ZBX_SERVER
and $ZBX_SERVER_PORT. Our frontend will check what node is active by reading
the node table in the database.
zabbix=# select * from ha_node;
ha_nodeid | name | address | port | lastaccess | status | ha_sessionid
---------------------------+---------+-----------------+-------+------------+--------+---------------------------
cm8agwr2b0001h6kzzsv19ng6 | zabbix1 | xxx.xxx.xxx.xxx | 10051 | 1742133911 | 0 | cm8apvb0c0000jkkzx1ojuhst
cm8agyv830001ell0m2nq5o6n | zabbix2 | localhost | 10051 | 1742133911 | 3 | cm8ap7b8u0000jil0845p0w51
(2 rows)
Dans ce cas, le nœud zabbix2 est identifié comme le nœud actif, comme
l'indique sa valeur d'état 3, qui désigne un état actif. Les valeurs d'état
possibles sont les suivantes :
0- Plusieurs nœuds peuvent rester en mode veille.1- Un nœud précédemment détecté a été arrêté.2- Un nœud a été détecté précédemment mais est devenu indisponible sans avoir été correctement arrêté.3- Le nœud est actuellement actif.
Cette classification permet une surveillance et une gestion efficace de l'état au sein du cluster.
Vérifier le bon fonctionnement
Pour vérifier que la configuration fonctionne correctement, accédez à votre
serveur Zabbix en utilisant l'IP virtuelle (VIP). Naviguez vers Rapports →
Informations sur le système dans le menu. Au bas de la page, vous devriez voir
une liste de serveurs, dont au moins un est marqué comme actif. Le nombre de
serveurs affichés dépend du nombre total de serveurs configurés dans votre
configuration HA.

1.2 vérifier l'HA
Arrêtez ou redémarrez le serveur frontend actif et observez que le serveur
frontend Zabbix reste accessible. En rechargeant la page, vous remarquerez que
l'autre serveur frontend a pris le relais en tant qu'instance active, assurant
ainsi un basculement presque transparent et une haute disponibilité.

1.3 vérifier l'HA
Outre la surveillance de l'état des nœuds HA, Zabbix fournit plusieurs commandes d'exécution qui permettent aux administrateurs de gérer les paramètres de basculement et de supprimer les nœuds inactifs de manière dynamique.
L'une de ces commandes est la suivante :
Cette commande ajuste le délai de basculement, qui définit la durée pendant laquelle Zabbix attend avant de faire passer un nœud en attente à l'état actif. Le délai peut être défini entre 10 secondes et 15 minutes.
Pour supprimer un nœud qui est soit arrêté ou inaccessible, la commande suivante doit être utilisée :
L'exécution de cette commande supprime le nœud du cluster HA. Si la suppression est réussie, la sortie confirme l'action :
Si le nœud supprimé redevient disponible, il peut être ajouté automatiquement
lorsqu'il se reconnecte au cluster. Ces commandes offrent une certaine souplesse
pour gérer la haute disponibilité dans Zabbix sans nécessiter un redémarrage
complet du processus zabbix_server.
Conclusion
Dans ce chapitre, nous avons réussi à mettre en place un environnement Zabbix à haute disponibilité (HA) en configurant le serveur Zabbix et le frontend pour la redondance. Nous avons d'abord établi la haute disponibilité pour le serveur Zabbix, en veillant à ce que les services de surveillance restent disponibles même en cas de défaillance. Ensuite, nous nous sommes concentrés sur le frontend, en implémentant une IP virtuelle (VIP) avec Keepalived pour fournir un basculement transparent et une accessibilité continue.
Additionally, we configured the firewall to allow Keepalived traffic and ensured that the service starts automatically after a reboot. With this setup, the Zabbix frontend can dynamically switch between servers, minimizing downtime and improving reliability.
While database HA is an important consideration, it falls outside the scope of this setup. However, this foundation provides a robust starting point for building a resilient monitoring infrastructure that can be further enhanced as needed.
Questions
- What is Zabbix High Availability (HA), and why is it important?
- How does Zabbix determine which node is active in an HA setup?
- Can multiple Zabbix nodes be active simultaneously in an HA cluster? Why or why not?
- What configuration file(s) are required to enable HA in Zabbix?