2016-08-09 7 views
0

私はELK環境にインポートされる外部データ(私は制御できません!)に問題があります。データに将来のタイムスタンプが含まれている場合があります。明日または将来の予定です。例えば今日は2010年9月8日、BSTは10/08/2016 BST、さらに08/09/2016 BSTの日付で作成されたインデックスがあります。 。データは使用目的ではないので、ElasticSearchに入る前にデータを削除することをお勧めします。ELK将来の日付で作成されたインデックスを削除する

アイデア?

ありがとうございました ダレン。

+0

これがlogstashを経由している場合、elasticsearchの出力を入力して削除する前に、それらのイベントを検出できます。 – Val

+0

私はこれをやろうとしましたが、Logstash内で日付比較をすることはできません –

+0

'ruby'フィルタを使って実行できます – Val

答えて

1

ここには、rubyフィルタを使用した例があります。 説明のために、私は標準入力に送るメッセージは、単に形式で日付で構成されているdd/MM/yyyy

input { 
    stdin {} 
} 
filter { 
    date { 
     match => ["message", "dd/MM/yyyy"] 
    } 
    ruby { 
     code => " 
     if event['@timestamp'] > Time.now 
      event.cancel 
     end 
     " 
    } 
} 
output { 
    stdout { 
     codec => rubydebug 
    } 
} 

ですから、上記の設定でlogstash開始した場合、次のような出力が得られます。

10/08/2016 <--- today is accepted 
{ 
     "message" => "10/08/2016", 
     "@version" => "1", 
    "@timestamp" => "2016-08-09T22:00:00.000Z", 
      "host" => "iMac-de-Consulthys.local" 
} 
11/08/2016 <--- tomorrow is dropped 
10/09/2016 <--- a date in a month from now is dropped 
09/07/2016 <--- a date a month ago is accepted 
{ 
     "message" => "09/07/2016", 
     "@version" => "1", 
    "@timestamp" => "2016-07-08T22:00:00.000Z", 
      "host" => "iMac-de-Consulthys.local" 
} 
+0

ありがとうございます。それは治療を働いた –

関連する問題