[comment]: # ({4eeeebad-150822ec})
# 2 Équilibrage de charge des proxys et haute disponibilité

[comment]: # ({/4eeeebad-150822ec})

[comment]: # ({c68d32c6-9db44722})
#### Aperçu

Les proxys Zabbix peuvent être organisés en groupes de proxys afin d'activer l'équilibrage de charge des proxys et la haute disponibilité.

L'équilibrage de charge des proxys et la haute disponibilité correspondent à la redistribution automatique des hôtes entre les proxys au sein d'un groupe de proxys :

-   Si un proxy passe hors ligne, ses hôtes seront déplacés vers d'autres proxys, ce qui permet de maintenir une haute disponibilité des proxys.
-   Si un proxy a un nombre d'hôtes beaucoup plus élevé ou plus faible que les autres proxys, ses hôtes seront déplacés vers d'autres proxys afin d'équilibrer la charge des proxys.

La redistribution des hôtes fonctionne uniquement entre les proxys d'un groupe qui remplissent les conditions suivantes :

-   Les proxys exécutent Zabbix 7.0 ou une version ultérieure.
-   La [version du proxy](/manual/appendix/compatibility#supported-zabbix-proxies) correspond à la version du serveur Zabbix. Si vous utilisez l'agent Zabbix (passif), la version du proxy doit correspondre à celle de l'agent. Les agents actifs nécessitent uniquement Zabbix 7.0 ou une version ultérieure.
-   Le groupe de proxys a un [état en ligne](/manual/web_interface/frontend_sections/administration/proxy_groups).
-   Les hôtes sont configurés pour être [surveillés par](/manual/config/hosts/host#configuration) un groupe de proxys plutôt que par des proxys individuels.

::: noteclassic
L'état de santé du groupe de proxys peut être surveillé à l'aide de [contrôles internes](/manual/config/items/itemtypes/internal#proxy.group.a) par tout hôte attribué à un groupe de proxys.
Cependant, pour surveiller l'état de santé d'un seul proxy dans un groupe, attribuez l'hôte à ce proxy ; sinon, les résultats peuvent être incohérents.
:::

[comment]: # ({/c68d32c6-9db44722})

[comment]: # ({ca1e24c8-1abf84b3})
#### Redistribution des hôtes

L’équilibrage de charge des proxys et la haute disponibilité sont gérés par le serveur Zabbix via le [gestionnaire de groupes de proxys](/manual/concepts/server#server-process-types-and-threads), qui surveille en continu l’état de tous les proxys de chaque groupe de proxys ainsi que la répartition de leurs hôtes.

La haute disponibilité des proxys au sein d’un groupe est assurée par le basculement des proxys : lorsqu’un proxy devient hors ligne, ses hôtes sont immédiatement redistribués vers d’autres proxys.
L’équilibrage de charge des proxys a également lieu, les hôtes étant réaffectés aux proxys ayant le moins d’hôtes assignés.

En outre, l’équilibrage de charge des proxys est déclenché lorsque le nombre d’hôtes d’un proxy diffère de la moyenne du groupe d’au moins 10 hôtes et d’un facteur de 2 (excédent ou déficit d’hôtes).
Si le déséquilibre persiste après une période de grâce (10 x [délai de basculement](#configuring-a-proxy-group)), le groupe de proxys est placé en file d’attente pour la redistribution des hôtes.

Le gestionnaire de groupes de proxys redistribue les hôtes selon la logique suivante :

1. Calculer le nombre moyen d’hôtes par proxy.
2. Pour les proxys présentant un excédent d’hôtes, déplacer les hôtes excédentaires vers le pool non assigné de proxys.
3. Pour les proxys présentant un déficit d’hôtes, calculer combien d’hôtes sont nécessaires pour rétablir l’équilibre.
4. Retirer le nombre requis d’hôtes des proxys ayant le plus grand nombre d’hôtes.
5. Déplacer les hôtes non assignés vers les proxys ayant le moins d’hôtes.

Exemples de redistribution des hôtes :

|Hôtes sur le proxy|Moyenne du groupe|Réaffectation des hôtes|
|-|-|-|
|100|50|Oui|
|60|50|Non|
|40|50|Non|
|25|50|Oui|
|15|5|Oui|
|10|5|Non|

::: noteimportant
Avoir moins de 10 hôtes [surveillés par](/manual/config/hosts/host#configuration) un groupe de proxys peut entraîner une répartition inégale des hôtes entre les proxys du groupe.
:::

[comment]: # ({/ca1e24c8-1abf84b3})

[comment]: # ({5515593f-ffeb9a46})
#### Configuration d'un groupe de proxies

Pour configurer un groupe de proxies dans l'interface Zabbix :

1. Allez dans *Administration > Proxy groups*
2. Cliquez sur *Create proxy group*

![](../../../../assets/en/manual/distributed_monitoring/proxy_group.png){width="600"}

|Paramètre|Description|
|--|--------|
|*Name*|Nom du groupe de proxies.|
|*Failover period*|Période en secondes pendant laquelle un proxy du groupe de proxies doit communiquer avec le serveur Zabbix pour être considéré comme en ligne (par défaut : 1m ; plage : 10s-15m). Si le proxy ne communique pas pendant cette période, son état passe à *Offline* et ses hôtes sont immédiatement redistribués à d'autres proxies. L'équilibrage de charge des proxies commence après 10 x cette période.<br>Prend en charge les suffixes de temps (par exemple, 30s, 1m) et les macros utilisateur.|
|*Minimum number of proxies*|Nombre minimal de [proxies en ligne](/manual/web_interface/frontend_sections/administration/proxies) requis pour maintenir le [groupe de proxies en ligne](/manual/web_interface/frontend_sections/administration/proxy_groups) (par défaut : 1 ; plage : 1-1000).<br>Prend en charge les macros utilisateur.<br><br>Cette valeur doit être inférieure au nombre total de proxies dans le groupe. Par exemple, dans un groupe de 10 proxies, définir le minimum à 10 fera passer le groupe hors ligne si un proxy tombe en panne. Notez que les proxies en ligne dans un groupe hors ligne continuent de fonctionner normalement, mais l'équilibrage de charge/la haute disponibilité n'auront pas lieu.|
|*Description*|Description du groupe de proxies.|
|*Proxies*|Affiche une liste de jusqu'à cinq proxies (sous forme de liens ou en texte brut, selon les permissions de l'utilisateur sur les proxies) lors de la modification d'un groupe contenant des proxies.|

[comment]: # ({/5515593f-ffeb9a46})

[comment]: # ({05d503b6-e520307a})
#### Configuration de l'équilibrage de charge des proxy

Pour utiliser l'équilibrage de charge des proxy, vous devez configurer un groupe de proxy dans l'interface Zabbix (voir ci-dessus) et vous assurer que les hôtes sont [surveillés par](/manual/config/hosts/host#configuration) un groupe de proxy, et non par des proxy individuels (vous pouvez utiliser la [mise à jour en masse](/manual/config/hosts/hostupdate) des hôtes pour les déplacer des proxy vers le groupe de proxy).

Si vous utilisez Zabbix agent, configurez-le également comme suit :

-   Pour les [vérifications passives](/manual/appendix/items/activepassive), listez tous les proxy du groupe de proxy dans le paramètre [Server](/manual/appendix/config/zabbix_agentd#server).
-   Pour les [vérifications actives](/manual/appendix/items/activepassive), il est recommandé de lister tous les proxy du groupe de proxy ou le serveur Zabbix dans le paramètre [ServerActive](/manual/appendix/config/zabbix_agentd#serveractive).
    Notez que seule la version 7.0 de Zabbix agent (ou ultérieure) fonctionnera avec les groupes de proxy en mode actif.

Si le paramètre `ServerActive` inclut uniquement un proxy d'un groupe de proxy (ou le serveur Zabbix), l'agent pourra tout de même se connecter au bon proxy.
Lorsque le service agent démarre et se connecte au proxy spécifié, l'agent reçoit et met en cache la liste complète des adresses IP des proxy ainsi que leur charge actuelle au sein du groupe.
Ensuite, les vérifications actives seront redirigées vers le bon proxy en ligne pour l'hôte, en fonction de l'affectation actuelle proxy-hôte au sein du groupe de proxy.

::: notewarning
Le fait de spécifier un seul proxy dans le paramètre `ServerActive` de Zabbix agent peut entraîner une perte de données de surveillance si l'agent est démarré ou redémarré alors que le proxy spécifié est hors ligne.
:::

::: noteclassic
Lors de l'utilisation de [Zabbix sender](/manual/concepts/sender), les requêtes de données sont également redirigées vers le bon proxy en ligne pour l'hôte, en fonction de l'affectation actuelle proxy-hôte au sein du groupe de proxy.
Cependant, si vous envoyez les valeurs de plusieurs hôtes à partir d'un fichier d'entrée, utilisez l'option [`-g`](/manpages/zabbix_sender) pour éviter d'envoyer les données au mauvais proxy.
:::

Zabbix agent doit également pouvoir se connecter à tous les proxy du groupe de proxy via le pare-feu.
Sinon, les vérifications actives peuvent se bloquer ou échouer pendant la redirection ou le basculement. Par exemple :

-   Pendant les vérifications actives, un proxy peut rediriger l'agent vers un autre proxy. Si ce proxy est bloqué par un pare-feu, la communication se bloquera en attendant une réponse.
-   Dans des configurations stables à haute disponibilité sans rééquilibrage récent, les agents peuvent ne jamais contacter les proxy de secours. Si les règles du pare-feu ont changé et n'ont pas été testées, le basculement peut échouer.

[comment]: # ({/05d503b6-e520307a})

[comment]: # ({2ad23a4a-61149717})
##### Test de l’équilibrage de charge des proxies

Pour tester l’équilibrage de charge des proxies :

1. Configurez un groupe de proxies.
2. Assurez-vous que le groupe de proxies a un [état en ligne](/manual/web_interface/frontend_sections/administration/proxy_groups).
3. Assurez-vous que les hôtes sont [surveillés par](/manual/config/hosts/host#configuration) un groupe de proxies, et non par des proxies individuels (vous pouvez utiliser la [mise à jour de masse](/manual/config/hosts/hostupdate) des hôtes pour déplacer les hôtes des proxies vers le groupe de proxies).
4. Attendez quelques secondes pour la mise à jour de la configuration et la distribution des hôtes entre les proxies du groupe de proxies. Observez le changement en actualisant la liste des hôtes dans *Administration* > [*Proxies*](/manual/web_interface/frontend_sections/administration/proxies).

[comment]: # ({/2ad23a4a-61149717})

[comment]: # ({541e455e-9e4321d3})
##### Remarques importantes

-   Les [traps SNMP](/manual/config/items/itemtypes/snmptrap) ne sont pas pris en charge par les proxys d’un groupe de proxys.
-   Les contrôles qui dépendent d’une configuration externe (par exemple, les scripts pour les [vérifications externes](/manual/config/items/itemtypes/external) ou la configuration ODBC pour les [vérifications de base de données](/manual/config/items/itemtypes/odbc_checks)) doivent avoir la même configuration sur tous les proxys du groupe de proxys.
-   Les [vérifications de base de données](/manual/config/items/itemtypes/odbc_checks) nécessitent des autorisations étendues sur l’objet/serveur de base de données.
-   Les hôtes VMware [surveillés par](/manual/config/hosts/host#configuration) un groupe de proxys seront répartis aléatoirement entre les proxys du groupe. Cela amène chaque proxy à mettre en cache toutes les données VMware, ce qui entraîne une charge supplémentaire sur vCenter.
-   Les hôtes créés à partir des données d’auto-enregistrement provenant d’un proxy d’un groupe de proxys sont configurés pour être [surveillés par](/manual/config/hosts/host#configuration) ce groupe de proxys. Cependant, les hôtes créés à partir des données de découverte réseau provenant d’un proxy d’un groupe de proxys sont configurés pour être [surveillés par](/manual/config/hosts/host#configuration) ce proxy.

[comment]: # ({/541e455e-9e4321d3})
