2017-09-14 3 views
0

特定の日付ではないフィールドcreatedTmを持つイベントを削除したい。 createdTmlong(エポックからの時間)として受信され、それを日付に変換します。logstash - 特定の日付ではない日付フィールドを持つイベントをドロップする

実際に動作していない設定:

date { 
match => [ "createdTm", "UNIX_MS" ] 
target => "createdTm" 
} 

if !("2017-09-14" in [createdTm]) { drop {} } 

は、しかし、これはすべてのものを落としているようです。

現在の時刻を使用して差分を計算するルビコードがいくつか見受けられましたが、真夜中の直後に実行すると昨日からのログも受け入れられるため、これは必要なものではありません。

私はlogstash 2.3を使用しています。 お返事ありがとうございます。

答えて

0

私はそれを「ハッキング」終わった:

mutate { 
     convert => { "createdTm" => "integer" } 
    } 

if !([createdTm]>=1505433600000 and [createdTm]<=1505519999000) { 
    drop {} 
} 

date { 
     match => [ "createdTm","UNIX_MS" ] 
    target => "createdTm" 
} 

は、第一に、私はそれを比較できるようにするには、整数にcreatedTmを変換します。
次に、それをunix epoch(1970)からのミリ秒である一定の値と比較します。基本的にcreatedTmがインターバルにあるかどうかをチェックします。
そうでない場合は、イベントをドロップして、日付に変換してメッセージの解析を続行します。

私は「hacky」と言います。なぜなら、私はいくつかのオンラインコンバータでこれらの定数値を取得する必要があり、実際には直感的ではないからです。
私は最初に日付を解析し、それから問題に言及したように文字列としてチェックするオプションを見つけることができません。

関連する問題