2013-05-10 15 views
7

要約:logstashにログを含むTTLフィールドを添付してElastic検索に送信したいとします。logstash経由でElasticsearchに送信されるすべてのログにTTLフィールドを添付する

私はすでにドキュメントを読んでいますが、それほど明確ではないので、多くを得ることができませんでした。

これはlogstashの設定ファイルです。

input { 
    stdin { 
    type => "stdin-type" 
    } 
} 

output { 
    stdout { debug => true debug_format => "json"} 
    elasticsearch {} 
} 

ここで、読み込まれたログごとに、5日間、TTLを添付したいとします。

私は弾性検索でTTLオプションを有効にする方法を知っています。しかし、弾性検索設定ファイルにどのような変更を加えなければならないかは、あまり明確ではありません。 ドキュメントでは、マッピングフォルダを検索するよう要求されていますが、エラスティック検索ダウンロードフォルダには何もありません。

専門家のヘルプを探しています。

答えて

12

マッピングをファイルシステムに配置する場合は、hereをご覧ください。 configフォルダーに移動して、ここにmappingsという名前のフォルダーと、mappingsというインデックスの名前を持つフォルダーを作成する必要があります。 logstashはデフォルトで1日あたりのインデックスを作成するので、フォルダには_defaultという名前を使用して、すべてのインデックスにマッピングが適用されるようにしてください。 そのフォルダの下に作成するファイルには、マッピングを適用するタイプの名前が必要です。私はlogstashがどのタイプのものを使用しているのか正確には分からないので、_default_のマッピング定義を使用します。ただ、ファイルを呼び出し、その中に以下の内容を置く:

{ 
    "_default_" : { 
     "_ttl" : { "enabled" : true } 
    } 
} 

あなたがタイプの名前がファイル名の両方で、その内容に現れなければなりません見ることができるように。

これ以外の場合は、ファイルシステムにファイルを置くことを避けることができます。あなたは次のように、カスタムマッピングを含むindex templateを作成することができます。

{ 
    "template" : "logstash-*", 
    "mappings" : { 
     "_default_" : { 
      "_ttl" : { "enabled" : true } 
     } 
    } 
} 

マッピングは、その後、名前がテンプレートパターンに一致するすべてのインデックスに適用されます。 _default_マッピング定義を使用する場合、マッピングはデフォルトで作成されるすべてのタイプに適用されます。

+0

@ javanna ...あなたの助けを借りて...しかし、私はあなたが言ったこれらのファイルをどこに置くのか知りたい。私は最初の方法で行って、2つのフォルダ、マッピング、_defaultをconfigの下に作成しなければならないとしますか?では、TTLをどこで指定しますか? – user2359303

+0

jsonファイルを作成する必要がありますか?はいの場合、それには何が含まれ、その名前になるのでしょうか? docには[mapping-name]と書かれています。このすべてを明確にしていただけますか?私は本当に混乱しています – user2359303

+0

plsは私の疑問に答えます – user2359303

関連する問題