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 travailavailability manager- processus de mise à jour de la disponibilité des hôtesbrowser poller- collecteur pour les vérifications des éléments de navigateurconfiguration syncer- processus de gestion du cache en mémoire des données de configurationdata sender- expéditeur de données du proxydiscovery manager- processus gestionnaire pour la découverte des périphériquesdiscovery worker- processus de traitement des tâches de découverte provenant du gestionnaire de découvertehistory syncer- processus d'écriture de l'historique dans la base de donnéeshousekeeper- processus de suppression des anciennes données historiqueshttp agent poller- processus de collecte asynchrone pour les vérifications HTTP avec un thread de travailhttp poller- collecteur de supervision webicmp pinger- collecteur pour les vérifications icmppinginternal poller- collecteur pour les vérifications internesipmi manager- gestionnaire des collecteurs IPMIipmi poller- collecteur pour les vérifications IPMIjava poller- collecteur pour les vérifications Javaodbc poller- collecteur pour les vérifications ODBCpoller- collecteur normal pour les vérifications passivespreprocessing manager- gestionnaire des tâches de prétraitement avec des threads de travail de prétraitementpreprocessing worker- thread de prétraitement des donnéesself-monitoring- processus de collecte des statistiques internes du serveursnmp poller- processus de collecte asynchrone pour les vérifications SNMP avec un thread de travail (élémentswalk[OID]etget[OID]uniquement)snmp trapper- trapper pour les traps SNMPtask 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 proxyunreachable poller- collecteur pour les périphériques injoignablesvmware 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.