Logstashでindexを作成する際のmapping

logstashでindexを作成する際のmappingの設定はlogstash.yml内に記載するのでしょうか?

Logstashのoutput-elasticsearchでデータを送ってIndexを作成する場合、そのときはtemplateを使ってmapping情報が構成されます。
ですので、templateをどう指定できるかと考えた方が良いかと思います。

詳しくは以下を見てください。

a template is applied to Elasticsearch during Logstash’s startup if one with the name template_name does not already exist.

manate_template(初期値true)の他にテンプレートをどのように指定できるか、という観点では以下の3つがポイントになるかと思います。

  • template
  • template_name
  • template_overwrite (上書きするならtrue デフォルト値はfalse)

これを踏まえますと、例えばこんな指定ができます。

output {
    elasticsearch {
        hosts => ["https://localhost:9200"]
        index => "forum1102"
        template => "my_template.json"
        template_name => "my_template"
        template_overwrite => true
    }    
}

templateはjsonが書かれたファイルです。サンプルとしては、logstashの中のフォルダを探すとelasticsearch-template-es7x.jsonというファイルがあるかと思うので、そちらを参考にすると良いと思います。

回答ありがとうございます。
jsonファイルでtemplateを作成してlogstash.yml内で指定してあげれば良いんですね!
試して経過をお伝え致します。

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.