2017-09-07 178 views
0

私は文書に従おうとしました https://www.elastic.co/guide/en/logstash/current/environment-variables.html しかし、動作していないようです。Logstash:環境変数を使用

処理するログファイルがたくさんあります。 logstashで処理しようとしている入力ファイル/share/log-2017.09.07.jsonがあるとします。次のように

私logstashの設定ファイルの抜粋は以下のとおりです。

input { file { 
    'exclude' => ['*.gz'] 
    'path' => ["/share/log-${INPUT_DATE}.json"] 
    'type' => 'json' 
    start_position => "beginning" 
    codec => json 
    sincedb_path => "/dev/null" 
    } 
} 

次のように私はlogstash起動:

export INPUT_DATE="2017.09.07" 
logstash -f myconfigfile.conf 

logstashは、ファイル/share/log-2017.09を見つけるように見えるしません。 .03.json。 私は

 'path' => ["/share/log-2017.09.07.json"] 

によって

 'path' => ["/share/log-${INPUT_DATE}.json"] 

を交換するとき、それは動作します。

私は間違っていますか?

答えて

0

https://www.elastic.co/guide/en/logstash/current/environment-variables.htmlによれば、このドキュメント$ {var}は状況の​​下でのみ動作します。

  • ポート=> "$ {TCP_PORT}"、輸出TCP_PORT = 12345
  • add_tag => [ "TAG1"、 "$ {ENV_TAG}"]、エクスポートENV_TAG = "TAG2"
  • add_field = > {"my_path" => "$ {HOME} /file.log"、export HOME = "/ path"

あなたのコードでは、以下の場所で$ {var}を使用しました。 ここで/ log-の 'path' => ["/share/log-${INPUT_DATE}.json"]も変数でなければなりません。 export INPUT_DATE = "log-2017.09.07.json"
ドキュメントの例によると、この機能はいくつかのイベントで使用されていますが、すべての状況で使用されるわけではありません。