2016-11-01 9 views
0

ここでは、テキストメッセージを共有フォルダに転送するリアルタイムシステムがあります。 logstashにこれらのメッセージをナビゲートfilebeatもあり、その後、logstashはelasticsearchへと出力を解析します。問題は、共有フォルダに置かれたいくつかのメッセージの内容が間違っていて、間違った形式の後に正しい形式が送信され、間違った形式が間もなく正しい形式になる場合があることです。各msgはcounterと呼ばれるフィールドを持ち、間違ったmsgカウンタは正しいものよりも小さい。文書IDを使用してlogstashからelasticsearchで文書を照会する方法はありますか

新しいメッセージがlogstashによって受信され、elasticsearchに正しいmsgがすでに存在するか、または現在のmsgが正しいかどうかを確認するたびにdocument_idに基づいてelasticsearchのレコードを照会または検索することは可能ですか?古いもの。

各メッセージにアクセスするには、定義されたdocument_idが使用され、訂正/間違ったメッセージの両方で同じにすることができます。 DOCUMENT_IDは、以下のようなものです:

output { 

    elasticsearch { 
    document_id => "%{my_id}" 
     . 
     . 
     . 
     } 
} 

答えて

0

はい、あなたがあなたのクエリに一致する一つの文書を取得できるようになりますelasticsearch logstash filterを使用することができます。あなたのケースでは、IDを照会することができますし、ドキュメントを取得します:このフィルタは実行

filter { 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     query => "_id:%{my_id}" 
     fields => { 
     "field1" => "fieldA" 
     "field2" => "fieldB" 
     } 
    } 
} 

した後、あなたはfield1field2fieldAfieldBとして現在のイベントにコピーがあるでしょう、あなたが実行することができますif/then/elseは、あなたの状況に合っているかテストします。

関連する問題