1 Proxys

Aperçu

Un proxy Zabbix peut collecter des données de performance et de disponibilité pour le compte du serveur Zabbix. De cette manière, un proxy peut prendre en charge une partie de la charge liée à la collecte des données et ainsi soulager le serveur Zabbix.

De plus, l’utilisation d’un proxy est le moyen le plus simple de mettre en œuvre une supervision centralisée et distribuée, lorsque tous les agents et proxies rapportent à un seul serveur Zabbix et que toutes les données sont collectées de manière centralisée.

Un proxy Zabbix peut être utilisé pour :

  • Superviser des sites distants
  • Superviser des sites avec des communications peu fiables
  • Soulager le serveur Zabbix lors de la supervision de milliers d’équipements
  • Simplifier la maintenance d’une supervision distribuée

Le proxy ne nécessite qu’une seule connexion TCP au serveur Zabbix. Ainsi, il est plus facile de contourner un pare-feu, car vous n’avez besoin de configurer qu’une seule règle de pare-feu.

Le proxy Zabbix doit utiliser une base de données distincte. Le faire pointer vers la base de données du serveur Zabbix endommagera la configuration.

Toutes les données collectées par le proxy sont stockées localement avant d’être transmises au serveur. Ainsi, aucune donnée n’est perdue en raison de problèmes temporaires de communication avec le serveur. Les paramètres ProxyLocalBuffer et ProxyOfflineBuffer du fichier de configuration du proxy contrôlent la durée pendant laquelle les données sont conservées localement.

Il peut arriver qu’un proxy, qui reçoit directement les dernières modifications de configuration depuis la base de données du serveur Zabbix, dispose d’une configuration plus à jour que le serveur Zabbix, dont la configuration peut ne pas être mise à jour aussi rapidement en raison de la valeur de CacheUpdateFrequency. Par conséquent, le proxy peut commencer à collecter des données et à les envoyer au serveur Zabbix, qui ignore alors ces données.

Le proxy Zabbix est un collecteur de données. Il ne calcule pas les déclencheurs, ne traite pas les événements et n’envoie pas d’alertes. Pour un aperçu des fonctionnalités du proxy, consultez le tableau suivant :

Fonction Pris en charge par le proxy
Éléments
Contrôles Zabbix agent Oui
Contrôles Zabbix agent (actifs) Oui 1
Contrôles simples Oui
Éléments trapper Oui
Contrôles SNMP Oui
Traps SNMP Oui
Contrôles IPMI Oui
Contrôles JMX Oui
Surveillance des fichiers journaux Oui
Contrôles internes Oui
Contrôles SSH Oui
Contrôles Telnet Oui
Contrôles externes Oui
Éléments dépendants Oui
Éléments de script Oui
Éléments de navigateur Oui
Supervision web intégrée Oui
Prétraitement des valeurs d’élément Oui
Découverte réseau Oui
Autoréenregistrement des agents actifs Oui
Découverte de bas niveau Oui 2
Commandes distantes Oui
Calcul des déclencheurs Non
Traitement des événements Non
Corrélation des événements Non
Envoi d’alertes Non

[1] Pour s’assurer qu’un agent interroge le proxy (et non le serveur) pour les contrôles actifs, le proxy doit être indiqué dans le paramètre ServerActive du fichier de configuration de l’agent.
[2] Pour la LLD, le proxy Zabbix collecte et prétraite uniquement les données, puis les envoie au serveur Zabbix pour un traitement ultérieur.

Protection contre la surcharge

Si le serveur Zabbix a été arrêté pendant un certain temps, que les proxys ont collecté beaucoup de données, puis que le serveur redémarre, il peut être surchargé (l'utilisation du cache d'historique reste à 95-100 % pendant un certain temps). Cette surcharge peut entraîner une baisse des performances, les contrôles étant traités plus lentement qu'ils ne le devraient. Une protection contre ce scénario a été mise en place afin d'éviter les problèmes dus à la surcharge du cache d'historique.

Lorsque le cache d'historique du serveur Zabbix est plein, l'accès en écriture au cache d'historique est limité, ce qui bloque les processus de collecte de données du serveur. Le cas le plus courant de surcharge du cache d'historique se produit après une indisponibilité du serveur, lorsque les proxys téléversent les données collectées. Pour éviter cela, une limitation des proxys a été ajoutée (elle ne peut actuellement pas être désactivée).

