2017-05-18 10 views
0

私はelasticsearchエントリのインデックスとしてソースファイルのファイル名を使用したいと思います。 FileBeatsとLogStashを使用してElasticsearchに転送します。 Logstash "%{[source]}"を使用してElasticsearchインデックスのファイル名を表示

は現在、私は持っている:

input 
{ 
    beats { 
    port => 5044 
    } 
} 

filter { 
    json { 
    source => "message" 
    } 
} 

output { 
    elasticsearch { 
     hosts => "localhost:9200" 
     manage_template => false 
     index => "%{[source]}" 
     document_type => "%{[@metadata][type]}" 
     user => *** 
     password => *** 
    } 
} 

これは、 "C:\ログ\テスト20170518.json" で私を提供します。 test-20170518をインデックスとして使用したいと思います。ソースを使ってこれを行うことはできますか?

答えて

3

あなたはそのためのGROKフィルタプラグインを使用することができます。この

input 
{ 
    beats { 
    port => 5044 
    } 
} 

filter { 
    json { 
     source => "message" 
    } 
    grok { 
     match => [ 
      "source", 
      "C:\\logs\\%{DATA:myIndex}.json" 
     ] 
    } 
} 


output { 
    elasticsearch { 
     hosts => "localhost:9200" 
     manage_template => false 
     index => "%{[myIndex]}" 
     document_type => "%{[@metadata][type]}" 
     user => *** 
     password => *** 
    } 
} 
+0

ありがとうございます試してみてください!したがって、%{DATA:myIndex}は "%{[myIndex]}"で呼び出すことができるファイル名(myIndex)の変数を作成します。 – Smoeey

関連する問題