# Utilisation de variable d'environnement pour les paramètres de logstash

**URL:** <https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661>\
**Category:** Discussions en français\
**Created:** [August 4, 2020, 7:34am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661 "2020-08-04T07:34:52Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 4, 2020, 7:34am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/1 "2020-08-04T07:34:52Z")

</div>

Bonjour,  
je souhaite pouvoir déployer logstash pour une communauté d'utilisateurs.  
Aujourd'hui, la commande logstash nécessite de positionner correctement les variables data.path et path.log sur la ligne de commande, car les valeurs par défaut pointent dans le répertoire de l'installation du produit.  
Serait-il possible de positionner cela via des variables d'environnement ?  
Merci.

---

<div class="post-metadata">

**Author:** ![Rom1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rom1/32/49699_2.png) [@Rom1](https://discuss.elastic.co/u/Rom1)\
**Post date:** [August 6, 2020, 7:38am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/2 "2020-08-06T07:38:22Z")

</div>

Bonjour,  
C'est tout à fait possible.  
Voila ce que je fait pour mon instance sous Windows:

```auto
SET LS_SETTINGS_DIR=%APP_HOME%\bin-conf\%PROCESS%-%LS_VERSION%
SET LS_JVM_OPTIONS_CONFIG=%LS_SETTINGS_DIR%\jvm.options
SET LS_PATH_DATA=%APP_HOME%\data\%PROCESS%-%LS_VERSION%\
SET LS_PATH_CONFIG=%APP_HOME%\conf\%PROCESS%
SET LS_PATH_LOGS=%APP_HOME%\logs\%PROCESS%-%LS_VERSION%\

```

Puis dans le fichier logstash.yml:

```auto
path.data: ${LS_PATH_DATA}
path.config: ${LS_PATH_CONFIG}/*.conf
path.logs: ${LS_PATH_LOGS}

```

Et je lance Logstash sans paramètres, il récupère son fichier de configuration à partir de LS\_SETTINGS\_DIR.

La doc : [Running Logstash from the Command Line | Logstash Reference [8.11] | Elastic](https://www.elastic.co/guide/en/logstash/current/running-logstash-command-line.html)

> --path.settings SETTINGS\_DIR  
> Set the directory containing the logstash.yml settings file as well as the log4j logging configuration. **This can also be set through the LS\_SETTINGS\_DIR environment variable.** The default is the config directory under Logstash home.

---

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 6, 2020, 11:42am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/3 "2020-08-06T11:42:38Z")

</div>

> [@Rom1](#):
>
> `LS_PATH_LOGS`

J'ai essayé de positionner les variables LS\_PATH\_DATA et LS\_PATH\_LOGS pour le logstash que je fais tourner en environnement Linux, mais il n'a pas l'air de les utiliser, j'ai la même erreur :

An unexpected error occurred! {:error=\>#\<ArgumentError ... " must be a writable directory. It is not writable...

La directory du message est celle où est installé le produit Logstash.

---

<div class="post-metadata">

**Author:** ![Rom1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rom1/32/49699_2.png) [@Rom1](https://discuss.elastic.co/u/Rom1)\
**Post date:** [August 6, 2020, 11:56am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/4 "2020-08-06T11:56:46Z")

</div>

C'est un problème d'écriture dans un des répertoires (data ou logs ou les deux)  
Personnellement je positionnerai ces variables en dehors du répertoire d'installation.

Logs --\> /var/logs/logstash/  
Data --\> /var/data/logstash/

En m'assurant que le user faisant tourner le process logstash a bien les droits d'écriture dans ces répertoires

---

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 6, 2020, 12:02pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/5 "2020-08-06T12:02:51Z")

</div>

J'ai positionné les variables pour pointer dans le /tmp, donc les droits d'écritures sont corrects ...  
Le problème c'est que le message est le même qu'avant, il indique que c'est le répertoire où est installé le logiciel qui n'est pas ouvert à l'écriture (ce qui est normal). Il ne semble pas utiliser les variables d'environnement !

---

<div class="post-metadata">

**Author:** ![Rom1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rom1/32/49699_2.png) [@Rom1](https://discuss.elastic.co/u/Rom1)\
**Post date:** [August 6, 2020, 12:10pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/6 "2020-08-06T12:10:03Z")

</div>

Il faudrait que tu donnes un peu plus d'information sur la façon de lancer logstash.  
Service ou lancement de process via shell ?

---

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 6, 2020, 12:21pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/7 "2020-08-06T12:21:27Z")

</div>

je le lance en mode shell, avec un fichier de configuration en paramètre

---

<div class="post-metadata">

**Author:** ![Rom1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rom1/32/49699_2.png) [@Rom1](https://discuss.elastic.co/u/Rom1)\
**Post date:** [August 6, 2020, 12:24pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/8 "2020-08-06T12:24:11Z")

</div>

Pourrais-tu partager ?

- Le shell de définition des variables
- Le shell contenant la ligne de commande de lancement de logstash

---

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 6, 2020, 12:27pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/9 "2020-08-06T12:27:50Z")

</div>

export LS\_PATH\_DATA=/tmp/jcp  
export LS\_PATH\_LOGS=/tmp/jcp

logstash -f \<fichier\_de\_conf\_logstash\>

Je précise que j'arrive à faire fonctionner logstash avec ce fichier de configuration lorsque j'utilise une version de logstash que j'ai installé dans mes propres répertoires (donc a priori, le fichier de conf ne pose pas de problème)

---

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 6, 2020, 12:30pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/10 "2020-08-06T12:30:37Z")

</div>

J'ai beau chercher dans la doc, je ne vois pas trop de références à ces variables ...

---

<div class="post-metadata">

**Author:** ![Rom1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rom1/32/49699_2.png) [@Rom1](https://discuss.elastic.co/u/Rom1)\
**Post date:** [August 6, 2020, 1:15pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/11 "2020-08-06T13:15:55Z")

</div>

Dans ton cas, la variable `LS_SETTINGS_DIR` n'est pas positionnée, Logstash va lire le fichier de conf `logstash.yml` qui est dans le sous-répertoire `config` du répertoire d'install.  
Si tu ne l'as pas modifié, il utilise toujours les répertoires par défaut.

Il faut que tu ajoutes les 2 lignes suivantes dans le fichier `logstash.yml`:

```auto
path.data: ${LS_PATH_DATA}
path.logs: ${LS_PATH_LOGS}

```

Les chemins seront remplacés par la valeur des variables d'environnement

Si tu n'as pas les droits de modifier le fichier `logstash.yml`:

1. Il te faut positionner la variable `LS_SETTINGS_DIR` pour la faire pointer vers un répertoire dans lequel tu as les droits et tu y copies les fichiers contenus dans `config` et tu les modifies.
2. ou tu lances logstash avec le paramètre `--path.settings` suivi du répertoire contenant logstash.yml

En espérant avoir été clair

---

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 6, 2020, 1:32pm UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/12 "2020-08-06T13:32:39Z")

</div>

c'est clair. Je n'ai pas encore testé cette solution, car je me retrouve toujours confronté au même problème !!  
Le produit Logstash est déployé chez nous automatiquement (avec l'outil spack). Donc je n'ai pas vraiment la main pour pouvoir modifier le fichier de configuration afin de déclarer les deux variables d'environnement.  
Je souhaite que les utilisateurs potentiel de Logstash n'ai pas à faire la copie a priori du fichier de conf, le modifier pour pouvoir utiliser les variables (ce serait aussi "compliqué" que de leur demander de passer les paramètres sur la ligne de commande.  
Je vais regarder s'il serait possible de modifier le "paquet" Logstash à la fin du déploiement ...  
Merci pour les explications, c'est dommage que ces variables ne soient pas déclarées par défaut.

---

<div class="post-metadata">

**Author:** ![abrx](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abrx/32/43881_2.png) [@abrx](https://discuss.elastic.co/u/abrx)\
**Post date:** [August 31, 2020, 8:24am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/13 "2020-08-31T08:24:51Z")

</div>

Bonjour,  
Vous pouvez transmettre des variables d'environnements au démon logstash via les fichiers type `/etc/sysconfig/logstash` ou `/etc/default/logstash`, selon votre distribution et vos paramètres systèmes.

---

<div class="post-metadata">

**Author:** ![penalva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/penalva/32/73283_2.png) [@penalva](https://discuss.elastic.co/u/penalva)\
**Post date:** [August 31, 2020, 9:04am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/14 "2020-08-31T09:04:26Z")

</div>

Bonjour,  
merci pour ces indications, mais les fichiers que vous indiquez sont "hors de portée" (à cause des droits d’accès) pour un utilisateur basique.  
Le but de ma question était justement de pouvoir changer le contenu de ces variables par un **utilisateur basique** de Logstash.  
Pour le moment (peut être que cela évoluera dans les versions futures de Logstash 😉 ) les variables ne sont pas déclarées dans les fichiers de paramétrage par défaut de Logstash, donc seul un administrateur peut effectuer la modification lors de l'installation du logiciel.  
Nous utilisons un logiciel de déploiement qui télécharge la version "packagée" de Logstash, et se charge du déploiement sans aucune intervention de notre part. Nous souhaitons rester dans cette configuration sans avoir besoin que nos administrateurs n'aient à modifier le contenu des paquets avant le déploiement.  
Merci.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 28, 2020, 9:04am UTC](https://discuss.elastic.co/t/utilisation-de-variable-denvironnement-pour-les-parametres-de-logstash/243661/15 "2020-09-28T09:04:32Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
