はじめに
fluent-plugin-elasticsearchはよく使われているプラグインの一つです。 このプラグインをメンテナンスするためには、Fluentdの知識だけでなく、Elasticsearchが今後どのようになっていくかも知っておく必要があります。 Elasticsearch 6.xで次のようなアナウンスがありました。
要約すると、Elasticsearch 6.0ではインデックスに対して一つのタイプしか許可されなくなり、
Elasticsearch 7.xではインデックスに付与できるタイプは _doc のみになる、というものです。
fluent-plugin-elasticsearch v2.8.xでの対策
fluent-plugin-elasticsearchのデフォルトの挙動は、 fluentd というインデックスに対して、 fluentd という _type を付加することになっています。
しかし、問題となるパラメーターがあります。
target_type_key というパラメーターを使用している際に、
レコードの中から該当するキーが存在する場合は _type に当てはめるという動作をしていました。
このパラメーターについては deprecated 警告を出すようにしました。
また、Elsaticsearch 7.xでは Removal of Mapping Types in Elasticsearch 6.0 によると、
_type フィールドには _doc というダミーしか許可されなくなるので、type_name パラメーターについても _doc 固定となる動作になるよう変更を加えました。
まだ _doc のような _ 始まりのタイプを許可しない環境もあるため、v2.8.1では INFO レベルのログを出力する挙動に留めるようにしました。
まとめ
fluent-plugin-elasticsearch v2.8.0 では、接続先のElasticsearchのバージョンによって挙動が変わるようになります。
接続先がElasticsearch 5.xでは今までの動作のまま、6.xでは target_type_key が動作しなくなり、
7.xでは target_type_key が動作しなくなるのに加えて、 type_name パラメーターが _doc 固定になります。