[comment]: # translation:outdated

[comment]: # ({39c4b215-26ad891b})
# 10 Variables d'environnement

[comment]: # ({/39c4b215-26ad891b})

[comment]: # ({5b980b7e-72128caf})
#### Aperçu

Les variables d'environnement permettent de configurer les composants Zabbix sans coder en dur les valeurs dans les fichiers de configuration.
Cela facilite la gestion des configurations dans des environnements dynamiques, tels que Docker, où les variables peuvent être transmises au moment de l'exécution pour s'adapter à différentes configurations.

Dans le cas le plus simple, en définissant la valeur du paramètre de configuration [DebugLevel](/manual/appendix/config/zabbix_server#debuglevel) du serveur Zabbix sur une variable d'environnement, vous pouvez ensuite l'utiliser pour configurer le serveur au démarrage :

```bash
# Fichier de configuration du serveur Zabbix :
DebugLevel=${NEW_DEBUG_LEVEL}

# Démarrage du serveur Zabbix :
NEW_DEBUG_LEVEL=5 /usr/sbin/zabbix_server
```

Les variables d'environnement sont prises en charge par les composants Zabbix suivants :

-   [Server](/manual/appendix/config/zabbix_server)
-   [Proxy](/manual/appendix/config/zabbix_proxy)
-   Agent ([UNIX](/manual/appendix/config/zabbix_agentd) ou [Windows](/manual/appendix/config/zabbix_agentd_win))
-   Agent 2 ([UNIX](/manual/appendix/config/zabbix_agent2) ou [Windows](/manual/appendix/config/zabbix_agent2_win)), y compris les [plugins](/manual/appendix/config/zabbix_agent2_plugins)
-   [Web service](/manual/appendix/config/zabbix_web_service)
-   Zabbix sender (lors de l'utilisation de l'[option -c, --config](/manpages/zabbix_sender#options))

[comment]: # ({/5b980b7e-72128caf})

[comment]: # ({8d252f3a-7598ffff})
#### Remarques importantes

-   Lorsqu'un paramètre de configuration est défini sur une variable d'environnement qui n'est pas spécifiée lors de l'exécution du composant, la valeur par défaut du paramètre est utilisée.
-   Lors de l'utilisation des [commandes d'exécution](/manual/concepts/agent#runtime-control) (par exemple, pour augmenter le niveau de journalisation de l'agent), toutes les variables d'environnement précédemment utilisées doivent être spécifiées. Cela s'explique par le fait que les composants Zabbix utilisent leur fichier de configuration pour exécuter les commandes d'exécution ; si les variables d'environnement sont omises, les valeurs par défaut des paramètres de configuration seront utilisées. Voir [Exemples](#examples).
-   La [commande d'exécution](/manual/concepts/agent#runtime-control) `userparameter_reload` ne prend pas en charge le rechargement des variables d'environnement. Lors du rechargement, les variables sont ignorées et seuls les paramètres ayant des valeurs normales sont rechargés.
-   Les variables d'environnement actuelles du processus, qui ont été utilisées dans les fichiers de configuration, sont effacées après le démarrage du composant Zabbix. Cela garantit que les processus enfants (par exemple, les scripts distants exécutés par Zabbix) ne peuvent pas accéder à ces variables. Toutefois, notez que les variables initiales du processus peuvent toujours être récupérées (par exemple, via le fichier `/proc/<PID>/environ`).

[comment]: # ({/8d252f3a-7598ffff})

[comment]: # ({c33cd6ee-5d8ec091})
#### Syntaxe

Les variables d'environnement doivent utiliser la syntaxe suivante : ${alphanumerics/underscores}.

Le nom de la variable ne peut contenir que des lettres (a-z, A-Z), des traits de soulignement (\_), et des chiffres (0-9), et ne doit pas commencer par un chiffre.

Les variables qui ne correspondent pas à la syntaxe requise ou qui sont combinées avec une valeur normale seront traitées comme des valeurs normales, ce qui peut produire des erreurs.

Syntaxe correcte des variables :

```ini
DebugLevel=${NEW_DEBUG_LEVEL}
Hostname=${ZBX_HOSTNAME}
LogFile=${LogFile_001}
```

Syntaxe incorrecte des variables :

```ini
DebugLevel=${5_DebugLevel}
Hostname=${ZBX.HOSTNAME 1}
LogFile=/${HOME}/zabbix/zabbix_server.log
```

::: noteclassic
Sous Windows, les noms des variables d'environnement ne sont pas sensibles à la casse.
:::

[comment]: # ({/c33cd6ee-5d8ec091})

[comment]: # ({b319b360-c638a080})
#### Exemples

Les exemples suivants montrent comment configurer et utiliser des variables d’environnement avec les composants Zabbix.

[comment]: # ({/b319b360-c638a080})

[comment]: # ({78b82896-0382a339})
##### Exemple 1 : Configuration et test de l'agent Zabbix

1\. Définissez les variables d'environnement dans le fichier de configuration de l'agent :

```ini
Hostname=${ZBX_HOSTNAME}
ServerActive=${ServerActive}
```

2\. Testez le fichier de configuration :

```bash
ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf --test-config
```

3\. Démarrez l'agent avec les variables d'environnement :

```bash
ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
```

Lors de l'utilisation des [commandes d'exécution](/manual/concepts/agent#runtime-control) (par exemple, pour augmenter le niveau de journalisation de l'agent), toutes les variables d'environnement précédemment utilisées doivent être spécifiées :

```bash
ZBX_HOSTNAME="New Zabbix agent" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -R log_level_increase
```

Cela s'explique par le fait que l'agent utilise son fichier de configuration pour exécuter les commandes d'exécution ; si les variables d'environnement sont omises, les valeurs par défaut des paramètres de configuration seront utilisées.

Sinon, après avoir défini les variables d'environnement dans le fichier de configuration de l'agent, vous pouvez les rendre disponibles aux processus (par exemple, en utilisant la commande `export`).
Cela réduit le risque de comportement inattendu dû à des variables manquantes ou incorrectement définies.

```bash
export ZBX_HOSTNAME="New Zabbix agent"
export ServerActive=127.0.0.1
/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf --test-config
/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -R log_level_increase
```

[comment]: # ({/78b82896-0382a339})

[comment]: # ({6e772927-6852ff3f})
##### Exemple 2 : Configuration de l'agent Zabbix pour un conteneur

Si vous créez et configurez votre propre image personnalisée pour des composants Zabbix (par exemple, l'agent Zabbix), vous pouvez définir des paramètres de configuration à l'aide de variables d'environnement, puis démarrer le conteneur avec ces variables.

1\. Lors de la préparation de l'image, définissez les variables d'environnement dans le fichier de configuration de l'agent :

```ini
Hostname=${ZBX_HOSTNAME}
BufferSize=${BUFSZ}
ListenPort=${LISTENPORT}
UserParameter=${_UsrPar01}
UserParameter=${_UsrPar02}
```

2\. Après avoir créé l'image du conteneur, démarrez le conteneur de l'agent (par exemple, Docker) avec des variables d'environnement :

```bash
docker run --name my-zabbix-agent -e ZBX_HOSTNAME="new-hostname" -e BUFSZ=1000 -e LISTENPORT=20050 -e _UsrPar01="key1,ls" -e _UsrPar02="key2,pwd" --init -d my-zabbix-agent:latest
```

3\. Lors de l'utilisation des [commandes d'exécution](/manual/concepts/agent#runtime-control) (par exemple, pour augmenter le niveau de journalisation de l'agent), accédez au shell du conteneur et exécutez la commande d'exécution :

```bash
docker exec -it <containerid> sh
/usr/sbin/zabbix_agentd -R log_level_increase
```

::: noteimportant
La commande d'exécution `userparameter_reload` ne prend pas en charge le rechargement des variables d'environnement.
Lors du rechargement, les variables sont ignorées et seuls les paramètres avec des valeurs normales sont rechargés.
:::

[comment]: # ({/6e772927-6852ff3f})
