2017-08-23 8 views
0

ログデータとワークフローがElasticsearchの出力バルク挿入方法と競合しているように見えることがあります。Logstash Elasticsearch出力Elasticsearchフィルタを使用したバルク挿入の競合

私がやろうとしているのは、Elasticsearchフィルタプラグインを使用して、終了イベントを受け取ったときに開始イベントを見つけるための検索を行うことです。しかし、問題はイベントがお互いに隣り合っているか、非常に近い(数行以内)ことが多いということです。 Elasticsearchフィルタルックアップが実行されると、出力バルクの挿入方法のためにElasticsearchにまだ送信されていないため、対応する開始イベントは見つかりません。

は参考のために、ワークフローは次のとおりです。

input { 
    beats { 
    port => 5044 
    } 
} 
filter { 
    if [eventType] == "End" { 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     user => "logstash-es" 
     password => "****" 
     index => "logstash-*" 
     query_template => "config/logstash-query.json" 
     fields => [["event-data", "start-event-data"]] 
    } 
    } 
} 
output { 
    elasticsearch { 
    hosts => "[localhost:9200]" 
    user => "logstash-es" 
    password => "****" 
    index => "%{[@metadata][beat]}" 
    document_type => "%{[@metadata][type]}" 
    } 
} 

Elasticsearchフィルタ・ルックアップが成功するように、どのように私は、個別にイベントを送信するためにElasticsearch出力を強制することができますか?

答えて

0

さて、私は私の答えを見つけたと思う。

.\bin\logstash.bat -f path/to/config.conf -b 1 

私はこれをカップリングしています:Logstashを開始するとき、あなたは1

例に設定することができます--pipline.batch.size以下のフラグ、-b、とバッチサイズを設定することができますフラグに続いて、-w、--pipeline.workersを1ワーカーに設定して、イベントが順不同で処理されないようにし、-u、--pipeline.batch.delayを使用してバッチを作成する間の遅延を増やします。

関連する問題