Équilibrage de charge et haute disponibilité du proxy

Aperçu

Les proxies Zabbix peuvent être organisés en groupes de proxy afin de permettre l'équilibrage de charge des proxies et la haute disponibilité.

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

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

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

  • Les proxies exécutent Zabbix 7.0 ou une version ultérieure.
  • La version du proxy correspond à la version du serveur Zabbix. Si vous utilisez Zabbix agent (passif), la version du proxy doit correspondre à la version de l'agent. Les agents actifs nécessitent uniquement Zabbix 7.0 ou une version ultérieure.
  • Le groupe de proxy a un état en ligne.
  • Les hôtes sont configurés pour être surveillés par un groupe de proxy plutôt que par des proxies individuels.

L'état de santé du groupe de proxy peut être surveillé à l'aide de vérifications internes par tout hôte affecté à un groupe de proxy. Cependant, pour surveiller l'état de santé d'un proxy unique dans un groupe, affectez l'hôte à ce proxy ; sinon, les résultats peuvent être incohérents.

Redistribution des hôtes

L'équilibrage de charge des proxy et la haute disponibilité sont gérés par le serveur Zabbix via le gestionnaire de groupe de proxy, qui surveille en continu l'état de tous les proxy de chaque groupe de proxy ainsi que leur répartition des hôtes.

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

En outre, l'équilibrage de charge des proxy 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 d'hôtes 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), le groupe de proxy est placé en file d'attente pour la redistribution des hôtes.

Le gestionnaire de groupe de proxy redistribue les hôtes selon la logique suivante:

  1. Calculer le nombre moyen d'hôtes par proxy.
  2. Pour les proxy avec un excédent d'hôtes, déplacer les hôtes excédentaires vers le pool d'hôtes non attribués des proxy.
  3. Pour les proxy avec un déficit d'hôtes, calculer combien d'hôtes sont nécessaires pour atteindre l'équilibre.
  4. Retirer le nombre requis d'hôtes des proxy ayant le plus d'hôtes.
  5. Déplacer les hôtes non attribués vers les proxy ayant le moins d'hôtes.

Exemples de redistribution des hôtes:

Hosts on proxy Group average Host reassignment
100 50 Yes
60 50 No
40 50 No
25 50 Yes
15 5 Yes
10 5 No

Avoir moins de 10 hôtes surveillés par un groupe de proxy peut entraîner une répartition inégale des hôtes entre les proxy du groupe.

Configuration d'un groupe de proxy

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

  1. Accédez à Administration > Groupes de proxy
  2. Cliquez sur Créer un groupe de proxy

Parameter Description
Name Nom du groupe de proxy.
Failover period Période, en secondes, pendant laquelle un proxy du groupe de proxy 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 est changé en Hors ligne, et ses hôtes sont immédiatement redistribués vers d'autres proxies. L'équilibrage de charge des proxies commence après 10 x cette période.
Prend en charge les suffixes de temps (par exemple, 30s, 1m) et les macros utilisateur.
Minimum number of proxies Nombre minimum de proxies en ligne requis pour maintenir le groupe de proxy en ligne (par défaut : 1 ; plage : 1-1000).
Prend en charge les macros utilisateur.

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 seul 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é ne sera pas appliqué.
Description Description du groupe de proxy.
Proxies Affiche une liste allant 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 avec des proxies.

Configuration de l'équilibrage de charge du proxy

Pour utiliser l'équilibrage de charge du 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 un groupe de proxy, et non par des proxies individuels (vous pouvez utiliser la mise à jour en masse des hôtes pour déplacer les hôtes des proxies vers le groupe de proxy).

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

  • Pour les vérifications passives, listez tous les proxies du groupe de proxy dans le paramètre Server.
  • Pour les vérifications actives, il est recommandé de lister tous les proxies du groupe de proxy ou le serveur Zabbix dans le paramètre ServerActive. Notez que seul Zabbix agent 7.0 (ou version 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 proxies et 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.

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.

Lors de l'utilisation de Zabbix 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 des valeurs de plusieurs hôtes à partir d'un fichier d'entrée, utilisez l'option -g pour éviter d'envoyer des données au mauvais proxy.

Zabbix agent doit également pouvoir se connecter à tous les proxies du groupe de proxy via le pare-feu. Sinon, les vérifications actives peuvent se bloquer ou échouer lors de la redirection ou du 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 les configurations stables à haute disponibilité sans rééquilibrage récent, les agents peuvent ne jamais contacter les proxies de secours. Si les règles du pare-feu ont changé et n'ont pas été testées, le basculement peut échouer.
Test de l'équilibrage de charge du proxy

Pour tester l'équilibrage de charge du proxy :

  1. Configurez un groupe de proxy.
  2. Assurez-vous que le groupe de proxy a un état en ligne.
  3. Assurez-vous que les hôtes sont surveillés par un groupe de proxy, et non par des proxys individuels (vous pouvez utiliser la mise à jour en masse des hôtes pour déplacer les hôtes des proxys vers le groupe de proxy).
  4. Attendez quelques secondes que la configuration soit mise à jour et que les hôtes soient répartis entre les proxys du groupe de proxy. Observez le changement en actualisant la liste des hôtes dans Administration > Proxys.
Notes importantes
  • Les traps SNMP ne sont pas pris en charge par les proxies dans un groupe de proxies.
  • Les vérifications qui dépendent d'une configuration externe (par exemple, les scripts pour les vérifications externes ou la configuration ODBC pour les vérifications de base de données) doivent avoir la même configuration sur tous les proxies du groupe de proxies.
  • Les vérifications de base de données nécessitent des autorisations étendues sur l'objet/base de données/serveur.
  • Les hôtes VMware surveillés par un groupe de proxies seront répartis aléatoirement entre les proxies 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'autoregistration provenant d'un proxy dans un groupe de proxies sont définis pour être surveillés par ce groupe de proxies. Cependant, les hôtes créés à partir des données de découverte réseau provenant d'un proxy dans un groupe de proxies sont définis pour être surveillés par ce proxy.