2016-05-11 14 views
1

私はElasticsearch入力、いくつかのフィルタとElasticsearch出力でEC2インスタンス上で実行されているLogstash設定を持つインデックスB.Logstash Elasticsearch Input - 一度だけ実行されますか?

にインデックスAからのデータの小さなサブセットをコピーしようとしています。

これは私がそれを最初に実行したときに正常に動作しますが、新しいデータがインデックスA(つまり、入力のクエリ条件を満たしている)に追加された場合Logstashの設定が

インデックスB.にして出力することを検出しません

これは私に考えている、Elasticsearchの入力は1回だけ実行されますか?追加された新しいファイルをピックアップするファイルやS3入力のような入力とは異なります。

答えて

4

Logstash elasticsearch入力プラグインは、オプションのクエリで1回の検索(スキャン/スクロール)を行い、終了すると終了します。

file入力プラグインの場合と同じように動作しないので、1つまたは複数のファイルをテールして、その場で新しい行を処理します。

新しい文書がクエリと一致したときに通知を受ける方法が必要な場合は、Watcherプラグインを調べることができます。 Watcherはクエリに一致する新しい文書の存在を検出してから、Webhookを呼び出します。これは、Logstash内のhttp input pluginによって実現できます。

+0

ヴァルを確認していただきありがとうございます。私はウォッチャーを見ていきます。 – Raoot

+0

興味深い発見は、この確認を得るまで数日かかりました。私は弾性から読み込み、2行(idで)を相関させ、それらの間の経過時間を抽出する必要がありました。そのために、elapsedという名前のフィルタが見つかりましたが、弾性入力が1回実行された場合、次回のlogstashを実行すると明らかに以前の値は忘れてしまいます:/ – eltuko

+0

'elasticsearch'フィルタ1つを入力してください)あなたのクエリーとそれらの間の時間を測定する '経過したもの 'を作成します。 – Val

関連する問題