0

これが私が望むものです。これは増分データとは少し反対です。

一部のデータは特定のトークンを含むログであり、最初に送信されたデータ、各トークンの最も古い情報のみを保持 (または Elasticsearch で表示) できるようにしたいと考えています。

同じトークンの新しいログを無視したいですか?

どうやってやるの ?それはlogstashまたはelasticsearchにありますか?

ありがとう

更新 2016-05-31

違う視点で見ることができると思います。しかし、グローバルに欲しいのは写真のようなテーブルですが、赤い線がなければ、logstash で無視するか、ES クエリに表示しないでください。 ここに画像の説明を入力

削除したい行にフラグを追加できた場合、それが可能であることはわかっていますが、それは不可能です。それらを削除できることを示す唯一の事実は、キー first-AAA が既にあるためです。以前にログに記録されています。ロギング プロセスでは、この情報はありません。

4

1 に答える 1

1

elasticsearchfilterを使用してこれを実現できます。フィルターは、レコードが既に存在するかどうかを ES でチェックし、存在する場合は、Logstash に行を削除するように依頼します。

Idフィールド ( AAA) がドキュメントとして使用され_id、フィールドとしてドキュメントにも存在することを前提としていることに注意してくださいId。必要に応じて自由に変更してください。ただし、これでうまくいきます。

input {
   ...
}
filter {
   elasticsearch {
      hosts => ["localhost:9200"]
      query => "_type:your_type AND _id:%{[Id]}"
      fields => {"Id" => "found"}
   }
   if [found] {
      drop {}
   }
}
output {
   elasticsearch {
      hosts => ["localhost:9200"]
      ...
   }
}
于 2016-05-31T06:49:49.890 に答える