4 Proxy

Aperçu

Le proxy Zabbix est un processus qui peut collecter des données de supervision à partir d’un ou de plusieurs équipements supervisés et envoyer ces informations au serveur Zabbix, agissant essentiellement pour le compte du serveur. Toutes les données collectées sont mises en mémoire tampon localement, puis transférées au serveur Zabbix auquel le proxy appartient.

Le déploiement d’un proxy est facultatif, mais peut être très avantageux pour répartir la charge d’un seul serveur Zabbix. Si seuls les proxies collectent les données, le traitement sur le serveur devient moins gourmand en CPU et en E/S disque.

Un proxy Zabbix est la solution idéale pour la supervision centralisée de sites distants, de succursales et de réseaux sans administrateurs locaux.

Le proxy Zabbix nécessite une base de données distincte.

Notez que les bases de données prises en charge avec le proxy Zabbix sont SQLite, MySQL et PostgreSQL.

Voir aussi : Utilisation des proxies dans un environnement distribué

Exécution du Proxy

Si installé en tant que paquet

Zabbix proxy s’exécute comme un processus démon. Le proxy peut être démarré en exécutant :

systemctl start zabbix-proxy

Cela fonctionnera sur la plupart des systèmes GNU/Linux. Sur d’autres systèmes, vous devrez peut-être exécuter :

/etc/init.d/zabbix-proxy start

De même, pour arrêter/redémarrer/afficher l’état de Zabbix proxy, utilisez les commandes suivantes :

systemctl stop zabbix-proxy
systemctl restart zabbix-proxy
systemctl status zabbix-proxy
Démarrage manuel

Si ce qui précède ne fonctionne pas, vous devez le démarrer manuellement. Recherchez le chemin vers le binaire zabbix_proxy et exécutez :

zabbix_proxy

Vous pouvez utiliser les paramètres de ligne de commande suivants avec Zabbix proxy :

-c --config <file>              chemin vers le fichier de configuration
-f --foreground                 exécuter Zabbix proxy au premier plan
-R --runtime-control <option>   effectuer des fonctions administratives
-T --test-config                valider le fichier de configuration et quitter
-h --help                       afficher cette aide
-V --version                    afficher le numéro de version

Exemples d’exécution de Zabbix proxy avec des paramètres de ligne de commande :

zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
zabbix_proxy --help
zabbix_proxy -V
Contrôle d’exécution

Options de contrôle d’exécution :

Option Description Cible
config_cache_reload Recharger le cache de configuration. Ignoré si le cache est en cours de chargement.
Le proxy Zabbix actif se connectera au serveur Zabbix et demandera les données de configuration.
Le proxy Zabbix passif demandera les données de configuration au serveur Zabbix lors de la prochaine connexion du serveur au proxy.
history_cache_clear=target Vider le cache d’historique pour l’élément spécifié par son ID.
Affecte toutes les valeurs de l’élément, sauf la première et la dernière.
target - ID de l’élément
diaginfo[=<section>] Collecter des informations de diagnostic dans le fichier journal du proxy. historycache - statistiques du cache d’historique
preprocessing - statistiques du gestionnaire de prétraitement
locks - liste des mutex (vide sur les systèmes BSD)
snmp_cache_reload Recharger le cache SNMP — effacer les propriétés du moteur SNMP (temps du moteur, démarrages du moteur, ID du moteur, informations d’identification) pour tous les hôtes. À utiliser pour forcer un effacement global du cache lors du dépannage de problèmes SNMP.
housekeeper_execute Démarrer la procédure de nettoyage. Ignoré si la procédure de nettoyage est actuellement en cours.
log_level_increase[=<target>] Augmenter le niveau de journalisation, affecte tous les processus si target n’est pas spécifié.
Non pris en charge sur les systèmes BSD.
type de processus - Tous les processus du type spécifié (par exemple, poller)
Voir tous les types de processus proxy.
type de processus,N - Type et numéro du processus (par exemple, poller,3)
pid - Identifiant du processus (1 à 65535). Pour des valeurs plus grandes, spécifiez target comme 'type de processus,N'.
log_level_decrease[=<target>] Diminuer le niveau de journalisation, affecte tous les processus si target n’est pas spécifié.
Non pris en charge sur les systèmes BSD.
prof_enable[=<target>] Activer le profilage.
Affecte tous les processus si target n’est pas spécifié.
Le profilage activé fournit les détails de tous les rwlocks/mutexes par nom de fonction.
type de processus - Tous les processus du type spécifié (par exemple, history syncer)
Voir tous les types de processus proxy.
type de processus,N - Type et numéro du processus (par exemple, history syncer,1)
pid - Identifiant du processus (1 à 65535). Pour des valeurs plus grandes, spécifiez target comme 'type de processus,N'.
scope - rwlock, mutex, processing peuvent être utilisés avec le type et le numéro du processus (par exemple, history syncer,1,processing) ou avec tous les processus d’un type donné (par exemple, history syncer,rwlock)
prof_disable[=<target>] Désactiver le profilage.
Affecte tous les processus si target n’est pas spécifié.
type de processus - Tous les processus du type spécifié (par exemple, history syncer)
Voir tous les types de processus proxy.
type de processus,N - Type et numéro du processus (par exemple, history syncer,1)
pid - Identifiant du processus (1 à 65535). Pour des valeurs plus grandes, spécifiez target comme 'type de processus,N'.

