3

How to reference environment variables in logstash configuration file?を読んだ後、ここに来ます。Logstashの環境変数が正しく解析されていません

残念ながら、それは私のためには機能しませんでした。 私が実行しています:

input { 
file { 
     path => "/tmp/${RUN_ID}/*.txt" 
     start_position => beginning 
     sincedb_path => "/dev/null" 
     ignore_older => 0 
    } 
} 

output { 
elasticsearch { 
     hosts => [ "localhost:9200" ] 
     index => "${RUN_ID}" 
    } 
} 

そして新しいインデックスが作成されていない:

bin/logstash -f my_filters.conf --debug 

そして、私の設定ファイルです。 これは設定後次のとおりです。たとえば

export RUN_ID=500 


設定をハードコード値(例:500)に変更すると、問題なくインデックスが作成されます。

私はdocumentationを読んでいると、それがどのように私は、環境変数の作業を取得することができ、
は私が間違って何をやっている...私が今やっているかを正確に言及していますか?

+0

どのようなバージョンのlogstashを使用していますか?環境変数を設定した後、どのようにlogstashを起動しますか? – Alcanzar

+0

Logstash 2.5で、質問自体にlogstashを開始する方法を示しました。 – Idos

+0

ESのWebサイトによると、2.5は有効なバージョン番号ではありません。2.4から5.0になります。 1.5を使用している場合は、2.3で導入されているので、その機能はありませんでした。 – Alcanzar

答えて

4

Logstash 2.4では、環境置換を行うには、コマンドライン引数--allow-envが必要です。それは文句はありません(ただし、動作しません)フラグなし

bin/logstash -f test.conf 
Settings: Default pipeline workers: 8 
Pipeline main started 

フラグで設定しない場合、それは文句を言うでしょう:

bin/logstash --allow-env -f test.conf 
fetched an invalid config {:config=>"input {\n file {\n  path => \"/tmp/${RUN_ID}/*.txt\"\n  start_position => beginning\n  sincedb_path => \"/dev/null\"\n  ignore_older => 0\n }\n}\n\noutput {\nstdout { codec=>rubydebug}\n elasticsearch {\n  hosts => [ \"localhost:9200\" ]\n  index => \"${RUN_ID}\"\n }\n}\n\n\n", :reason=>"Cannot evaluate `${RUN_ID}`. Environment variable `RUN_ID` is not set and there is no default value given.", :level=>:error} 

のを議論と旗が付いたコース、すべてが正しく動作します:

export RUN_ID=10 
bin/logstash --allow-env -f test.conf 
Pipeline main started 
{ 
     "message" => "asdfasdf", 
     "@version" => "1", 
    "@timestamp" => "2016-11-01T21:10:15.964Z", 
      "path" => "/tmp/10/test.txt", 
      "host" => "XXXXXXXXX.local" 
} 
+1

ありがとうございます**とても**!私は彼らが明示的に[docs](https://www.elastic.co/guide/en/logstash/current/environment-variables.html)に言及していないとは信じられない! – Idos

+0

これはlogstash 5.2でも同様ですか? – Vinod

+1

5.xではコマンドラインフラグは不要です – Alcanzar

関連する問題