2016-11-11 4 views
0

私はLogstashイベントで1つのカスタムフィールドは、式として定義されています:はフィルタLogstashに表現としてフィールドを評価

filter { 
    if [customIndex] { 
    mutate { 
     add_field => { "indexName" => "custom-%{customIndex}" } 
    } 
    } else { 
    mutate { 
     add_field => { "indexName" => "common-%{+YYYY.MM.dd}" } 
    } 
    } 
} 

しかし、カスタムのために:elasticsearch出力プラグイン用のインデックス名を計算

{ "customIndex" => "my-service-%{+YYYY.MM}" } 

とフィルタインデックス無効名前custom-my-service-%{+YYYY.MM}を作成し、%{+YYYY.MM}の式を評価しません。

フィールドを評価してcustom-my-service-2016.11を取得できますか?

答えて

1

あなたはこれにあなたの作成したフィールドを再フォーマットすることができた場合:

{ "customIndex" => "my-service-%Y.%m" } 

はその後、このRubyのフィルタは、トリックを行います:

ruby { 
    init => "require 'date'" 
    code => "event['indexName'] = 'custom-' + Date.today.strftime(event['customIndex'])" 
} 

Hereあなたが使用できるプレースホルダのドキュメントです。

+0

私は他の部分に何の問題もありません。私は興味がある場合は、部分。 Logstashレベルではハードコードの時間パターンが必要となり、柔軟ではないため、提案は私のためには機能しません。 Logstashをより柔軟にし、収益パターンとして日付パターンを受け取ることがポイントです。したがって、1つのアプリケーションでは1時間あたりのインデックスが使用されます。 – moleksyuk

+0

@moleksyuk答えが – Fairy

+0

ありがとうございました。それは完璧に動作しません。 – moleksyuk