Exemple d’utilisation du contrôle d’exécution pour recharger le cache de configuration du proxy :

zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R config_cache_reload

Exemple d’utilisation du contrôle d’exécution pour vider le cache d’historique d’un élément :

zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R history_cache_clear=42243

Exemples d’utilisation du contrôle d’exécution pour collecter des informations de diagnostic :

# Collecter toutes les informations de diagnostic disponibles dans le fichier journal du proxy :
zabbix_proxy -R diaginfo

# Collecter les statistiques du cache d’historique dans le fichier journal du proxy :
zabbix_proxy -R diaginfo=historycache

Exemple d’utilisation du contrôle d’exécution pour recharger le cache SNMP :

zabbix_proxy -R snmp_cache_reload

Lorsqu’une interface SNMPv3 est mise à jour via l’interface utilisateur Zabbix, Zabbix recharge automatiquement les nouvelles informations d’identification SNMPv3 pour cette interface dans la plupart des cas ; utilisez -R snmp_cache_reload uniquement si l’interrogation échoue toujours après les modifications des informations d’identification (par exemple, en raison d’incohérences engineBoots/engineID ou d’appareils non conformes à la RFC), ou lorsque vous devez forcer un effacement global du cache SNMP à des fins de dépannage.

Exemple d’utilisation du contrôle d’exécution pour déclencher l’exécution du nettoyage :

zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R housekeeper_execute

Exemples d’utilisation du contrôle d’exécution pour modifier le niveau de journalisation :

# Augmenter le niveau de journalisation de tous les processus :
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase

# Augmenter le niveau de journalisation du deuxième processus poller :
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=poller,2

# Augmenter le niveau de journalisation du processus avec le PID 1234 :
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=1234

# Diminuer le niveau de journalisation de tous les processus http poller :
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Utilisateur du processus

Le proxy Zabbix est conçu pour s’exécuter en tant qu’utilisateur non root. Il s’exécutera avec l’utilisateur non root sous lequel il a été démarré. Vous pouvez donc exécuter le proxy avec n’importe quel utilisateur non root sans aucun problème.

Si vous essayez de l’exécuter en tant que 'root', il basculera vers un utilisateur 'zabbix' codé en dur, qui doit être présent sur votre système. Vous ne pouvez exécuter le proxy en tant que 'root' que si vous modifiez en conséquence le paramètre 'AllowRoot' dans le fichier de configuration du proxy.

Fichier de configuration

Consultez les options du fichier de configuration pour plus de détails sur la configuration de zabbix_proxy.