Lorsque l'utilisation du cache d'historique atteint 80 %, le serveur Zabbix passe en mode de limitation. En mode de limitation, le serveur n'accepte les données des proxys que lorsque l'utilisation du cache d'historique est inférieure à 60 %, en faisant tourner les proxys acceptés. Une fois que l'utilisation du cache d'historique descend en dessous de 20 %, le serveur revient en mode normal.

De plus, en mode normal, le serveur Zabbix limite les proxys individuels qui envoient de très gros paquets (plus de 10 000 enregistrements) si l'utilisation du cache d'historique dépasse 60 %. Cette décision est appliquée au moment précis où le serveur évalue un téléversement de proxy et, par conséquent, peut ne pas toujours être immédiatement visible dans les graphiques d'utilisation du cache d'historique (l'élément interne zabbix[wcache,history,pused] et son intervalle de mise à jour peuvent ne pas détecter de brèves pointes).

Ce mode de limitation se poursuivra jusqu'à ce que l'utilisation du cache atteigne à nouveau 80 %, descende à 20 % ou que la liste de limitation soit vide. Dans le premier cas, le serveur cessera à nouveau d'accepter les données des proxys. Dans les deux autres cas, le serveur recommencera à fonctionner normalement, en acceptant les données de tous les proxys.

Les informations ci-dessus peuvent être illustrées dans le tableau suivant :

Utilisation du cache
d'écriture de l'historique
Mode du serveur Zabbix Action du serveur Zabbix
Atteint 80 % Attente Cesse d'accepter les données des proxys, mais conserve une liste de limitation (liste priorisée des proxys à contacter ultérieurement).
Atteint 60 % Normal, mais prêt à être limité Peut refuser de très gros téléversements de proxy (plus de 10 k enregistrements) lorsqu'il décide d'accepter ou non les données ; continue d'accepter les autres données des proxys.
Descend à 20 % Normal Supprime la liste de limitation et recommence à accepter normalement les données des proxys.

Vous pouvez utiliser l'élément interne zabbix[wcache,history,pused] pour corréler ce comportement du serveur Zabbix avec une métrique.

Configuration

Une fois que vous avez installé et configuré un proxy, il est temps de le configurer dans l’interface web de Zabbix.

Ajout de proxys

Pour configurer un proxy dans l’interface web Zabbix :

  • Allez à : Administration > Proxies
  • Cliquez sur Create proxy

Paramètre Description
Proxy name Saisissez le nom du proxy. Il doit être identique au nom indiqué dans le paramètre Hostname du fichier de configuration du proxy.
Proxy group Sélectionnez un groupe de proxys pour l’équilibrage de charge/haute disponibilité du proxy.
Address for active agents Saisissez l’adresse à laquelle les agents actifs surveillés ou les expéditeurs doivent se connecter. Pris en charge uniquement pour les agents Zabbix 7.0 ou version ultérieure.
Cette adresse est utilisée pour se connecter aux proxys actifs comme passifs. Ce champ n’est disponible que si un groupe de proxys est sélectionné dans le champ Proxy group.
Address Adresse IP/nom DNS auquel se connecter.
Port Numéro de port TCP (10051 par défaut) auquel se connecter. Les macros utilisateur sont prises en charge.
Proxy mode Sélectionnez le mode du proxy.
Active - le proxy se connectera au serveur Zabbix et demandera les données de configuration
Passive - le serveur Zabbix se connecte au proxy
Veuillez noter que sans communications chiffrées, les données de configuration du proxy (sensibles) peuvent devenir accessibles à des parties ayant accès au port trapper du serveur Zabbix lors de l’utilisation d’un proxy actif. Cela est possible, car n’importe qui peut se faire passer pour un proxy actif et demander des données de configuration si l’authentification n’a pas lieu ou si les adresses de proxy ne sont pas limitées dans le champ Proxy address.
Proxy address Si ce champ est renseigné, les requêtes du proxy actif ne sont acceptées que depuis cette liste d’adresses IP séparées par des virgules, éventuellement en notation CIDR, ou de noms DNS du proxy Zabbix actif.
Ce champ n’est disponible que si un proxy actif est sélectionné dans le champ Proxy mode. Les macros ne sont pas prises en charge.
Interface Saisissez les détails de l’interface pour un proxy passif.
Ce champ n’est disponible que si un proxy passif est sélectionné dans le champ Proxy mode.
Address Adresse IP/nom DNS du proxy passif.
Port Numéro de port TCP du proxy passif (10051 par défaut). Les macros utilisateur sont prises en charge.
Description Saisissez la description du proxy.

L’onglet Encryption vous permet d’exiger des connexions chiffrées avec le proxy.

Paramètre Description
Connections to proxy Définit comment le serveur se connecte au proxy passif : sans chiffrement (par défaut), à l’aide d’une PSK (clé pré-partagée) ou d’un certificat.
Connections from proxy Sélectionnez le type de connexions autorisées depuis le proxy actif. Plusieurs types de connexion peuvent être sélectionnés en même temps (utile pour les tests et le basculement vers un autre type de connexion). La valeur par défaut est « No encryption ».
Issuer Émetteur autorisé du certificat. Le certificat est d’abord validé avec la CA (autorité de certification). S’il est valide et signé par la CA, le champ Issuer peut être utilisé pour restreindre davantage les CA autorisées. Ce champ est facultatif et destiné à être utilisé si votre installation Zabbix utilise des certificats provenant de plusieurs CA.
Subject Sujet autorisé du certificat. Le certificat est d’abord validé avec la CA. S’il est valide et signé par la CA, le champ Subject peut être utilisé pour n’autoriser qu’une seule valeur de chaîne Subject. Si ce champ est vide, tout certificat valide signé par la CA configurée est accepté.
PSK identity Chaîne d’identité de la clé pré-partagée.
Ne placez pas d’informations sensibles dans l’identité PSK, car elle est transmise sans chiffrement sur le réseau pour informer le destinataire de la PSK à utiliser.
PSK Clé pré-partagée (chaîne hexadécimale). Longueur maximale : 512 chiffres hexadécimaux (PSK de 256 octets) si Zabbix utilise la bibliothèque GnuTLS ou OpenSSL, 64 chiffres hexadécimaux (PSK de 32 octets) si Zabbix utilise la bibliothèque mbed TLS (PolarSSL). Exemple : 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

L’onglet Timeouts vous permet de remplacer les délais d’expiration globaux pour les types d’éléments qui le prennent en charge.

Paramètre Description
Timeouts for item types Définissez le délai d’expiration des éléments (en fonction de leur type) :
Global - utiliser le délai d’expiration global (affiché dans le champ Timeout grisé pour chaque type d’élément) ;
Override - définir un délai d’expiration personnalisé (dans le champ Timeout pour chaque type d’élément). Plage autorisée : 1 - 600s (par défaut : hérité des délais d’expiration globaux). Les suffixes de temps, par exemple 30s, 1m, ainsi que les macros utilisateur sont pris en charge.

Cliquer sur le lien Global timeouts vous permet de configurer les délais d’expiration globaux. Notez que le lien Global timeouts n’est visible que pour les utilisateurs de type Super admin disposant des autorisations pour la section de l’interface Administration > General.

Notez que, bien que les délais d’expiration au niveau du proxy remplacent les délais globaux, ils seront eux-mêmes remplacés par les délais d’expiration individuels des éléments, s’ils sont configurés.

Si la version majeure du proxy ne correspond pas à celle du serveur, l’icône s’affichera à côté de Timeouts for item types, avec le message au survol « Timeouts disabled because the proxy and server versions do not match ». Dans ce cas, le proxy utilisera le paramètre Timeout du fichier de configuration du proxy.

Le formulaire de modification d’un proxy existant comporte les boutons supplémentaires suivants :

  • Refresh configuration - actualiser la configuration du proxy
  • Clone - créer un nouveau proxy à partir des propriétés du proxy existant
  • Delete - supprimer le proxy
Configuration de l'hôte

Vous pouvez spécifier qu'un hôte individuel doit être surveillé par un proxy ou un groupe de proxys dans le formulaire de configuration de l'hôte, en utilisant le champ Monitored by.

La mise à jour en masse des hôtes est une autre façon de spécifier que les hôtes doivent être surveillés par un proxy ou un groupe de proxys.