[comment]: # ({f9458f4e-f9458f4e})
# 4 Proxy

[comment]: # ({/f9458f4e-f9458f4e})

[comment]: # ({598d8afb-05d8de8a})
#### Aperçu

Un proxy Zabbix est un processus qui peut collecter des données de supervision à partir d'un ou de plusieurs périphériques supervisés et envoyer les informations au serveur Zabbix, en travaillant 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 consomme moins de CPU et d'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.

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

::: noteimportant
Notez que les bases de données prises en charge avec Zabbix proxy sont SQLite, MySQL et PostgreSQL.
L'utilisation d'Oracle se fait à vos propres risques et peut comporter certaines limitations, par exemple dans les [valeurs de retour](/manual/discovery/low_level_discovery#overview) des règles de découverte de bas niveau.
:::

Voir aussi: [Utilisation des proxies dans un environnement distribué](/manual/distributed_monitoring/proxies)

[comment]: # ({/598d8afb-05d8de8a})

[comment]: # ({709824a5-709824a5})
#### Exécution du Proxy

[comment]: # ({/709824a5-709824a5})

[comment]: # ({70fd3646-a0a6c8d1})
##### 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 :

```bash
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 :

```bash
/etc/init.d/zabbix-proxy start
```

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

```bash
systemctl stop zabbix-proxy
systemctl restart zabbix-proxy
systemctl status zabbix-proxy
```

[comment]: # ({/70fd3646-a0a6c8d1})

[comment]: # ({5e827b2c-0b35181b})
##### Démarrage manuel

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

```bash
zabbix_proxy
```

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

```bash
-c --config <file>              Chemin vers le fichier de configuration
-f --foreground                 Exécuter le proxy Zabbix au premier plan
-R --runtime-control <option>   Exécuter 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 du proxy Zabbix avec des paramètres de ligne de commande :

```bash
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
zabbix_proxy --help
zabbix_proxy -V
```

[comment]: # ({/5e827b2c-0b35181b})

[comment]: # ({484024fc-ee4dd6f0})
##### Contrôle à l'exécution

Options de contrôle à l'exécution :

|Option|Description|Cible|
|--|------|------|
|`config_cache_reload`|Recharge le cache de configuration. Ignoré si le cache est en cours de chargement.<br>Le proxy Zabbix actif se connectera au serveur Zabbix et demandera les données de configuration.<br>Le proxy Zabbix passif demandera les données de configuration au serveur Zabbix lors de la prochaine connexion du serveur au proxy.| |
|`diaginfo[=<section>]`|Collecte des informations de diagnostic dans le fichier journal du proxy.|`historycache` - statistiques du cache d'historique;<br>`preprocessing` - statistiques du gestionnaire de prétraitement;<br>`locks` - liste des mutex (vide sur les systèmes *BSD*).|
|`snmp_cache_reload`|Recharge le cache SNMP - efface les propriétés du moteur SNMP (temps du moteur, démarrages du moteur, identifiant du moteur, informations d'identification) pour tous les hôtes. À utiliser pour forcer un effacement global du cache lors du dépannage des problèmes SNMP.| |
|`housekeeper_execute`|Démarre la procédure de maintenance. Ignoré si la procédure de maintenance est actuellement en cours.| |
|`log_level_increase[=<target>]`|Augmente le niveau de journalisation, affecte tous les processus si la cible n'est pas spécifiée. <br>Non pris en charge sur les systèmes *BSD*.|**type de processus** - tous les processus du type spécifié (par exemple, `poller`).<br>Voir tous les [types de processus du proxy](#proxy-process-types-and-threads).<br>**type de processus,N** - type de processus et numéro (par exemple, `poller,3`).<br>**pid** - identifiant du processus (`1` à `65535`). Pour des valeurs plus élevées, spécifiez la cible comme 'type de processus,N'.|
|`log_level_decrease[=<target>]`|Diminue le niveau de journalisation, affecte tous les processus si la cible n'est pas spécifiée.<br>Non pris en charge sur les systèmes *BSD*.|^|
|`prof_enable[=<target>]`|Active le profilage.<br>Affecte tous les processus si la cible n'est pas spécifiée.<br>Le profilage activé fournit des détails sur tous les rwlocks/mutex par nom de fonction.|**type de processus** - tous les processus du type spécifié (par exemple, `history syncer`).<br>Voir tous les [types de processus du proxy](#proxy-process-types-and-threads).<br>**type de processus,N** - type de processus et numéro (par exemple, `history syncer,1`)<br>**pid** - identifiant du processus (`1` à `65535`). Pour des valeurs plus élevées, spécifiez la cible comme 'type de processus,N'.<br>**scope** - `rwlock`, `mutex`, `processing` peuvent être utilisés avec le type de processus et le numéro (par exemple, `history syncer,1,processing`) ou avec tous les processus d'un type (par exemple, `history syncer,rwlock`).|
|`prof_disable[=<target>]`|Désactive le profilage.<br>Affecte tous les processus si la cible n'est pas spécifiée.|**type de processus** - tous les processus du type spécifié (par exemple, `history syncer`).<br>Voir tous les [types de processus du proxy](#proxy-process-types-and-threads).<br>**type de processus,N** - type de processus et numéro (par exemple, `history syncer,1`).<br>**pid** - identifiant du processus (`1` à `65535`). Pour des valeurs plus élevées, spécifiez la cible comme 'type de processus,N'.|

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

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

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

```bash
# 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 à l'exécution pour recharger le cache SNMP :

```bash
zabbix_proxy -R snmp_cache_reload
```

::: noteimportant
Lorsqu'une interface SNMPv3 est mise à jour via l'interface 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 la collecte échoue encore après un changement d'informations d'identification (par exemple, en raison d'incohérences engineBoots/engineID ou de périphériques non conformes RFC), ou lorsque vous devez forcer un effacement global du cache SNMP pour le dépannage.
:::

Exemple d'utilisation du contrôle à l'exécution pour déclencher l'exécution du housekeeper :

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

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

```bash
# 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"
```

[comment]: # ({/484024fc-ee4dd6f0})

[comment]: # ({2b13e467-a9af55d3})
##### 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 avec 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 le paramètre `AllowRoot` dans le fichier de configuration du proxy en conséquence.

[comment]: # ({/2b13e467-a9af55d3})

[comment]: # ({6e096a7b-441f5ec7})
##### Fichier de configuration

Consultez les options du [fichier de configuration](/manual/appendix/config/zabbix_proxy) pour plus de détails sur la configuration de `zabbix_proxy`.

[comment]: # ({/6e096a7b-441f5ec7})

[comment]: # ({8cbeb29d-2cd46511})
#### Types de processus et threads du proxy

-   `agent poller` - processus de poller 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` - poller 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` - émetteur de données du proxy ;
-   `discovery manager` - processus de gestion de 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` - écrivain de la base de données d'historique ;
-   `housekeeper` - processus de suppression de l'historique obsolète des éléments ;
-   `http agent poller` - processus de poller asynchrone pour les vérifications HTTP avec un thread de travail ;
-   `http poller` - poller de supervision web ;
-   `icmp pinger` - poller pour les vérifications icmpping ;
-   `internal poller` - poller pour les vérifications internes ;
-   `ipmi manager` - gestionnaire de poller IPMI ;
-   `ipmi poller` - poller pour les vérifications IPMI ;
-   `java poller` - poller pour les vérifications Java ;
-   `odbc poller` - poller pour les vérifications ODBC ;
-   `poller` - poller 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 poller asynchrone pour les vérifications SNMP avec un thread de travail (`walk[OID]` et `get[OID]` éléments 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 exemple, 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 et la communication avec le proxy ;
-   `unreachable poller` - poller pour les périphériques injoignables ;
-   `vmware collector` - collecteur de données VMware chargé de la collecte des données provenant des services VMware.

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

Depuis Zabbix 7.0.22, le fichier journal du proxy est créé avec des permissions de lecture et d'écriture uniquement pour le propriétaire du fichier. 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 surveillés à l'aide de l'[élément](/manual/config/items/itemtypes/internal) interne `zabbix[process,<type>,<mode>,<state>]`.

[comment]: # ({/8cbeb29d-2cd46511})

[comment]: # ({99df0923-087c822f})
#### Plateformes prises en charge

Le proxy Zabbix fonctionne sur la même liste de [plateformes prises en charge](/manual/concepts/server#supported-platforms) que le serveur Zabbix.

[comment]: # ({/99df0923-087c822f})

[comment]: # ({f18fc440-d86eb1a8})
#### Tampon mémoire

Le tampon mémoire permet de stocker de nouvelles données (valeurs d'élément, découverte réseau, auto-enregistrement d'hôte) 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 dans 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, ce comportement 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`](/manual/appendix/config/zabbix_proxy#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`](/manual/appendix/config/zabbix_proxy#proxymemorybuffersize)).

En mode hybride, le tampon est protégé contre la perte de données en écrivant 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é écrites dans la base de données, le proxy recommence à utiliser le tampon mémoire.

En mode mémoire, le tampon mémoire est utilisé, mais 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 supprimées.

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

Des paramètres supplémentaires tels que [`ProxyMemoryBufferSize`](/manual/appendix/config/zabbix_proxy#proxymemorybuffersize) et [`ProxyMemoryBufferAge`](/manual/appendix/config/zabbix_proxy#proxymemorybufferage) définissent respectivement la taille du tampon mémoire et l'âge maximal 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`.

[comment]: # ({/f18fc440-d86eb1a8})

[comment]: # ({b4e0a962-c703b792})
#### 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.

[comment]: # ({/b4e0a962-c703b792})

[comment]: # ({de7d29ed-6420ecbe})
#### Calcul des files d'attente pendant la maintenance

::: noteimportant
Le proxy Zabbix n'a pas connaissance des périodes de maintenance ; voir [Calcul des files d'attente pendant la maintenance](/manual/maintenance#calculation-of-queues-during-maintenance) pour plus de détails.
:::

[comment]: # ({/de7d29ed-6420ecbe})