Types de processus et threads du proxy

  • agent poller - processus de collecte asynchrone pour les vérifications passives avec un thread de travail
  • availability manager - processus de mise à jour de la disponibilité des hôtes
  • browser poller - collecteur pour les vérifications des éléments de navigateur
  • configuration syncer - processus de gestion du cache en mémoire des données de configuration
  • data sender - expéditeur de données du proxy
  • discovery manager - processus gestionnaire pour la découverte des périphériques
  • discovery worker - processus de traitement des tâches de découverte provenant du gestionnaire de découverte
  • history syncer - processus d'écriture de l'historique dans la base de données
  • housekeeper - processus de suppression des anciennes données historiques
  • http agent poller - processus de collecte asynchrone pour les vérifications HTTP avec un thread de travail
  • http poller - collecteur de supervision web
  • icmp pinger - collecteur pour les vérifications icmpping
  • internal poller - collecteur pour les vérifications internes
  • ipmi manager - gestionnaire des collecteurs IPMI
  • ipmi poller - collecteur pour les vérifications IPMI
  • java poller - collecteur pour les vérifications Java
  • odbc poller - collecteur pour les vérifications ODBC
  • poller - collecteur normal pour les vérifications passives
  • preprocessing manager - gestionnaire des tâches de prétraitement avec des threads de travail de prétraitement
  • preprocessing worker - thread de prétraitement des données
  • self-monitoring - processus de collecte des statistiques internes du serveur
  • snmp poller - processus de collecte asynchrone pour les vérifications SNMP avec un thread de travail (éléments walk[OID] et get[OID] uniquement)
  • snmp trapper - trapper pour les traps SNMP
  • task manager - processus d'exécution à distance des tâches demandées par d'autres composants (par ex. fermer un problème, acquitter un problème, vérifier la valeur d'un élément maintenant, fonctionnalité de commande à distance)
  • trapper - trapper pour les vérifications actives, les traps, la communication du proxy
  • unreachable poller - collecteur pour les périphériques injoignables
  • vmware collector - collecteur de données VMware chargé de la collecte des données depuis les services VMware

Le fichier journal du proxy peut être utilisé pour observer ces types de processus.

Le fichier journal du proxy est créé avec des permissions de lecture-écriture pour le propriétaire du fichier uniquement. De plus, le fichier est lisible par le groupe propriétaire. Toutes les autres permissions sont refusées.

Différents types de processus du proxy Zabbix peuvent être supervisés à l'aide de l'élément interne zabbix[process,<type>,<mode>,<state>] item.

Statistiques des transactions du synchroniseur d’historique

Le titre du processus du synchroniseur d’historique affiche des statistiques détaillées sur les transactions du synchroniseur d’historique.

205276 ?        S      0:00  zabbix_proxy: history syncer #1 [processed 1 values in 0.001179 (0.001167,0.000000) sec, idle 1 sec]
205277 ?        S      0:00  zabbix_proxy: history syncer #2 [processed 0 values in 0.000022 (0.000000,0.000000) sec, idle 1 sec]

Les durées, dans « processed...in N (<timings>) sec », sont les suivantes :

  • Temps consacré à l’écriture des valeurs d’élément dans la base de données ;
  • Temps consacré à la mise à jour des données de l’élément (état, erreurs).

Plateformes prises en charge

Le proxy Zabbix fonctionne sur la même liste de plateformes prises en charge que le serveur Zabbix.

Tampon mémoire

Le tampon mémoire permet de stocker les nouvelles données (valeurs d’éléments, découverte réseau, auto-enregistrement des hôtes) dans le tampon et de les envoyer au serveur Zabbix sans accéder à la base de données. Le tampon mémoire a été introduit pour le proxy depuis Zabbix 7.0.

Dans les installations antérieures à Zabbix 7.0, les données collectées étaient stockées dans la base de données avant d’être envoyées au serveur Zabbix. Pour ces installations, cela reste le comportement par défaut après la mise à niveau vers Zabbix 7.0.

Pour des performances optimisées, il est recommandé de configurer l’utilisation du tampon mémoire sur le proxy. Cela est possible en modifiant la valeur de ProxyBufferMode de « disk » (valeur par défaut codée en dur pour les installations existantes) à « hybrid » (recommandé) ou « memory ». Il est également nécessaire de définir la taille du tampon mémoire (paramètre ProxyMemoryBufferSize).

En mode hybride, le tampon est protégé contre la perte de données en vidant dans la base de données les données non envoyées si le proxy est arrêté, si le tampon est plein ou si les données sont trop anciennes. Lorsque toutes les valeurs ont été vidées dans la base de données, le proxy recommence à utiliser le tampon mémoire.

En mode mémoire, le tampon mémoire sera utilisé, cependant, il n’existe aucune protection contre la perte de données. Si le proxy est arrêté ou si la mémoire est saturée, les données non envoyées seront perdues.

Le mode hybride (ProxyBufferMode=hybrid) est appliqué à toutes les nouvelles installations depuis Zabbix 7.0.

Des paramètres supplémentaires tels que ProxyMemoryBufferSize et ProxyMemoryBufferAge définissent respectivement la taille du tampon mémoire et l’ancienneté maximale des données dans le tampon.

Notez qu’en cas de configuration conflictuelle, le proxy affichera une erreur et ne démarrera pas, par exemple si :

  • ProxyBufferMode est défini sur « hybrid » ou « memory » et ProxyMemoryBufferSize vaut « 0 » ;
  • ProxyBufferMode est défini sur « hybrid » ou « memory » et ProxyLocalBuffer n’est pas « 0 ».

Paramètres régionaux

Notez que le proxy nécessite des paramètres régionaux UTF-8 afin que certains éléments textuels puissent être interprétés correctement. La plupart des systèmes modernes de type Unix utilisent des paramètres régionaux UTF-8 par défaut ; toutefois, sur certains systèmes, il peut être nécessaire de les définir explicitement.

Calcul des files d’attente pendant la maintenance

Le proxy Zabbix n’a pas connaissance des périodes de maintenance ; voir Calcul des files d’attente pendant la maintenance pour plus de détails.