8.0への移行
このセクションでは、アプリケーションをElasticsearch 8.0に移行する際に注意すべき変更点について説明します。
詳細については、8.15の新機能およびリリースノートを参照してください。
破壊的変更
Elasticsearch 8.0の以下の変更は、アプリケーションに影響を与え、正常に動作しなくなる可能性があります。8.0にアップグレードする前に、これらの変更を確認し、影響を軽減するために説明された手順を実行してください。
クラスタとノード設定の変更
は、Elasticsearch Serviceのサポートされているuser settingの変更を示しています。
action.destructive_requires_name
は現在true
がデフォルトです。
詳細
action.destructive_requires_name
設定のデフォルトは、Elasticsearch 8.0.0でfalse
からtrue
に変更されます。
以前は、false
がデフォルトで、ユーザーはワイルドカードパターンを使用してインデックスの削除、クローズ、またはインデックスブロックの変更を行うことができました。ワイルドカードパターンに一致するインデックスの誤って削除されるのを防ぐために、現在は破壊的操作を行う際に明示的に変更するインデックスを指定する必要があります。
影響
破壊的操作にワイルドカードパターンを使用するには、https://www.elastic.co/guide/en/elasticsearch/reference/8.15/cluster-update-settings.htmlクラスタ設定APIを使用してaction.destructive_requires_name
をfalse
に設定してください。
非凍結ノードでxpack.searchable.snapshot.shared_cache.size
を設定することはできなくなりました。
詳細
**影響**
`````data_frozen`````ロールを持たないノードの`````elasticsearch.yml`````から`````xpack.searchable.snapshot.shared_cache.size`````を削除してください。非凍結ノードでこの設定を指定すると、起動時にエラーが発生します。
`````indices.query.bool.max_clause_count`````は非推奨で、効果がありません。
**詳細**
Elasticsearchは、検索スレッドプールのサイズとJVMに割り当てられたヒープのサイズに基づいて、クエリ内で許可される最大条項数を動的に設定します。この制限の最小値は1024であり、ほとんどの場合はより大きくなります(たとえば、30Gb RAMと48 CPUを持つノードは、約27,000の最大条項数を持ちます)。大きなヒープはより高い値をもたらし、大きなスレッドプールはより低い値をもたらします。
**影響**
多くの条項を持つクエリは、可能な限り避けるべきです。以前にこの設定を重いクエリに合わせて引き上げた場合は、Elasticsearchに利用可能なメモリを増やすか、検索スレッドプールのサイズを減らして、各同時検索に利用可能なメモリを増やす必要があるかもしれません。
以前のLuceneのバージョンでは、ブールクエリを入れ子にすることでこの制限を回避できましたが、現在の制限はクエリ全体のリーフクエリの総数に基づいており、この回避策はもはや役に立ちません。
`````indices.query.bool.max_clause_count`````を指定しても効果はありませんが、非推奨の警告が生成されます。これらの警告を回避するには、アップグレードまたはノードの再起動中に`````elasticsearch.yml`````から設定を削除してください。
`````indices.lifecycle.poll_interval`````は`````1s`````より大きくなければなりません。
**詳細**
`````indices.lifecycle.poll_interval`````を低すぎる値に設定すると、クラスタに過剰な負荷がかかる可能性があります。ポーリング間隔は、少なくとも`````1s`````(1秒)である必要があります。
**影響**
`````elasticsearch.yml`````または[クラスタ更新設定API](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/cluster-update-settings.html)を介して`````indices.lifecycle.poll_interval`````設定を`````1s`````以上に設定してください。
`````elasticsearch.yml`````で`````indices.lifecycle.poll_interval`````を`````1s`````未満に設定すると、起動時にエラーが発生します。`````1s`````未満に`````indices.lifecycle.poll_interval`````を設定するリクエストはエラーを返します。
ファイルおよびネイティブ領域は、明示的に無効にしない限り、現在有効になっています。
**詳細**
ファイルおよびネイティブ領域は、明示的に無効にしない限り、現在有効になっています。明示的に無効にした場合、ファイルおよびネイティブ領域は常に無効のままです。
以前は、ファイルおよびネイティブ領域には以下の暗黙の動作がありました:
- ファイルおよびネイティブ領域が構成されていない場合、他の領域が構成されていると暗黙的に無効になっていました。
- 他の領域が利用できない場合(領域が構成されていない、ライセンスで許可されていない、または明示的に無効にされている場合)、ファイルおよびネイティブ領域は有効になっていました。
**影響**
ファイルまたはネイティブ領域を明示的に無効にするには、`````file.<realm-name>.enabled`````または`````native.<realm-name>.enabled`````設定を`````false`````に設定し、`````xpack.security.authc.realms`````名前空間の下で`````elasticsearch.yml`````に設定してください。
以下の構成例は、ネイティブ領域とファイル領域を無効にします。
#### Yaml
``````yaml
xpack.security.authc.realms:
native.realm1.enabled: false
file.realm2.enabled: false
...
`
領域order
設定は現在必須です。
詳細
**影響**
要件が満たされない場合、クラスタは起動に失敗します。
たとえば、以下の構成は無効です:
#### Yaml
``````yaml
xpack.security.authc.realms.kerberos.kerb1:
keytab.path: es.keytab
remove_realm_name: false
`
そして、次のように構成する必要があります:
Yaml
xpack.security.authc.realms.kerberos.kerb1:
order: 0
keytab.path: es.keytab
remove_realm_name: false
**詳細**
Elasticsearchは、クラスタ内のノードのディスク使用量に基づいて、割り当て決定を行う際に、移動中のシャードのサイズを常に考慮します。以前のバージョンでは、`````cluster.routing.allocation.disk.include_relocations`````を`````false`````に設定することでこれを無効にすることができました。これにより、ウォーターマークを超える不適切な割り当て決定が行われ、修正するためにかなりの追加作業が必要になる可能性があります。`````cluster.routing.allocation.disk.include_relocations`````設定は削除されました。
**影響**
`````cluster.routing.allocation.disk.include_relocations`````設定を削除してください。`````elasticsearch.yml`````でこの設定を指定すると、起動時にエラーが発生します。
`````cluster.join.timeout`````は削除されました。
**詳細**
`````cluster.join.timeout`````設定は削除されました。結合の試みはもはやタイムアウトしません。
**影響**
`````cluster.join.timeout`````を`````elasticsearch.yml`````から削除してください。
`````discovery.zen`````設定は削除されました。
**詳細**
`````discovery.zen`````名前空間の下のすべての設定はもはやサポートされていません。これらは7.xのBWC理由のためだけに存在していました。これには以下が含まれます:
- `````discovery.zen.minimum_master_nodes
discovery.zen.no_master_block
discovery.zen.hosts_provider
discovery.zen.publish_timeout
discovery.zen.commit_timeout
discovery.zen.publish_diff.enable
discovery.zen.ping.unicast.concurrent_connects
discovery.zen.ping.unicast.hosts.resolve_timeout
discovery.zen.ping.unicast.hosts
discovery.zen.ping_timeout
discovery.zen.unsafe_rolling_upgrades_enabled
discovery.zen.fd.connect_on_network_disconnect
discovery.zen.fd.ping_interval
discovery.zen.fd.ping_timeout
discovery.zen.fd.ping_retries
discovery.zen.fd.register_connection_listener
discovery.zen.join_retry_attempts
discovery.zen.join_retry_delay
discovery.zen.join_timeout
discovery.zen.max_pings_from_another_master
discovery.zen.send_leave_request
discovery.zen.master_election.wait_for_joins_timeout
discovery.zen.master_election.ignore_non_master_pings
discovery.zen.publish.max_pending_cluster_states
discovery.zen.bwc_ping_timeout
影響
`````http.content_type.required`````は削除されました。
**詳細**
`````http.content_type.required`````設定はElasticsearch 6.0で非推奨となり、Elasticsearch 8.0で削除されました。この設定は、HTTPリクエストのコンテンツタイプの自動検出がElasticsearch 6.0で削除される準備のために、Elasticsearch 5.3で導入されました。
**影響**
`````elasticsearch.yml`````から`````http.content_type.required`````設定を削除してください。この設定を指定すると、起動時にエラーが発生します。
`````http.tcp_no_delay`````は削除されました。
**詳細**
`````http.tcp_no_delay`````設定は7.xで非推奨となり、8.0で削除されました。代わりに`````http.tcp.no_delay`````を使用してください。
**影響**
`````http.tcp_no_delay`````設定を`````http.tcp.no_delay`````に置き換えてください。`````elasticsearch.yml`````で`````http.tcp_no_delay`````を指定すると、起動時にエラーが発生します。
`````network.tcp.connect_timeout`````は削除されました。
**詳細**
`````network.tcp.connect_timeout`````設定は7.xで非推奨となり、8.0で削除されました。この設定は`````transport.connect_timeout`````のフォールバック設定でした。
**影響**
`````network.tcp.connect_timeout`````設定を削除してください。クライアント接続のデフォルト接続タイムアウトを変更するには、`````transport.connect_timeout`````設定を使用してください。`````elasticsearch.yml`````で`````network.tcp.connect_timeout`````を指定すると、起動時にエラーが発生します。
`````node.max_local_storage_nodes`````は削除されました。
**詳細**
`````node.max_local_storage_nodes`````設定は7.xで非推奨となり、8.0で削除されました。ノードは、各ノードが一貫して同じデータパスに割り当てられるように、別々のデータパスで実行する必要があります。
**影響**
`````node.max_local_storage_nodes`````設定を削除してください。`````elasticsearch.yml`````でこの設定を指定すると、起動時にエラーが発生します。
`````accept_default_password`````設定は削除されました。
**詳細**
`````xpack.security.authc.accept_default_password`````設定は、Elasticsearch 6.0のリリース以降、効果がなくなり、もはや許可されていません。
**影響**
`````elasticsearch.yml`````から`````xpack.security.authc.accept_default_password`````設定を削除してください。この設定を指定すると、起動時にエラーが発生します。
`````roles.index.cache.*`````設定は削除されました。
**詳細**
`````xpack.security.authz.store.roles.index.cache.max_size`````および`````xpack.security.authz.store.roles.index.cache.ttl`````設定は削除されました。これらの設定は、Elasticsearch 5.2のリリース以降、冗長で非推奨となっていました。
**影響**
`````elasticsearch.yml`````から`````xpack.security.authz.store.roles.index.cache.max_size`````および`````xpack.security.authz.store.roles.index.cache.ttl`````設定を削除してください。これらの設定を指定すると、起動時にエラーが発生します。
`````transport.profiles.*.xpack.security.type`````設定は削除されました。
**詳細**
`````transport.profiles.*.xpack.security.type`````設定はもはやサポートされていません。Transport Clientは削除され、すべてのクライアントトラフィックは現在HTTPトランスポートを使用します。この設定を使用しているトランスポートプロファイルは削除する必要があります。
**影響**
`````elasticsearch.yml`````から`````transport.profiles.*.xpack.security.type`````設定を削除してください。この設定をトランスポートプロファイルで指定すると、起動時にエラーが発生します。
`````nameid_format````` SAML領域設定はもはやデフォルト値を持ちません。
**詳細**
SAMLでは、アイデンティティプロバイダー(IdP)は、特定の形式の`````NameID`````をリリースするように明示的に構成されるか、サービスプロバイダー(SP)の要件に準拠するように構成されます。SPは、SAML認証リクエストの`````NameIDPolicy`````要素でその要件を宣言します。Elasticsearchでは、`````nameid_format````` SAML領域設定が`````NameIDPolicy`````値を制御します。
以前は、`````nameid_format`````のデフォルト値は`````urn:oasis:names:tc:SAML:2.0:nameid-format:transient`````でした。この設定は、IdPが`````NameID`````を`````transient`````形式でリリースすることを要求する認証リクエストを作成しました。
デフォルト値が削除されたため、ElasticsearchはデフォルトでIdPにこの要件を課さないSAML認証リクエストを作成します。以前の動作を保持したい場合は、`````nameid_format`````を`````urn:oasis:names:tc:SAML:2.0:nameid-format:transient`````に設定してください。
**影響**
現在`````nameid_format`````を明示的に構成していない場合、IdPがElasticsearchからの認証リクエストを拒否する可能性があります。なぜなら、リクエストが`````NameID`````形式を指定していないからです(IdPがそれを期待するように構成されている場合)。この不一致は、壊れたSAML構成を引き起こす可能性があります。IdPが特定の`````NameID`````形式を使用するように明示的に構成されているかどうか不明な場合は、現在の動作を保持したい場合は、`````nameid_format`````を`````urn:oasis:names:tc:SAML:2.0:nameid-format:transient`````に明示的に設定してみてください。
`````xpack.security.transport.ssl.enabled`````設定は、`````xpack.security.transport.ssl`````設定を構成するために現在必須です。
**詳細**
`````xpack.security.transport.ssl`````に対してSSL設定を構成する際に、`````xpack.security.transport.ssl.enabled`````も構成しないとエラーになります。
**影響**
他の`````xpack.security.transport.ssl`````設定を使用している場合は、`````xpack.security.transport.ssl.enabled`````設定を明示的に指定する必要があります。
SSLを有効にしたくない場合は、他の`````xpack.security.transport.ssl`````設定を使用している場合、次のいずれかを行ってください:
- `````xpack.security.transport.ssl.enabled`````を`````false`````として明示的に指定する
- 他の`````xpack.security.transport.ssl`````設定の使用を中止する
SSLを有効にしたい場合は、[クラスタ内のノード間の通信を暗号化する](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/configuring-tls.html#tls-transport)の手順に従ってください。この構成の一環として、`````xpack.security.transport.ssl.enabled`````を`````true`````として明示的に指定してください。
たとえば、以下の構成は無効です:
#### Yaml
``````yaml
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
`
そして、次のように構成する必要があります:
Yaml
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
または false . |
**詳細**
`````xpack.security.http.ssl`````に対してSSL設定を構成する際に、`````xpack.security.http.ssl.enabled`````も構成しないとエラーになります。
**影響**
他の`````xpack.security.http.ssl`````設定を使用している場合は、`````xpack.security.http.ssl.enabled`````設定を明示的に指定する必要があります。
SSLを有効にしたくない場合は、他の`````xpack.security.http.ssl`````設定を使用している場合、次のいずれかを行ってください:
- `````xpack.security.http.ssl.enabled`````を`````false`````として明示的に指定する
- 他の`````xpack.security.http.ssl`````設定の使用を中止する
SSLを有効にしたい場合は、[HTTPクライアント通信の暗号化](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/security-basic-setup-https.html#encrypt-http-communication)の手順に従ってください。この構成の一環として、`````xpack.security.http.ssl.enabled`````を`````true`````として明示的に指定してください。
たとえば、以下の構成は無効です:
#### Yaml
``````yaml
xpack.security.http.ssl.certificate: elasticsearch.crt
xpack.security.http.ssl.key: elasticsearch.key
xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
`
そして、次のいずれかのように構成する必要があります:
Yaml
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.certificate: elasticsearch.crt
xpack.security.http.ssl.key: elasticsearch.key
xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
または false . |
**詳細**
トランスポートインターフェースのSSLを有効にするには、`````xpack.security.transport.ssl.keystore.path`````設定または`````xpack.security.transport.ssl.certificate`````および`````xpack.security.transport.ssl.key`````設定を使用して証明書とキーを構成しないとエラーになります。
**影響**
`````xpack.security.transport.ssl.enabled`````が`````true`````に設定されている場合は、`````xpack.security.transport.ssl.keystore.path`````設定または`````xpack.security.transport.ssl.certificate`````および`````xpack.security.transport.ssl.key`````設定を使用して証明書とキーを提供してください。証明書とキーが提供されない場合、Elasticsearchは起動時にエラーを返します。
`````xpack.security.http.ssl`````証明書とキーは、HTTPサーバーのSSLを有効にするために現在必須です。
**詳細**
HTTP(Rest)サーバーのSSLを有効にするには、`````xpack.security.http.ssl.keystore.path`````設定または`````xpack.security.http.ssl.certificate`````および`````xpack.security.http.ssl.key`````設定を使用して証明書とキーを構成しないとエラーになります。
**影響**
`````xpack.security.http.ssl.enabled`````が`````true`````に設定されている場合は、`````xpack.security.http.ssl.keystore.path`````設定または`````xpack.security.http.ssl.certificate`````および`````xpack.security.http.ssl.key`````設定を使用して証明書とキーを提供してください。証明書とキーが提供されない場合、Elasticsearchは起動時にエラーを返します。
PKCS#11キーストアとトラストストアは`````elasticsearch.yml`````で構成できません。
**詳細**
`````*.ssl.keystore.type`````および`````*.ssl.truststore.type`````設定は、"PKCS11"を有効なタイプとして受け入れなくなりました。これは、ElasticsearchのすべてのSSL設定に適用されます。
- `````xpack.security.http.keystore.type
xpack.security.transport.keystore.type
xpack.security.http.truststore.type
xpack.security.transport.truststore.type
セキュリティ領域、ウォッチャー、モニタリングのSSL設定にも適用されます。
PKCS#11キーストアまたはトラストストアをJREのデフォルトストアとして使用することには影響ありません。
影響
`````kibana`````ユーザーは`````kibana_system`````に置き換えられました。
**詳細**
`````kibana`````ユーザーは、KibanaをElasticsearchに認証するために歴史的に使用されていました。このユーザーの名前は混乱を招くものであり、Kibanaにログインするために誤って使用されることがよくありました。この名前は`````kibana_system`````に変更され、混乱を減らし、他の組み込みシステムアカウントとよりよく整合するようにしました。
**影響**
`````kibana`````ユーザーの使用を`````kibana_system`````ユーザーに置き換えてください。`````kibana.yml`````で`````kibana`````ユーザーを指定すると、起動時にエラーが発生します。
もし`````kibana.yml`````が次のように含まれていた場合:
#### Yaml
``````yaml
elasticsearch.username: kibana
`
その場合は、新しいkibana_system
ユーザーを使用するように更新する必要があります:
Yaml
elasticsearch.username: kibana_system
新しい kibana_system
ユーザーは、以前の kibana
ユーザーのパスワードを保持しません。kibana_system
ユーザーのために明示的にパスワードを設定する必要があります。
search.remote.*
設定は削除されました。
詳細
6.5では、これらの設定は cluster.remote
に代わって非推奨になりました。7.xでは、これらの設定を cluster.remote
対応に自動的にアップグレードしました。8.0.0では、これらの設定は削除されました。これらの設定が構成またはクラスター状態にある場合、Elasticsearchは起動を拒否します。
影響
置き換えの cluster.remote
設定を使用してください。search.remote.*
設定の使用を中止してください。elasticsearch.yml
でこれらの設定を指定すると、起動時にエラーが発生します。
pidfile
設定は node.pidfile
に置き換えられました。
詳細
すべての設定が適切な名前空間にあることを確認するために、pidfile
設定は以前のバージョン 7.4.0 の Elasticsearch で非推奨となり、バージョン 8.0.0 で削除されました。代わりに node.pidfile
を使用してください。
影響
node.pidfile
設定を使用してください。pidfile
設定の使用を中止してください。pidfile
設定を elasticsearch.yml
で指定すると、起動時にエラーが発生します。
processors
設定は node.processors
に置き換えられました。
詳細
すべての設定が適切な名前空間にあることを確認するために、processors
設定は以前のバージョン 7.4.0 の Elasticsearch で非推奨となり、バージョン 8.0.0 で削除されました。代わりに node.processors
を使用してください。
影響
node.processors
設定を使用してください。processors
設定の使用を中止してください。processors
設定を elasticsearch.yml
で指定すると、起動時にエラーが発生します。
node.processors
設定はもはや利用可能なプロセッサの数を超えることはできません。
詳細
以前は、スレッドプールのデフォルトサイズを設定するために使用されるプロセッサの数を、利用可能なプロセッサの数を超えて設定することが可能でした。これは、コンテキストスイッチが増え、スレッドが増えることにつながりますが、これらの追加スレッドをスケジュールするための物理CPUの数が増えないため、node.processors
設定は現在、利用可能なプロセッサの数によって制約されています。
影響
指定されている場合、node.processors
設定の値が利用可能なプロセッサの数を超えないことを確認してください。node.processors
値を elasticsearch.yml
で利用可能なプロセッサの数より大きく設定すると、起動時にエラーが発生します。
cluster.remote.connect
設定は削除されました。
詳細
Elasticsearch 7.7.0 では、cluster.remote.connect
設定が node.remote_cluster_client
設定に代わって非推奨になりました。Elasticsearch 8.0.0 では、cluster.remote.connect
設定が削除されます。
影響
node.remote_cluster_client
設定を使用してください。cluster.remote.connect
設定の使用を中止してください。cluster.remote.connect
設定を elasticsearch.yml
で指定すると、起動時にエラーが発生します。
node.local_storage
設定は削除されました。
詳細
Elasticsearch 7.8.0 では、node.local_storage
設定が非推奨となり、Elasticsearch 8.0.0 からはすべてのノードがローカルストレージを必要とします。したがって、node.local_storage
設定は削除されました。
影響
node.local_storage
設定の使用を中止してください。elasticsearch.yml
でこの設定を指定すると、起動時にエラーが発生します。
auth.password
設定は HTTP モニタリングのために削除されました。
詳細
Elasticsearch 7.7.0 では、xpack.monitoring.exporters.<exporterName>.auth.password
設定が xpack.monitoring.exporters.<exporterName>.auth.secure_password
設定に代わって非推奨になりました。Elasticsearch 8.0.0 では、xpack.monitoring.exporters.<exporterName>.auth.password
設定が削除されます。
影響
xpack.monitoring.exporters.<exporterName>.auth.secure_password
設定を使用してください。xpack.monitoring.exporters.<exporterName>.auth.password
設定の使用を中止してください。xpack.monitoring.exporters.<exporterName>.auth.password
設定を elasticsearch.yml
で指定すると、起動時にエラーが発生します。
基本ライセンス機能を無効にするために使用される設定は削除されました。
詳細
以下の設定は Elasticsearch 7.8.0 で非推奨となり、Elasticsearch 8.0.0 で削除されました:
xpack.enrich.enabled
xpack.flattened.enabled
xpack.ilm.enabled
xpack.monitoring.enabled
xpack.rollup.enabled
xpack.slm.enabled
xpack.sql.enabled
xpack.transform.enabled
xpack.vectors.enabled
これらの基本ライセンス機能は常に有効です。
ILM を無効にして、Watcher インデックスを管理するために別のツールを使用している場合、新たに導入された xpack.watcher.use_ilm_index_management
設定を false に設定できます。
影響
削除された設定の使用を中止してください。elasticsearch.yml
でこれらの設定を指定すると、起動時にエラーが発生します。
特定の数のマスターノードを待機するためにクラスター回復を遅延させるために使用される設定は削除されました。
詳細
以下のクラスター設定は削除されました:
gateway.expected_nodes
gateway.expected_master_nodes
gateway.recover_after_nodes
gateway.recover_after_master_nodes
マスターノードの過半数が参加した時点でクラスターを回復することは安全であり、追加のマスターノードの起動を待つことに利点はありません。
影響
削除された設定の使用を中止してください。必要に応じて、gateway.expected_data_nodes
または gateway.recover_after_data_nodes
を使用して、特定の数のデータノードを待機するためにクラスター回復を遅延させてください。
レガシーロール設定は削除されました。
詳細
レガシーロール設定:
node.data
node.ingest
node.master
node.ml
node.remote_cluster_client
node.transform
node.voting_only
は削除されました。代わりに node.roles
設定を使用してください。以前に 7.13 以降のクラスターでレガシーロール設定を使用していた場合、node.roles
の正確な置き換え値を示す非推奨ログメッセージが各ノードに表示されます。
影響
削除された設定の使用を中止してください。elasticsearch.yml
でこれらの設定を指定すると、起動時にエラーが発生します。
システムコールフィルタ設定は削除されました。
詳細
Elasticsearch は、別のプロセスをフォークする能力を削除するためにシステムコールフィルタを使用します。これは、リモートコードの悪用を軽減するのに役立ちます。これらのシステムコールフィルタはデフォルトで有効であり、以前は bootstrap.system_call_filter
設定を介して制御されていました。Elasticsearch 8.0 からは、システムコールフィルタが必須になります。そのため、bootstrap.system_call_filter
設定は Elasticsearch 7.13.0 で非推奨となり、Elasticsearch 8.0.0 から削除されます。
影響
削除された設定の使用を中止してください。この設定を Elasticsearch 構成で指定すると、起動時にエラーが発生します。
Tier フィルタリング設定は削除されました。
詳細
シャードを特定のノードセットに割り当てるためのフィルタリングに使用される ._tier
で終わるクラスターおよびインデックスレベルの設定は削除されました。代わりに、tier preference setting、index.routing.allocation.include._tier_preference
を使用する必要があります。削除された設定は:
クラスター レベルの設定:
cluster.routing.allocation.include._tier
cluster.routing.allocation.exclude._tier
cluster.routing.allocation.require._tier
インデックス設定:
index.routing.allocation.include._tier
index.routing.allocation.exclude._tier
index.routing.allocation.require._tier
影響
削除された設定の使用を中止してください。Elasticsearch 構成でこれらのクラスター設定のいずれかを指定すると、起動時にエラーが発生します。これらの設定を使用しているインデックスは、インデックスメタデータが読み込まれると設定がアーカイブされ(効果はありません)、削除されます。
共有データパスおよびインデックスごとのデータパス設定は非推奨です。
詳細
Elasticsearch は、共有データパスをインデックスごとのデータパスのベースパスとして使用します。この機能は以前、共有レプリカで使用されていました。7.13.0 から、これらの設定は非推奨です。8.0 からは、7.x で作成された既存のインデックスのみが共有データパスおよびインデックスごとのデータパス設定を使用できるようになります。
影響
非推奨設定の使用を中止してください。
単一データノードのウォーターマーク設定は非推奨であり、true
のみを受け入れます。
詳細
7.14 では、cluster.routing.allocation.disk.watermark.enable_for_single_data_node
を false に設定することが非推奨となりました。8.0 からは、唯一の合法的な値は true になります。将来のリリースでは、この設定は完全に削除され、設定が true
の場合と同じ動作になります。
古い動作が単一データノードクラスターに必要な場合、cluster.routing.allocation.disk.threshold_enabled: false
を設定することでディスクベースの割り当てを無効にできます。
影響
非推奨設定の使用を中止してください。
gateway.auto_import_dangling_indices
設定は削除されました。
詳細
gateway.auto_import_dangling_indices
クラスター設定は削除されました。以前は、この設定を使用して dangling indices を自動的にインポートすることができました。しかし、dangling indices を自動的にインポートすることは安全ではありません。代わりに、dangling indices APIs を使用して、dangling indices を管理およびインポートしてください。
影響
削除された設定の使用を中止してください。elasticsearch.yml
で設定を指定すると、起動時にエラーが発生します。
listener
スレッドプールは削除されました。
詳細
以前は、トランスポートクライアントはスレッドプールを使用してリスナーがネットワークスレッドでコールバックされないようにしていました。トランスポートクライアントは 8.0 で削除され、スレッドプールはもはや必要ありません。
影響
listener
スレッドプール設定を elasticsearch.yml
からすべてのノードに削除してください。listener
スレッドプール設定を elasticsearch.yml
で指定すると、起動時にエラーが発生します。
fixed_auto_queue_size
スレッドプールタイプは削除されました。
詳細
fixed_auto_queue_size
スレッドプールタイプは、以前は実験的機能としてマークされており、7.x で非推奨となり、8.0 で削除されました。search
および search_throttled
スレッドプールは現在 fixed
タイプを持っています。
影響
アクションは必要ありません。
いくつかの transport
設定が置き換えられました。
詳細
以下の設定は 7.x で非推奨となり、8.0 で削除されました。各設定には、6.7 で導入された置き換え設定があります。
transport.tcp.port
はtransport.port
に置き換えられましたtransport.tcp.compress
はtransport.compress
に置き換えられましたtransport.tcp.connect_timeout
はtransport.connect_timeout
に置き換えられましたtransport.tcp_no_delay
はtransport.tcp.no_delay
に置き換えられましたtransport.profiles.profile_name.tcp_no_delay
はtransport.profiles.profile_name.tcp.no_delay
に置き換えられましたtransport.profiles.profile_name.tcp_keep_alive
はtransport.profiles.profile_name.tcp.keep_alive
に置き換えられましたtransport.profiles.profile_name.reuse_address
はtransport.profiles.profile_name.tcp.reuse_address
に置き換えられましたtransport.profiles.profile_name.send_buffer_size
はtransport.profiles.profile_name.tcp.send_buffer_size
に置き換えられましたtransport.profiles.profile_name.receive_buffer_size
はtransport.profiles.profile_name.tcp.receive_buffer_size
に置き換えられました
影響
置き換え設定を使用してください。削除された設定の使用を中止してください。elasticsearch.yml
で削除された設定を指定すると、起動時にエラーが発生します。
選択的トランスポート圧縮はデフォルトで有効になっています。
詳細
8.0 より前は、トランスポート圧縮はデフォルトで無効でした。8.0 からは、transport.compress
は indexing_data
にデフォルト設定されます。この構成は、生のインデックスデータの伝播がノード間で圧縮されることを意味します。
影響
ノード間の移動はインデックスパスに沿って減少します。一部のシナリオでは、CPU 使用率が増加する可能性があります。
トランスポート圧縮は lz4 にデフォルト設定されています。
詳細
8.0 より前は、transport.compression_scheme
設定は deflate
にデフォルト設定されていました。8.0 からは、transport.compress_scheme
は lz4
にデフォルト設定されます。
8.0 より前は、cluster.remote.<cluster_alias>.transport.compression_scheme
設定は deflate
にデフォルト設定されていましたが、cluster.remote.<cluster_alias>.transport.compress
が明示的に構成されている場合。8.0 からは、cluster.remote.<cluster_alias>.transport.compression_scheme
はデフォルトで transport.compression_scheme
にフォールバックします。
影響
この構成は、トランスポート圧縮が低い CPU 負荷と引き換えにやや低い圧縮率を生成することを意味します。
repositories.fs.compress
ノードレベル設定は削除されました。
詳細
共有ファイルシステムリポジトリ ("type": "fs"
) のために、ノードレベル設定 repositories.fs.compress
は以前、compress
が指定されていないすべての共有ファイルシステムリポジトリの圧縮を有効にするために使用されていました。repositories.fs.compress
設定は削除されました。
影響
repositories.fs.compress
ノードレベル設定の使用を中止してください。代わりにリポジトリ固有の compress
設定を使用して圧縮を有効にしてください。共有ファイルシステムリポジトリ設定を参照してください。
FIPS モードが有効になっている場合、デフォルトのパスワードハッシュは PBKDF2_STRETCH です。
詳細
xpack.security.fips_mode.enabled
が true の場合(FIPS 140-2を参照)、xpack.security.authc.password_hashing.algorithm
の値は pbkdf2_stretch
にデフォルト設定されます。
以前のバージョンでは、この設定は常に bcrypt
にデフォルト設定され、ランタイムチェックにより、値が明示的に「pbkdf2」バリアントに設定されていない限り、ノードの起動が防止されていました。
FIPS 140 モードを有効にしないクラスターには変更はありません。
影響
この変更は、アップグレードされたノードに影響を与えないはずです。パスワードハッシュアルゴリズムの明示的に構成された値を持つノードは、その構成された値を引き続き使用します。Elasticsearch 6.x または Elasticsearch 7.x で明示的に構成されたパスワードハッシュアルゴリズムを持たないノードは、起動に失敗していました。
xpack.monitoring.history.duration
は metricbeat または elastic agent によって作成されたインデックスを削除しません。
詳細
8.0 より前は、Elasticsearch は xpack.monitoring.history.duration
設定に従ってすべての監視インデックスの削除を内部的に処理していました。
metricbeat または elastic agent >= 8.0 を使用して監視データを収集する場合、インデックスは ILM ポリシーを介して管理されます。設定が存在する場合、ポリシーは xpack.monitoring.history.duration
を初期保持期間として使用して作成されます。
metricbeat で収集された監視データの保持設定をカスタマイズする必要がある場合は、.monitoring-8-ilm-policy
ILM ポリシーを直接更新してください。
xpack.monitoring.history.duration
設定は、(レガシー) 内部収集を使用して書き込まれた監視インデックスにのみ適用され、metricbeat または agent によって作成されたインデックスには適用されません。
影響
アップグレード後、.monitoring-8-ilm-policy
ILM ポリシーが希望する保持設定と一致していることを確認してください。
metricbeat または agent のみを使用して監視データを収集する場合は、カスタム xpack.monitoring.history.duration
設定を削除することもできます。
コマンドラインツールの変更
Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。
elasticsearch-migrate
ツールは削除されました。
詳細
elasticsearch-migrate
ツールは、ファイルレルムのユーザーとロールをネイティブレルムに変換する方法を提供していました。これは Elasticsearch 7.2.0 以降非推奨です。ユーザーとロールは、ネイティブレルムで直接作成する必要があります。
影響
elasticsearch-migrate
ツールの使用を中止してください。elasticsearch-migrate
ツールを使用しようとすると、エラーが発生します。
インデックス設定の変更
システムインデックスへの直接アクセスは非推奨です。
詳細
システムインデックスへの直接アクセスは非推奨であり、将来のバージョンで防止される可能性があります。システムインデックスにアクセスする必要がある場合は、特定のインデックスをターゲットにしたインデックス権限を持つセキュリティロールを作成し、allow_restricted_indices
権限を true
に設定してください。この権限をインデックス権限に追加する方法については、インデックス権限を参照してください。
影響
システムインデックスに直接アクセスすると、APIレスポンスのヘッダーに警告が表示されます。利用可能な場合は、Kibana または関連する機能の Elasticsearch API を使用して、アクセスしたいデータを管理してください。
index.merge.policy.max_merge_at_once_explicit
は非推奨であり、効果はありません。
詳細
index.merge.policy.max_merge_at_once_explicit
インデックス設定は非推奨であり、効果はありません。
以前は、index.merge.policy.max_merge_at_once_explicit
を指定して、強制マージ中または削除されたドキュメントを消去する際に同時にマージするセグメントの最大数を設定することができました。8.0 では、この数は設定に関係なく無制限です。
影響
index.merge.policy.max_merge_at_once_explicit
を指定しても効果はありませんが、非推奨警告が生成されます。
これらの非推奨警告を回避するために、設定の使用を中止してください。新しいインデックスを作成する際に設定を指定せず、インデックスおよびコンポーネントテンプレートから設定を削除してください。
既存のデータストリームまたはインデックスから設定を削除するには、更新インデックス設定 API を使用して設定の値を null
として指定してください。
Python
resp = client.indices.put_settings(
index="my-index-000001",
settings={
"index.merge.policy.max_merge_at_once_explicit": None
},
)
print(resp)
Ruby
response = client.indices.put_settings(
index: 'my-index-000001',
body: {
'index.merge.policy.max_merge_at_once_explicit' => nil
}
)
puts response
Js
const response = await client.indices.putSettings({
index: "my-index-000001",
settings: {
"index.merge.policy.max_merge_at_once_explicit": null,
},
});
console.log(response);
コンソール
PUT my-index-000001/_settings
{
"index.merge.policy.max_merge_at_once_explicit": null
}
index.max_adjacency_matrix_filters
インデックス設定は削除されました。
詳細
index.max_adjacency_matrix_filters
インデックス設定は削除されました。以前は、この設定を使用して 隣接行列集約 の最大フィルター数を構成することができました。indices.query.bool.max_clause_count
インデックス設定が現在、集約の最大フィルター数を決定します。
影響
index.max_adjacency_matrix_filters
インデックス設定の使用を中止してください。
インデックス設定を含むリクエストはエラーを返します。7.x インデックスを持つクラスターをアップグレードすると、Elasticsearch は 設定をアーカイブします。
インデックスおよびコンポーネントテンプレートからインデックス設定を削除してください。この設定を含むテンプレートを使用しようとすると、失敗し、エラーが返されます。これには、ILM ロールオーバーアクションなどの自動化された操作が含まれます。
index.force_memory_term_dictionary
設定は削除されました。
詳細
index.force_memory_term_dictionary
設定は、適切な場合に用語辞書をディスクに残す最適化からユーザーがオプトアウトできるようにするための一時的な手段として 7.0 で導入されました。この最適化は現在必須であり、設定は削除されました。
影響
index.force_memory_term_dictionary
インデックス設定の使用を中止してください。この設定を含むリクエストはエラーを返します。
index.soft_deletes.enabled
設定は削除されました。
詳細
ソフト削除を無効にしてインデックスを作成することは 7.6 で非推奨となり、8.0 ではもはやサポートされていません。index.soft_deletes.enabled
設定はもはや false
に設定できません。
影響
index.soft_deletes.enabled
インデックス設定の使用を中止してください。index.soft_deletes.enabled
を false
に設定するリクエストはエラーを返します。
index.translog.retention.age
および index.translog.retention.size
設定は削除されました。
詳細
トランスログ保持設定 index.translog.retention.age
および index.translog.retention.size
は、7.4 では実質的に無視され、7.7 で非推奨となり、8.0 では ソフト削除 に代わって削除されました。
影響
index.translog.retention.age
および index.translog.retention.size
インデックス設定の使用を中止してください。これらの設定を含むリクエストはエラーを返します。
Java API の変更
indexlifecycle
パッケージは Java High Level REST Client で ilm
に名前が変更されました。
詳細
ハイレベル REST クライアントでは、indexlifecycle
パッケージが Elasticsearch コード内のパッケージ名変更に合わせて ilm
に名前が変更されました。
影響
ilm
パッケージを使用するようにワークフローとアプリケーションを更新してください。indexlifecycle
の代わりに。
Fuzziness
の変更。
詳細
Fuzziness
インスタンスを作成するには、fromString
および fromEdits
メソッドを使用し、以前は文字列と数値の両方を受け入れていた build
メソッドの使用を避けてください。クエリビルダーのいくつかのファジネスセッター(例: MatchQueryBuilder#fuzziness)は、もはやオブジェクトではなく Fuzziness
インスタンスのみを受け入れます。
ファジネスは、任意の数値を解析する際に寛容であり、許可された編集距離 0、1、または 2 のいずれかに静かに切り捨てられていました。この寛容さは現在取り除かれ、他の値(例: 1.3 のような浮動小数点数)でインスタンスを構築しようとするとエラーが発生します。
影響
利用可能な定数(例: Fuzziness.ONE
、Fuzziness.AUTO
)を使用するか、上記のファクトリメソッドを使用して独自のインスタンスを構築してください。許可された Fuzziness
値のみを使用してください。
Repository
の変更。
詳細
リポジトリはもはや IndexShard に依存していません。restoreShard および snapshotShard の契約は、テスト可能性を向上させるために Store および MappingService に縮小されました。
影響
アクションは必要ありません。
JVM オプションの変更
Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。
es.disk.auto_release_flood_stage_block
は削除されました。
詳細
ノードが洪水段階のディスクウォーターマークを超えると、ノードがディスクスペースを完全に使い果たすのを防ぐために、すべてのインデックスにブロックが追加されます。デフォルトでは、7.4 以降、ノードが再び高いウォーターマークを下回ると、ブロックは自動的に削除されますが、この動作はシステムプロパティ es.disk.auto_release_flood_stage_block
を false
に設定することで無効にできます。この動作はもはやオプションではなく、このシステムプロパティは設定しない必要があります。
影響
es.disk.auto_release_flood_stage_block
システムプロパティの使用を中止してください。このシステムプロパティを設定すると、起動時にエラーが発生します。
es.rest.url_plus_as_space
は削除されました。
詳細
バージョン 7.4 以降、URL 内の +
はすべての REST API 機能によって %2B
としてエンコードされます。以前のバージョンでは、+
は単一のスペースとして処理されていました。これらの以前のバージョンで、アプリケーションが +
を単一のスペースとして処理する必要がある場合は、システムプロパティ es.rest.url_plus_as_space
を true
に設定することで古い動作に戻すことができました。この動作は非推奨であり、このシステムプロパティを true
に設定することは、バージョン 8 ではサポートされなくなります。
影響
アプリケーションまたはワークフローを更新して、URL 内の +
が %2B
としてエンコードされることを前提としてください。
es.unsafely_permit_handshake_from_incompatible_builds
は削除されました。
詳細
Elasticsearch には、同じバージョンのノードのペアが正確に同じビルドを実行していることを確認するチェックがあります。以前のバージョンでは、このチェックはシステムプロパティ es.unsafely_permit_handshake_from_incompatible_builds
を true
に設定することで回避できました。このシステムプロパティの使用は現在禁止されています。
影響
es.unsafely_permit_handshake_from_incompatible_builds
システムプロパティの使用を中止し、同じバージョンのすべてのノードが正確に同じビルドを実行していることを確認してください。このシステムプロパティを設定すると、起動時にエラーが発生します。
ログの変更
Elasticsearch の JSON ログは現在 ECS に準拠しています。
詳細
Elasticsearch の JSON ログ は現在、Elastic Common Schema (ECS) に準拠しています。以前は、Elasticsearch の JSON ログはカスタムスキーマを使用していました。
影響
アプリケーションが Elasticsearch の JSON ログを解析する場合は、新しい ECS 形式をサポートするように更新してください。
Elasticsearch はもはや非推奨ログや遅延ログをプレーンテキストで出力しません。
詳細
Elasticsearch は以下のログのプレーンテキストバージョンをもはや出力しません:
- 非推奨ログ
- インデクシング遅延ログ
- 検索遅延ログ
これらのログは現在、JSON のみで利用可能です。
サーバーログは引き続き JSON とプレーンテキスト形式の両方で利用可能です。
影響
アプリケーションが Elasticsearch のプレーンテキストログを解析する場合は、新しい ECS JSON ログを使用するように更新してください。
監査ログはサイズによってロールオーバーおよびアーカイブされます。
詳細
既存の毎日のロールオーバーに加えて、セキュリティ監査ログはディスクサイズ制限によってもロールオーバーされます。さらに、ロールオーバーされたログは gzip 圧縮されます。
影響
ロールオーバーされた監査ログファイルの名前(現在のログの名前ではありません)は変更されました。これらのファイルを消費するために自動化ツールを設定している場合は、新しい名前を使用するように構成し、プレーンテキストの代わりに gzip
アーカイブを考慮する必要があります。Elasticsearch の Docker ビルドは、ロールオーバーが行われない stdout
でログを記録するため、影響を受けません。
マッピングの変更
Elasticsearch 6.x およびそれ以前のバージョンで作成されたインデックスはサポートされていません。
詳細
Elasticsearch 8.0 は、バージョン 7.0 以上で作成されたインデックスを読み取ることができます。Elasticsearch 8.0 ノードは、バージョン 7.0 より前の Elasticsearch で作成されたインデックスが存在する場合、起動しません。
影響
Elasticsearch 8.x に持ち越す必要がある場合は、Elasticsearch 6.x またはそれ以前で作成されたインデックスを Elasticsearch 7.x で再インデックス化してください。
Elasticsearch 6.x およびそれ以前のバージョンで作成されたクローズされたインデックスはサポートされていません。
詳細
以前のバージョンでは、ノードは、インデックスがクローズされている限り、前のメジャーバージョンより前のバージョンで作成されたデータを持っていても起動しました。Elasticsearch は現在、起動時にすべてのインデックス(オープンまたはクローズ)との互換性を確保しています。
影響
Elasticsearch 8.x に持ち越す必要がある場合は、Elasticsearch 6.x またはそれ以前で作成されたクローズされたインデックスを Elasticsearch 7.x で再インデックス化してください。
フィールドごとの最大完了コンテキスト数は現在 10 です。
詳細
単一の完了フィールド内の完了コンテキストの数は 10 に制限されています。
影響
完了フィールド内で最大 10 の完了コンテキストを使用してください。10 を超える完了コンテキストを指定するとエラーが返されます。
マルチフィールド内のマルチフィールドはもはやサポートされていません。
詳細
以前は、マルチフィールド内にマルチフィールドを定義することが可能でした。チェーンされたマルチフィールドの定義は 7.3 で非推奨となり、現在はサポートされていません。
影響
マッピングを移行するには、fields
ブロック内に存在するすべての fields
のインスタンスを削除する必要があります。これは、チェーンされた fields
ブロックを単一レベルにフラット化するか、適切であれば copy_to
に切り替えることによって行います。
_field_names
メタデータフィールドの enabled
パラメータは削除されました。
詳細
この設定は 7.5 で非推奨となり、新しいインデックスではサポートされていません。古いインデックスのマッピングは引き続き機能しますが、非推奨の警告が表示されます。
影響
enabled
設定は _field_names
からテンプレートおよびマッピングから削除する必要があります。_field_names を無効にする必要はありません。なぜなら、もはや大きなインデックスオーバーヘッドを持たないからです。
フィールドマッピングの boost
パラメータは削除されました。
詳細
インデックス時のブーストは 5x 系列から非推奨となりましたが、マッピング内でフィールド固有のブーストを宣言することはまだ可能でした。これは現在完全に削除されました。7x で構築されたインデックスにマッピングブーストが含まれている場合、警告が表示され、ブーストは 8.0 では効果がありません。新しいインデックスでは、マッピングにブーストを設定することはまったく許可されません。
影響
boost
設定はテンプレートおよびマッピングから削除する必要があります。代わりにクエリで直接ブーストを使用してください。
Java 時間形式は joda 時間形式に取って代わります。
詳細
7.0 では、Elasticsearch は日付関連の解析、フォーマット、および計算のために joda 時間から java 時間に切り替えました。7.0 およびそれ以降のバージョンで作成されたインデックスは、すでに java 時間形式のマッピングを使用する必要があります。ただし、joda 時間形式を使用している以前のインデックスは、java 時間形式のマッピングを使用するために再インデックス化する必要があります。
影響
詳細な移行ガイドについては、Java 時間移行ガイドを参照してください。
いくつかの geo_shape
マッピングパラメータが削除されました。
詳細
次の geo_shape
マッピングパラメータは 6.6 で非推奨となりました:
tree
tree_levels
strategy
distance_error_pct
これらのパラメータは 8.0.0 で削除されました。
影響
8.0 では、これらのパラメータを含むマッピングを作成することはできません。ただし、これらのマッピングパラメータを使用している 7.x インデックスは引き続き機能します。
sparse_vector
フィールドデータ型は削除されました。
詳細
sparse_vector
フィールドタイプは 7.6 で非推奨となり、8.0 で削除されました。この実験的フィールドタイプにはあまり関心が見られず、現在の設計では明確なユースケースが見られません。スパースベクトル機能に関するフィードバックや提案がある場合は、GitHub または discuss フォーラムを通じてお知らせください。
影響
sparse_vector
フィールドデータ型の使用を中止してください。このフィールドデータ型のマッピングを含むリクエストはエラーを返します。
パッケージングの変更
Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。
データフォルダーのレイアウトが変更されました。
詳細
各ノードのデータは、path.data
設定によって設定されたデータディレクトリに直接保存されるようになりました。${path.data}/nodes/0
ではなく、node.max_local_storage_nodes
設定の削除により、ノードはもはやデータパスを共有できなくなりました。
影響
起動時に、Elasticsearch は自動的にデータパスを新しいレイアウトに移行します。この自動移行は、データパスに複数のノードのデータが含まれている場合は進行しません。アップグレードする前に、各ノードが独自のデータパスを持つ構成に移行する必要があります。
データパスに複数のノードのデータが含まれている構成をアップグレードしようとすると、自動移行は失敗し、Elasticsearch は起動を拒否します。これを解決するには、手動で移行を行う必要があります。追加のノードのデータは、${path.data}/nodes/1
、${path.data}/nodes/2
などと名付けられたフォルダーに保存されており、これらのフォルダーを適切な場所に移動し、対応するノードをこの場所でデータパスを使用するように構成する必要があります。各ノードが path.data
設定で複数のデータパスを持っている場合は、すべての対応するサブフォルダーを並行して移動する必要があります。各ノードは、すべてのデータパスで同じサブフォルダー (例: nodes/2
) を使用します。
デフォルトの Maxmind geoip データベースは削除されました。
詳細
デフォルトの Maxmind geoip データベースは、Elasticsearch にデフォルトで付属していたものが削除されました。これらのデータベースは古く、時代遅れであり、これらのデータベースを使用すると、geoip ルックアップが不正確になる可能性があります。
デフォルトでは、7.13 以降、これらの事前パッケージ化された geoip データベースが、構成ディレクトリにデータベースが指定されていない場合や、geoip ダウンローダーが geoip データベースをダウンロードする前に使用されました。geoip データベースダウンローダーが新しいデータベースのダウンロードを完了すると、これらの事前パッケージ化されたデータベースはもはや使用されません。
影響
geoip ダウンローダーが無効になっていて、各インジェストノードの構成ディレクトリに geoip データベースが提供されていない場合、geoip プロセッサはもはや geoip ルックアップを実行せず、要求されたデータベースが利用できないことを示すタグをこれらのドキュメントに付けます。
クラスターが起動した後、geoip ダウンローダーが最新のデータベースのダウンロードを完了する前に、geoip プロセッサは geoip ルックアップを実行せず、要求されたデータベースが利用できないことを示すタグをドキュメントに付けます。geoip ダウンローダーが最新のデータベースのダウンロードを完了すると、geoip プロセッサは通常通り機能します。クラスターの起動後、geoip プロセッサが geoip ルックアップを実行できない時間のウィンドウは非常に短いはずです。
Painless の変更
JodaCompatibleZonedDateTime
クラスは削除されました。
詳細
Joda 日時から Java 日時への移行として、スクリプトは JodaCompatibleZonedDateTime
という中間クラスを使用していました。このクラスは削除され、ZonedDateTime
に置き換えられました。スクリプト内で JodaCompatibleZonedDateTime
へのキャストや、JodaCompatibleZonedDateTime
でのみ利用可能なメソッド呼び出しを使用すると、コンパイルエラーが発生し、アップグレードされたノードが起動しない可能性があります。
影響
アップグレードする前に、スクリプト内の getDayOfWeek
を getDayOfWeekEnum().value
に置き換えてください。getDayOfWeek
の使用で int
の戻り値を期待すると、コンパイルエラーまたはランタイムエラーが発生し、アップグレードされたノードが起動しない可能性があります。
次の JodaCompatibleZonedDateTime
メソッドは、アップグレード前に ZonedDateTime
メソッドに置き換える必要があります:
getMillis()
→toInstant().toEpochMilli()
getCenturyOfEra()
→get(ChronoField.YEAR_OF_ERA) / 100
getEra()
→get(ChronoField.ERA)
getHourOfDay()
→getHour()
getMillisOfDay()
→get(ChronoField.MILLI_OF_DAY)
getMillisOfSecond()
→get(ChronoField.MILLI_OF_SECOND)
getMinuteOfDay()
→get(ChronoField.MINUTE_OF_DAY)
getMinuteOfHour()
→getMinute()
getMonthOfYear()
→getMonthValue()
getSecondOfDay()
→get(ChronoField.SECOND_OF_DAY)
getSecondOfMinute()
→getSecond()
getWeekOfWeekyear()
→get(IsoFields.WEEK_OF_WEEK_BASED_YEAR)
getWeekyear()
→get(IsoFields.WEEK_BASED_YEAR)
getYearOfCentury()
→get(ChronoField.YEAR_OF_ERA) % 100
getYearOfEra()
→get(ChronoField.YEAR_OF_ERA)
toString(String)
→ DateTimeFormattertoString(String, Locale)
→ DateTimeFormatter
プラグインの変更
Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。
S3、GCS、および Azure リポジトリプラグインは、Elasticsearch に含まれるようになりました。
詳細
以前のバージョンの Elasticsearch では、Amazon S3、Google Cloud Storage (GCS)、または Microsoft Azure Blob Storage にバックアップされたスナップショットリポジトリを登録するには、まず対応する Elasticsearch プラグインをインストールする必要がありました。たとえば、repository-s3
のようにです。これらのプラグインは、現在 Elasticsearch にデフォルトで含まれています。
影響
次のプラグインをインストールする必要はなく、試みるべきではありません。
repository-azure
repository-gcs
repository-s3
Elasticsearch と elasticsearch-plugin
CLI ツールは、これらのプラグインのインストールおよび削除の試行を許容するように変更され、既存の自動化が壊れないようにしています。将来的には、これらのプラグインをインストールしようとするとエラーになります。
具体的には、elasticsearch-plugin
CLI ツールは、上記のプラグインのいずれかをインストールしようとすると失敗せず、警告を表示してプラグインをスキップします。これらのプラグインがすでにインストールされている場合(たとえば、古いバージョンの Elasticsearch を実行しているときにインストールした場合)、elasticsearch-plugin
を使用して削除できます。インストールされていない場合に削除を試みると成功しますが、警告が表示されます。
Docker を使用して Elasticsearch を実行し、構成ファイルを使用してプラグインを管理している場合、Elasticsearch をアップグレードした後に最初に起動すると、すでにインストールされている場合は上記のプラグインが削除されます。構成ファイルにこれらのプラグインが指定されている場合、Elasticsearch はそれらを無視し、警告ログメッセージを出力します。
サードパーティのプラグインはもはや REST リクエストをインターセプトできません (RestHandlerWrapper
)
詳細
以前のバージョンの Elasticsearch では、サードパーティのプラグインが getRestHandlerWrapper
メソッドを実装してノードへのすべての REST リクエストをインターセプトできました。この機能の一般的な使用法は、組み込みのセキュリティ機能を置き換えるカスタムセキュリティプラグインを実装することでした。この拡張ポイントは、サードパーティのプラグインにはもはや利用できません。
影響
以前のバージョンの Elasticsearch と互換性のあるように設計されたサードパーティのプラグインは、Elasticsearch バージョン 8.0 以降と互換性がない可能性があります。
Elastic によって製造およびサポートされていないプラグインに依存している場合は、プラグインの作成者に確認し、アップグレード前にターゲットバージョンの Elasticsearch にプラグインが利用可能であることを確認してください。
REST API changes
REST API エンドポイントに _xpack
が含まれているものは削除されました。
詳細
7.0 では、パスに _xpack
を含む REST エンドポイントが非推奨となりました。これらのエンドポイントは 8.0 で削除されました。非推奨となり削除された各エンドポイントは、_xpack
を含まない新しいエンドポイントに置き換えられました。例えば、/{index}/_xpack/graph/_explore
は /{index}/_graph/explore
に置き換えられます。
影響
置き換えられた REST API エンドポイントを使用してください。_xpack
API エンドポイントに送信されたリクエストはエラーを返します。
互換性
rest-api-compatibility が 要求された場合、_xpack
プレフィックスを含むリクエストは、_xpack
プレフィックスなしの対応する URL にリダイレクトされます。
マッピングタイプを含む REST API エンドポイントは削除されました。
詳細
マッピングタイプは削除されました。マッピングタイプを含む API エンドポイントも削除されました。代わりにタイプなしのエンドポイントを使用してください。
API | タイプ付き API エンドポイント | タイプなし API エンドポイント |
---|---|---|
Bulk | <target>/<type>/_bulk |
<target>/_bulk |
Count | <target>/<type>/_count |
<target>/_count |
Delete | <index>/<type>/<_id> |
<index>/_doc/<_id> |
Delete by query | <target>/<type>/_delete_by_query |
<target>/_delete_by_query |
Explain | <index>/<type>/<_id>/_explain |
<index>/_explain/<_id> |
Get | <index>/<type>/<_id> |
<index>/_doc/<_id> |
<index>/<type>/<_id>/_source |
<index>/_source/<_id> |
|
Get field mapping | _mapping/<type>/field/<field> |
_mapping/field/<field> |
<target>/_mapping/<type>/field/<field> |
<target>/_mapping/field/<field> |
|
Get mapping | _mapping/<type> |
_mapping または <target>/_mapping |
<target>/<type>/_mapping |
<target>/_mapping |
|
<target>/_mapping/<type> |
<target>/_mapping |
|
Graph explore | <index>/<type>/_graph/explore |
<index>/_graph/explore |
Index | <target>/<type>/<_id>/_create |
<target>/_create/<_id> |
<target>/<type> |
<target>/_doc |
|
<target>/<type>/<_id> |
<target>/_doc/<_id> |
|
Multi get | <index>/<type>/_mget |
<index>/_mget |
Multi search | <target>/<type>/_msearch |
<target>/_msearch |
Multi search template | <target>/<type>/_msearch/template |
<target>/_msearch/template |
Multi term vectors | <index>/<type>/_mtermvectors |
<index>/_mtermvectors |
Rollup search | <target>/<type>/_rollup_search |
<target>/_rollup_search |
Search | <target>/<type>/_search |
<target>/_search |
Search template | <target>/<type>/_search/template |
<target>/_search/template |
Term vectors | <index>/<mapping_type>/<_id>/_termvectors |
<index>/_termvectors<_id> |
<index>/<mapping_type>/_termvectors |
<index>/_termvectors |
|
Update | <index>/<type>/<_id>/_update |
<index>/_update/<_id> |
Update by query | <target>/<type>/_update_by_query |
<target>/_update_by_query |
Update mapping | <target>/<type>/_mapping |
<target>/_mapping |
<target>/_mapping/<type> |
<target>/_mapping |
|
_mapping/<type> |
<target>/_mapping |
|
Validate | <target>/<type>/_validate/query |
<target>/_validate/query |
影響
アプリケーションを更新して、タイプなしの REST API エンドポイントを使用してください。マッピングタイプを含むエンドポイントへのリクエストはエラーを返します。
互換性
rest-api-compatibility が 要求された場合、カスタムマッピングタイプを含むリクエストは無視されます。リクエストは対応するタイプなしの URL にリダイレクトされます。リクエストボディ内のカスタムマッピングタイプとタイプ関連の HTTP パラメータは無視され、必要に応じてレスポンスには _type
: _doc
が含まれます。
クロスクラスタ検索 (CCS) は、現在、前のマイナーバージョンとのみ後方互換性があります。
詳細
8.0以降、Elasticはローカルクラスターから次のようなリモートクラスターへの検索をサポートしています:
- 前のマイナーバージョン。
- 同じバージョン。
- 同じメジャーバージョン内の新しいマイナーバージョン。
Elasticは、メジャーバージョンの最後のマイナーバージョンを実行しているローカルクラスターから、次のメジャーバージョンの任意のマイナーバージョンを実行しているリモートクラスターへの検索もサポートしています。たとえば、ローカルの7.17クラスターは、任意のリモート8.xクラスターを検索できます。
| | | | | | | | | | | | | | | | | | | | |
| —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- |
| | リモートクラスターのバージョン |
| ローカルクラスターのバージョン | 6.8 | 7.1–7.16 | 7.17 | 8.0 | 8.1 | 8.2 | 8.3 | 8.4 | 8.5 | 8.6 | 8.7 | 8.8 | 8.9 | 8.10 | 8.11 | 8.12 | 8.13 | 8.14 | 8.15 |
| 6.8 | | | | | | | | | | | | | | | | | | | |
| 7.1–7.16 | | | | | | | | | | | | | | | | | | | |
| 7.17 | | | | | | | | | | | | | | | | | | | |
| 8.0 | | | | | | | | | | | | | | | | | | | |
| 8.1 | | | | | | | | | | | | | | | | | | | |
| 8.2 | | | | | | | | | | | | | | | | | | | |
| 8.3 | | | | | | | | | | | | | | | | | | | |
| 8.4 | | | | | | | | | | | | | | | | | | | |
| 8.5 | | | | | | | | | | | | | | | | | | | |
| 8.6 | | | | | | | | | | | | | | | | | | | |
| 8.7 | | | | | | | | | | | | | | | | | | | |
| 8.8 | | | | | | | | | | | | | | | | | | | |
| 8.9 | | | | | | | | | | | | | | | | | | | |
| 8.10 | | | | | | | | | | | | | | | | | | | |
| 8.11 | | | | | | | | | | | | | | | | | | | |
| 8.12 | | | | | | | | | | | | | | | | | | | |
| 8.13 | | | | | | | | | | | | | | | | | | | |
| 8.14 | | | | | | | | | | | | | | | | | | | |
| 8.15 | | | | | | | | | | | | | | | | | | | |
EQL 検索 API では、ローカルおよびリモートクラスタは、7.17.7 (含む) より前または 8.5.1 (含む) より前のバージョンを使用している場合、同じ Elasticsearch バージョンを使用する必要があります。
たとえば、ローカルの8.0クラスターは、リモートの7.17または任意のリモート8.xクラスターを検索できます。ただし、ローカルの8.0クラスターからリモートの7.16または6.8クラスターへの検索はサポートされていません。
以前は、リモートクラスタでの検索もサポートしていました:
- ローカルクラスタのメジャーバージョンの任意のマイナーバージョン。
- 前のメジャーバージョンの最後のマイナーリリース。
ただし、そのような検索は未定義の動作を引き起こす可能性があります。
影響
同じバージョンまたは新しいバージョンを使用しているリモートクラスタでのみクロスクラスタ検索を実行する場合、変更は必要ありません。
以前に Elasticsearch の古いバージョンを実行しているリモートクラスタで検索していた場合は、推奨される解決策について クロスクラスタ検索サポートを確認する を参照してください。
サポートされていない構成を使用したクロスクラスター検索は、まだ機能する可能性があります。ただし、そのような検索はElasticによってテストされておらず、その動作は保証されていません。
terms
集約はもはや _term
順序キーをサポートしていません。
詳細
terms
集約はもはや _term
キーを order
値でサポートしていません。バケットをその用語でソートするには、_key
を代わりに使用してください。
影響
_term
順序キーの使用を中止してください。_term
順序キーを含むリクエストはエラーを返します。
互換性
rest-api-compatibility が 要求された場合、_term
順序は無視され、key
が代わりに使用されます。
date_histogram
集約はもはや _time
順序キーをサポートしていません。
詳細
date_histogram
集約はもはや _time
キーを order
値でサポートしていません。バケットをそのキーでソートするには、_key
を代わりに使用してください。
影響
_time
順序キーの使用を中止してください。_time
順序キーを含むリクエストはエラーを返します。
互換性
rest-api-compatibility が 要求された場合、_time
順序は無視され、_key
が代わりに使用されます。
moving_avg
集約は削除されました。
詳細
moving_avg
集約は 6.4 で非推奨となり、削除されました。移動平均を計算するには、代わりに moving_fn
集約 を使用してください。
影響
moving_avg
集約の使用を中止してください。moving_avg
集約を含むリクエストはエラーを返します。
percentiles
集約の percents
パラメータはもはや重複値をサポートしていません。
詳細
percentiles
集約 に percents
パラメータを指定する場合、その値は一意でなければなりません。そうでない場合、例外が発生します。
影響
percentiles
集約の percents
パラメータに一意の値を使用してください。percents
パラメータに重複値が含まれるリクエストはエラーを返します。
date_histogram
集約の interval
パラメータはもはや有効ではありません。
詳細
date_histogram
集約 または https://www.elastic.co/guide/en/elasticsearch/reference/8.15/search-aggregations-bucket-composite-aggregation.html#_date_histogram に interval
パラメータを指定することはエラーとなります。代わりに、calendar_interval
または fixed_interval
を適切に使用してください。
影響
date_histogram
集約または date_histogram
コンポジットソースでの interval
パラメータの使用は、今後エラーを生成します。代わりに、より具体的な fixed_interval
または calendar_interval
パラメータを使用してください。
互換性
rest-api-compatibility が 要求された場合、interval
パラメータは固定またはカレンダー間隔に適応されます。
nGram
および edgeNGram
トークンフィルタ名は削除されました。
詳細
nGram
および edgeNGram
トークンフィルタ名は 6.4 から非推奨となり、削除されました。両方のトークンフィルタは、7.0 以降は代替名 ngram
および edge_ngram
のみで使用できます。
影響
同等の ngram
および edge_ngram
トークンフィルタを使用してください。nGram
および edgeNGram
トークンフィルタ名を含むリクエストはエラーを返します。
nGram
および edgeNGram
トークナイザ名は削除されました。
詳細
nGram
および edgeNGram
トークナイザ名は 7.6 で非推奨となり、新しいインデックスではサポートされなくなりました。7.6 以降に作成されたインデックスのマッピングは引き続き機能しますが、非推奨警告が表示されます。新しいインデックスおよびインデックステンプレートでは、トークナイザ名を完全に同等の ngram
または edge_ngram
名に変更する必要があります。
影響
ngram
および edge_ngram
トークナイザを使用してください。nGram
および edgeNGram
トークナイザ名を使用して新しいインデックスを作成するリクエストはエラーを返します。
in_flight_requests
スタットは、ログおよび診断 API で inflight_requests
に名前が変更されました。
詳細
ログ出力および診断 API (ノード統計 API など) でのフライト中のリクエストのサーキットブレーカーの名前が in_flight_requests
から inflight_requests
に変更され、対応する設定の名前と一致するようになりました。
影響
ワークフローとアプリケーションを更新して、inflight_requests
スタットを in_flight_requests
の代わりに使用してください。
投票設定除外 API エンドポイントが変更されました。
詳細
POST /_cluster/voting_config_exclusions/{node_filter}
API は、除外するノードの名前または ID を指定できる POST /_cluster/voting_config_exclusions?node_names=...
および POST /_cluster/voting_config_exclusions?node_ids=...
に置き換えられました。
影響
POST /_cluster/voting_config_exclusions?node_ids=...
を使用し、ノードフィルタを使用する代わりに除外するノードを指定してください。/_cluster/voting_config_exclusions/{node_filter}
エンドポイントに送信されたリクエストはエラーを返します。
リモートシステムインデックスは、自動フォローパターンに一致する場合、自動的にはフォロワーとして追跡されません。
詳細
自動フォローパターンに一致するリモートシステムインデックスは、自動的にフォロワーインデックスとして構成されません。
影響
望ましい動作である場合は、リモートシステムインデックスをフォローするために明示的に フォロワーインデックスを作成する してください。
EQL wildcard
関数は削除されました。
詳細
wildcard
関数は Elasticsearch 7.13.0 で非推奨となり、削除されました。
影響
代わりに like
または regex
キーワード を使用してください。
ILM freeze
アクションは現在、何もしない操作です。
詳細
ILM フリーズアクションは現在、何もしない操作であり、インデックスに対して何のアクションも実行しません。フリーズ API エンドポイントは 8.0 で削除されました。
影響
ILM ポリシーを更新して、freeze
アクションを cold
フェーズから削除してください。
ILM ポリシーの追加検証。
詳細
ILM ポリシーを作成または更新するには、参照されるスナップショットリポジトリと SLM ポリシーが存在する必要があります。
影響
コードまたは構成管理を更新して、リポジトリと SLM ポリシーがそれらを参照するポリシーの前に作成されることを確認してください。
非推奨の _upgrade
APIは削除されました。
詳細
以前は、_upgrade
APIが前のメジャーバージョンから現在のバージョンにインデックスをアップグレードしていました。_reindex
APIをその目的のために使用する必要があります。
影響
古い _upgrade
APIへのリクエストはエラーを返します。
非推奨のフリーズインデックスAPIは削除されました。
詳細
フリーズインデックスAPI(POST /<index>/_freeze
)は削除されました。ヒープメモリ使用量の改善により、インデックスをフリーズする理由が排除されました。既存のフリーズされたインデックスを解除するには、アンフリーズインデックスAPIを使用できます。一部のユースケースでは、フローズンティアがフリーズされたインデックスの適切な代替となる場合があります。詳細についてはデータティアを参照してください。
影響
古いフリーズインデックスAPIへのリクエストはエラーを返します。
force merge APIのmax_num_segments
およびonly_expunge_deletes
パラメータは、同じリクエストで両方を指定することはできません。
詳細
以前は、force merge APIはonly_expunge_deletes
およびmax_num_segments
パラメータを同時にデフォルト以外の値に設定することを許可していました。しかし、max_num_segments
はonly_expunge_deletes
がtrue
に設定されているときに静かに無視され、適用されたという誤った印象を与えていました。
影響
force merge APIを使用する際は、max_num_segments
およびonly_expunge_deletes
パラメータの両方に値を指定しないでください。両方のパラメータに値を含むリクエストはエラーを返します。
createまたはupdate index template APIのtemplate
パラメータは削除されました。
詳細
6.0では、createまたはupdate index templateリクエストでtemplate
パラメータを非推奨とし、index_patterns
の使用を推奨しました。template
パラメータのサポートは8.0で削除されました。
影響
createまたはupdate index template APIのindex_patterns
パラメータを使用してください。template
パラメータを含むリクエストはエラーを返します。
互換性
rest-api-compatibilityが要求された場合、template
パラメータはindex_patterns
にマッピングされます。
同期フラッシュは削除されました。
詳細
同期フラッシュは7.6で非推奨となり、8.0で削除されました。代わりに通常のフラッシュを使用してください。これは7.6以降の同期フラッシュと同じ効果があります。
影響
flush APIを使用してください。/<index>/flush/synced
または/flush/synced
エンドポイントへのリクエストはエラーを返します。
互換性
rest-api-compatibilityが要求された場合、同期フラッシュへのリクエストは同等の非同期フラッシュURLにルーティングされます。
close index APIの?wait_for_active_shards
パラメータのデフォルトが変更されました。
詳細
以前のバージョンでインデックスを閉じるとき、デフォルトではElasticsearchは閉じたインデックスのシャードが適切に割り当てられるのを待たずに返されました。8.0以降のデフォルトの動作は、index.write.wait_for_active_shards
インデックス設定に従ってシャードが割り当てられるのを待つことです。
影響
新しい動作を受け入れるか、必要に応じて?wait_for_active_shards=0
を指定して古い動作を保持してください。
index stats APIのtypes
クエリパラメータは削除されました。
詳細
index stats APIのtypes
クエリパラメータは削除されました。以前は、types
をindexing
クエリパラメータと組み合わせて特定のマッピングタイプのインデックス統計を返すことができました。マッピングタイプは8.0で削除されました。
影響
types
クエリパラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。
互換性
rest-api-compatibilityが要求された場合、types
クエリパラメータは無視され、インデックス全体の統計が返されます。
user_agent
インジェストプロセッサのecs
パラメータは効果がありません。
詳細
7.2では、ecs
パラメータがuser_agent
インジェストプロセッサに対して非推奨となりました。8.xでは、user_agent
インジェストプロセッサは、ecs
値に関係なくElastic Common Schema (ECS)フィールドのみを返します。
影響
非推奨警告を避けるために、インジェストパイプラインからパラメータを削除してください。パイプラインがecs
値を指定している場合、その値は無視されます。
include_type_name
クエリパラメータは削除されました。
詳細
include_type_name
クエリパラメータはインデックス作成、インデックステンプレート、およびマッピングAPIから削除されました。以前は、include_type_name
をtrue
に設定して、リクエストとレスポンスにマッピングタイプ名を含めることができました。マッピングタイプは8.xで削除されました。
影響
include_type_name
クエリパラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。
互換性
rest-api-compatibilityが要求された場合、include_type_name
クエリパラメータは無視され、リクエスト内のカスタムマッピングタイプは削除されます。
リモートからの再インデックスは、URLエンコードされたインデックス名を再エンコードします。
詳細
リモートからの再インデックスは以前、URLエンコードされたインデックス名を許可し、リモートホストの検索リクエストを生成する際に再エンコードしませんでした。この寛容さは削除され、再インデックスがリモート検索リクエストを生成する際にすべてのインデックス名が正しくエンコードされるようになりました。
影響
リモートリクエストのためにエンコードされていないインデックス名を指定してください。
再インデックス、クエリによる削除、およびクエリによる更新APIでは、size
パラメータの名前が変更されました。
詳細
以前、_reindex
リクエストはボディ内に2つの異なるサイズ仕様を持っていました:
- 外部レベル、処理する最大ドキュメント数を決定
source
要素内、スクロール/バッチサイズを決定。
外部レベルのsize
パラメータは、混乱を避けるためにmax_docs
に名前が変更され、意味が明確になりました。
同様に、size
パラメータはmax_docs
に、_delete_by_query
および_update_by_query
に名前が変更され、3つのインターフェースの一貫性が保たれました。
影響
置き換えパラメータを使用してください。size
パラメータを含むリクエストはエラーを返します。
互換性
rest-api-compatibilityが要求された場合、size
パラメータはmax_docs
パラメータにマッピングされます。
クエリによる更新APIは、サポートされていないscript
フィールドを拒否します。
詳細
サポートされていないフィールドをscript
オブジェクトに含む更新によるクエリAPIリクエストは、現在エラーを返します。以前は、APIはこれらのサポートされていないフィールドを静かに無視していました。
影響
エラーを避けるために、script
オブジェクトからサポートされていないフィールドを削除してください。
cat node APIのlocal
クエリパラメータは削除されました。
詳細
?local
パラメータはGET _cat/nodes
APIで7.xで非推奨となり、8.0で拒否されます。このパラメータは、APIがマスターからのクラスター状態ではなく、ローカルクラスター状態を使用してAPIによって返されるノードを決定する原因となりましたが、このAPIは?local
パラメータに関係なく、選択された各ノードから情報を要求します。これは、このAPIが完全にノードローカルな方法で実行されないことを意味します。
影響
?local
クエリパラメータの使用を中止してください。cat node APIリクエストにこのパラメータが含まれていると、エラーが返されます。
cat shard APIのlocal
クエリパラメータは削除されました。
詳細
?local
パラメータはGET _cat/shards
APIで7.xで非推奨となり、8.0で拒否されます。このパラメータは、APIがマスターからのクラスター状態ではなく、ローカルクラスター状態を使用してAPIによって返されるノードを決定する原因となりましたが、このAPIは?local
パラメータに関係なく、選択された各ノードから情報を要求します。これは、このAPIが完全にノードローカルな方法で実行されないことを意味します。
影響
?local
クエリパラメータの使用を中止してください。cat shards APIリクエストにこのパラメータが含まれていると、エラーが返されます。
cat indices APIのlocal
クエリパラメータは削除されました。
詳細
?local
パラメータはGET _cat/indices
APIで7.xで非推奨となり、8.0で拒否されます。このパラメータは、APIがマスターからのクラスター状態ではなく、ローカルクラスター状態を使用してAPIによって返されるノードを決定する原因となりましたが、このAPIは?local
パラメータに関係なく、選択された各ノードから情報を要求します。これは、このAPIが完全にノードローカルな方法で実行されないことを意味します。
影響
?local
クエリパラメータの使用を中止してください。cat indices APIリクエストにこのパラメータが含まれていると、エラーが返されます。
get field mapping APIのlocal
クエリパラメータは削除されました。
詳細
get field mapping APIのlocal
パラメータは7.8で非推奨となり、8.0で削除されます。このパラメータは無操作であり、フィールドマッピングは常にローカルで取得されます。
影響
local
クエリパラメータの使用を中止してください。get field mapping APIリクエストにこのパラメータが含まれていると、エラーが返されます。
ジョブAPIへのデータのポストは非推奨です。
詳細
機械学習のジョブAPIへのデータのポストは7.11.0から非推奨となり、将来のメジャーバージョンで削除されます。
影響
代わりにdatafeedsを使用してください。
job_id
プロパティはUpdate datafeeds APIから削除されました。
詳細
データフィード内のjob_id
を更新する機能は7.3.0で非推奨となり、8.0で削除されました。
影響
異常検出ジョブ間でデータフィードを移動することはできません。
リポジトリの作成および削除APIは、リポジトリが使用中の場合に409
ステータスコードを返します。500
の代わりに。
詳細
スナップショットリポジトリの作成または更新APIおよびスナップショットリポジトリの削除APIは、リクエストが使用中の既存のリポジトリを変更しようとする場合に409
ステータスコードを返します。500
のステータスコードの代わりに。
影響
リポジトリの作成および削除を処理するクライアントコードを更新して、この変更を反映させてください。
allow_no_datafeeds
プロパティは機械学習APIから削除されました。
詳細
allow_no_datafeeds
プロパティは、cat datafeeds、get datafeeds、get datafeed statistics、およびget anomaly detection jobs APIで7.10.0で非推奨となりました。
影響
allow_no_match
を代わりに使用してください。
allow_no_jobs
プロパティは機械学習APIから削除されました。
詳細
allow_no_jobs
プロパティは、cat anomaly detectors、close anomaly detection jobs、get anomaly detection jobs、get anomaly detection job statistics、およびget overall buckets APIで7.10.0で非推奨となりました。
影響
allow_no_match
を代わりに使用してください。
StartRollupJobエンドポイントは、ジョブがすでに開始されている場合に成功ステータスを返します。
詳細
以前は、すでに開始されたロールアップジョブを開始しようとすると、500 InternalServerError: Cannot start task for Rollup Job
[job] because state was [STARTED]
例外が発生していました。
現在、すでに開始されたジョブを開始しようとすると、成功した200 OK: started
レスポンスが返されます。
影響
ロールアップジョブを開始しようとする際に200ステータスが返された場合、そのジョブがアクティブに開始された状態であると仮定するようにワークフローとアプリケーションを更新してください。リクエスト自体がジョブを開始した可能性があり、または以前に実行されていたため、リクエストには影響がありませんでした。
保存されたスクリプトは、空のスクリプトや検索テンプレートをサポートしなくなりました。
詳細
createまたはupdate stored script APIのsource
パラメータは空にできません。
影響
アップグレードする前に、delete stored script APIを使用して、空の保存されたスクリプトや検索テンプレートを削除してください。8.0では、Elasticsearchはクラスター状態から空の保存されたスクリプトや空の検索テンプレートを削除します。空のsource
を持つ保存されたスクリプトや検索テンプレートを作成するリクエストはエラーを返します。
create または update stored script API の code
パラメータは削除されました。
詳細
create または update stored script API の code
パラメータは削除されました。代わりに source
パラメータを使用してください。
影響
code
パラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。
_type
フィールドに対する検索はもはやサポートされていません。
詳細
8.x では、_type
メタデータフィールドが削除されました。Elasticsearch は _type
フィールドに対する検索を存在しないフィールドに対する検索として処理します。存在しないフィールドに対する検索は、クエリ文字列に関係なく、ドキュメントに一致しません。
7.x では、_doc
を _type
フィールドで検索すると、match_all
クエリと同じドキュメントに一致しました。
影響
_type
フィールドに対するクエリを検索リクエストおよび検索テンプレートから削除してください。これらのクエリを含む検索は結果を返さない可能性があります。
マルチ検索 API は、テキストファイルの最初の空行をアクションメタデータとして解析します。
詳細
マルチ検索 API は、リクエストボディとしてテキストファイルを提供する際に、最初の空行を空のアクションメタデータとして解析します。たとえば、curl の --data-binary
フラグを使用する場合です。
API は次の内容を含むテキストファイルをもはやサポートしていません:
- 最初の空行の後に
{}
のみを含む行。 - 最初の空行の後に別の空行。
影響
マルチ検索 API にサポートされていないテキストファイルを提供しないでください。サポートされていないファイルを含むリクエストはエラーを返します。
unmapped_type: string
ソートオプションは削除されました。
詳細
検索リクエストはもはや unmapped_type: string
ソートオプションをサポートしていません。代わりに、unmapped_type: keyword
を使用して、マッピングされていないフィールドを keyword
フィールドタイプを持つかのように扱いますが、ソートのためにその値を無視します。
影響
unmapped_type: string
の使用を中止してください。unmapped_type: string
ソートオプションを含む検索リクエストはシャードの失敗を返します。
_id
に対する集約とソートはデフォルトで禁止されています。
詳細
以前は、フィールドデータと呼ばれる高コストのデータ構造をロードすることで、組み込みの _id
フィールドに対して集約とソートを行うことができました。これは 7.6 で非推奨となり、8.0 ではデフォルトで禁止されています。
影響
_id
に対する集約とソートは避けるべきです。代わりに、_id
フィールドの内容を docvalues が有効な別のフィールドに複製することができます(これは自動生成された ID には適用されません)。
common
クエリは削除されました。
詳細
common
クエリは、7.x で非推奨となり、8.0 で削除されました。同じ機能は、ヒットの総数が追跡されていない場合に match
クエリによって実現できます。
影響
common
クエリの使用を中止してください。common
クエリを含む検索リクエストはエラーを返します。
cutoff_frequency
パラメータは match
および multi_match
クエリから削除されました。
詳細
cutoff_frequency
パラメータは、7.x で非推奨となり、8.0 で match
および multi_match
クエリから削除されました。同じ機能は、ヒットの総数が追跡されていない場合に、設定なしで実現できます。
影響
cutoff_frequency
パラメータの使用を中止してください。match
または multi_match
クエリにこのパラメータを含む検索リクエストはエラーを返します。
nested_filter
および nested_path
プロパティは、検索 API の sort
リクエストボディパラメータから削除されました。
詳細
nested_filter
および nested_path
オプションは、6.x で非推奨となり、nested
コンテキストのために削除されました。
影響
sort
リクエストボディパラメータの nested_filter
および nested_path
プロパティの使用を中止してください。これらのプロパティを含むリクエストはエラーを返します。
検索および取得リクエストは、デフォルトで適応型レプリカ選択を使用してシャードにルーティングされます。
詳細
Elasticsearch は、_search
および _get
リクエストを処理するために、同じ場所にあるシャード(同じ認識属性値を持つ)を使用することをもはや優先しません。このバージョンではデフォルトで有効になっている適応型レプリカ選択は、以前のノード間通信のサービス時間を使用してリクエストをより効率的にルーティングします。
影響
アクションは必要ありません。
(query, doc['field'])
を使用したベクトル関数はもはやサポートされていません。
詳細
function(query, doc['field'])
形式のベクトル関数は 7.6 で非推奨となり、8.x で削除されました。代わりに function(query, 'field')
形式を使用してください。たとえば、cosineSimilarity(query, doc['field'])
は cosineSimilarity(query, 'field')
に置き換えられます。
影響
function(query, 'field')
形式を使用してください。function(query,
doc['field'])
形式の使用を中止してください。function(query,
doc['field'])
形式を含むリクエストはエラーを返します。
検索 API の indices_boost
リクエストボディパラメータはもはやオブジェクト値を受け入れません。
詳細
検索リクエストの indices_boost
オプションは、オブジェクトと配列の両方としてブーストを受け入れていました。オブジェクト形式は 5.2 以降非推奨となり、8.0 で削除されました。
影響
indices_boost
パラメータには配列値のみを使用してください。indices_boost
パラメータにオブジェクト値を含むリクエストはエラーを返します。
検索 API の use_field_mapping
リクエストボディパラメータは削除されました。
詳細
7.0 では、各フィールドのマッピング定義を使用して docvalue_fields
をデフォルトでフォーマットするようになりました。6.x からの移行を容易にするために、use_field_mapping
フォーマットオプションを追加しました。このパラメータは 7.0 で非推奨となり、8.0 で削除されました。
影響
use_field_mapping
リクエストボディパラメータの使用を中止してください。このパラメータを含むリクエストはエラーを返します。
互換性
rest-api-compatibility が 要求された 場合、use_field_mapping
パラメータは無視されます。
検索 API の from
リクエストボディおよび URL パラメータは負の値を受け入れません。
詳細
検索リクエストは、検索ボディおよび URL で -1
を from
として受け入れ、デフォルト値 0 として扱われていました。他の負の値はすでにエラーで拒否されていました。-1
も無効な値として拒否されます。
影響
リクエストボディまたは URL パラメータで -1
を from
パラメータとして使用している場合は、0
に設定するか、完全に省略してください。負の値を含むリクエストはエラーを返します。
日付フィールドに対する範囲クエリは、数値値を常にエポックからのミリ秒として扱います。
詳細
日付フィールドに対する範囲クエリは、追加のフォーマットが設定されていない場合、小さな数値(例:1000 のような 4 桁)を年として誤解釈していましたが、他の数値値はエポックからのミリ秒として解釈されていました。特定の format
パラメータがない場合、すべての数値値をエポックからのミリ秒として扱います。年をクエリしたい場合は、format
が欠落している場合、入力値を引用符で囲む必要があります(例:”1984”)。
影響
指定された format
なしで日付フィールドをクエリする場合、クエリ内の値が実際にエポックからのミリ秒を意味しているかどうかを確認し、この場合は数値値を使用してください。そうでない場合は、マッピングで設定された日付フォーマットまたはデフォルトで strict_date_optional_time
によって解析される文字列値を使用してください。
geo_bounding_box
クエリの type
パラメータは削除されました。
詳細
geo_bounding_box
クエリの type
パラメータは 7.14.0 で非推奨となり、8.0.0 で削除されました。このパラメータは無操作で、クエリに影響を与えません。
影響
type
パラメータの使用を中止してください。geo_bounding_box
クエリがこのパラメータを含む場合、エラーが返されます。
type
クエリは削除されました。
詳細
type
クエリは削除されました。マッピングタイプは 8.0 で削除されました。
影響
type
クエリの使用を中止してください。このクエリを含むリクエストはエラーを返します。
kibana_user
ロールは kibana_admin
に名前が変更されました。
詳細
以前に kibana_user
ロールが割り当てられていたユーザーは、kibana_admin
ロールに割り当てるべきです。このロールは kibana_user
と同じ特権のセットを付与しますが、その意図された使用をよりよく反映するために名前が変更されました。
影響
kibana_user
ロールを持つユーザーを kibana_admin
ロールに割り当ててください。kibana_user
ロールの使用を中止してください。
スナップショットおよび SLM API では、indices
パラメータはもはやシステムインデックスまたはシステムデータストリームに解決されません。
詳細
スナップショットおよび SLM API では、indices
パラメータはもはやシステムインデックスまたはシステムデータストリームに解決されません。Feature states は、スナップショットからシステムインデックスまたはシステムデータストリームをバックアップおよび復元する唯一の方法です。
indices
パラメータを create SLM policy API または create snapshot API に使用して、スナップショットにシステムインデックスを含めることはできなくなりました。システムインデックスをバックアップするには、include_global_state
および feature_states
パラメータを使用して、対応するフィーチャーステートを含めてください。デフォルトでは、include_global_state
および feature_states
パラメータはすべてのシステムインデックスを含みます。
同様に、restore snapshot API の indices
パラメータを使用して、スナップショットからシステムインデックスを復元することはできなくなりました。システムインデックスを復元するには、include_global_state
および feature_states
パラメータを使用して、対応するフィーチャーステートを復元してください。デフォルトでは、include_global_state
および feature_states
パラメータはシステムインデックスを復元しません。
影響
以前に indices
パラメータを使用してシステムインデックスをバックアップまたは復元していた場合は、SLM ポリシーとアプリケーションを更新して include_global_state
および feature_states
パラメータを使用してください。
indices
パラメータにシステムインデックスを明示的に指定した SLM ポリシーは、スナップショットを作成できません。同様に、indices
パラメータにシステムインデックスを明示的に指定した create snapshot API または restore snapshot API リクエストは失敗し、エラーを返します。indices
値にワイルドカード (*
) パターンが含まれている場合、そのパターンはもはやシステムインデックスに一致しません。
スナップショットはデフォルトでメタデータファイルを圧縮します。
詳細
以前は、compress
のデフォルト値は false
でした。デフォルトは true
に変更されました。
この変更は、新しく作成されたリポジトリと、compress=false
が明示的に指定されていない既存のリポジトリの両方に影響します。
影響
compress
パラメータのデフォルト値として true
を想定するようにワークフローとアプリケーションを更新してください。
S3 スナップショットリポジトリは、デフォルトで DNS スタイルのアクセスパターンを使用します。
詳細
バージョン 7.4 から、s3
スナップショットリポジトリはもはや、今は非推奨のパススタイルのアクセスパターンをデフォルトで使用しません。バージョン 7.0、7.1、7.2、および 7.3 の s3
スナップショットリポジトリは常にパススタイルのアクセスパターンを使用していました。この変更は、パススタイルのアクセスのみをサポートするデプロイメントにとっては破壊的な変更であり、AWS SDK によって DNS スタイルのアクセスをサポートしていると認識されています。この破壊的な変更は、AWS の発表 によって、パススタイルのアクセスパターンが非推奨となり、2020 年 9 月 30 日以降に作成されたバケットではサポートされなくなることが必要でした。
影響
デプロイメントがパススタイルのアクセスのみをサポートし、この変更の影響を受ける場合は、S3 クライアント設定 path_style_access
を true
に設定する必要があります。
復元リクエストはもはや設定を受け入れません。
詳細
以前のバージョンでは、復元スナップショットリクエストのボディに settings
と index_settings
の両方を渡すことができましたが、settings
値は無視されていました。復元スナップショット API は、settings
値を含むリクエストを拒否します。
影響
復元スナップショットリクエストで settings
パラメータの使用を中止してください。これらのパラメータを含むリクエストはエラーを返します。
リポジトリ統計 API は削除されました。
詳細
リポジトリ統計 API は削除されました。この実験的 API は 7.10.0 で非推奨となりました。
影響
代わりに repositories metering APIs を使用してください。
Watcher の履歴は、現在隠しデータストリームに書き込まれます。
詳細
8.x では、Elasticsearch は Watcher の履歴を隠し .watcher-history-<index-template-version>
データストリームに書き込みます。以前は、Elasticsearch は Watcher の履歴を隠し .watcher-history-<index-template-version>-<yyyy-MM-dd>
インデックスに書き込んでいました。
影響
リクエストを更新して、Watcher の履歴データストリームをターゲットにしてください。たとえば、.watcher-history-*
ワイルドカード式を使用します。存在しない Watcher の履歴インデックスを特定してターゲットにするリクエストはエラーを返す可能性があります。
HTTP ステータスコードは、サーバータイムアウトの場合のクラスタヘルス API で変更されました。
詳細
クラスタヘルス API には、特定のヘルス条件が満たされるのを待つオプションが含まれています。要求された条件がタイムアウト内に満たされない場合、Elasticsearch は "timed_out": true
フィールドを含む通常の応答を返します。以前のバージョンでは、リクエストがタイムアウトした場合は HTTP 応答コード 408 Request timeout
を使用し、そうでない場合は 200
OK
を使用していました。408 Request timeout
応答コードはこの状況には適切ではないため、8.0.0 以降、Elasticsearch は両方のケースで 200 OK
応答コードを使用します。
影響
サーバータイムアウトを検出するには、JSON 応答の timed_out
フィールドを確認してください。
SQL JDBCの変更
JDBCドライバーは、org.elasticsearch.geo
オブジェクトの代わりに、ジオメトリオブジェクトをウェルノウンテキスト(WKT)文字列として返します。
詳細
JDBCドライバーがElasticsearchクラスに依存しないようにするために、JDBCドライバーはorg.elasticsearch.geometry
のクラスの代わりに、WKT(ウェルノウンテキスト)形式の文字列としてジオメトリデータを返します。ユーザーは、elasticsearch-geo
ライブラリ(以前はorg.elasticsearch.geo
オブジェクトを返していた)やjts、spatial4jなど、文字列表現を完全なオブジェクトに変換するために使用するジオメトリライブラリを選択できます。
影響
アップグレードする前に、ResultSet#getObject
またはResultSet#setObject
Elasticsearch JDBCドライバーのorg.elasticsearch.geo
クラスを、toString
またはorg.elasticsearch.geometry.utils.WellKnownText#toWKT/fromWKT
メソッドを呼び出すことで、そのWKT表現に置き換えてください。
この変更は、ジオメトリクラスを使用しないユーザーには影響しません。
システム要件の変更
Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。
いくつかのEOLオペレーティングシステムはもはやサポートされていません。
詳細
次のオペレーティングシステムはサポートの終了に達し、Elasticsearchによってサポートされなくなりました:
- Amazon Linux
- CentOS 6
- Debian 8
- openSUSE Leap 42
- Oracle Enterprise Linux 6
- Ubuntu 16.04
SysV init
のサポートも削除されました。サポートされているオペレーティングシステムはSysV init
プロセスを使用していません。
詳細
ノードがサポートされているオペレーティングシステムを使用していることを確認してください。サポートされていないオペレーティングシステムでElasticsearchを実行すると、予期しないエラーや障害が発生する可能性があります。
Java 17が必要です。
詳細
Elasticsearchおよびそのコマンドラインツールを実行するには、Java 17以上が必要です。
影響
Java 17以上を使用してください。以前のJavaバージョンを使用してElasticsearch 8.0を実行しようとすると、失敗します。
FIPS 140-2モードでElasticsearch 8.0を実行する際に使用できるJava 17用のFIPS認証セキュリティモジュールはまだありません。FIPS 140-2モードで実行する場合、Elasticsearch 8.0にアップグレードするためにセキュリティ組織から例外を要求するか、Java 17が認証されるまでElasticsearch 7.xのままでいる必要があります。
JAVA_HOME
はもはやサポートされていません。
詳細
JAVA_HOME
はJDKのパスを設定するためにもはやサポートされていません。代わりに、バンドルされたJDK(推奨)を使用するか、ES_JAVA_HOME
を設定してください。
影響
バンドルされたJDK(推奨)を使用するか、ES_JAVA_HOME
を設定してください。JAVA_HOME
は無視されます。
変換の変更
7.4以前のバージョンで作成された変換はアップグレードする必要があります。
詳細
変換の初期ベータ版は、もはやサポートされていない形式の構成情報を持っていました。
影響
アップグレード変換APIを使用して変換を修正してください。このアップグレードは、ソースまたは宛先インデックスには影響しません。
非推奨機能
次の機能はElasticsearch 8.0で非推奨となり、将来のバージョンで削除されます。これがアプリケーションに即座に影響を与えることはありませんが、8.0にアップグレードした後にコードを更新するために説明された手順を強くお勧めします。
非推奨機能を使用しているかどうかを確認するには、非推奨ログ記録を有効にしてください。
クラスタおよびノード設定の非推奨
もはや一時的なクラスタ設定の使用を推奨しません。
詳細
もはや一時的なクラスタ設定の使用を推奨しません。代わりに永続的なクラスタ設定を使用してください。クラスタが不安定になると、一時的な設定が予期せずクリアされ、望ましくないクラスタ構成が生じる可能性があります。
影響
一時的なクラスタ設定はまだ非推奨ではありませんが、将来のリリースで非推奨にする予定です。移行手順については、一時設定の移行ガイドを参照してください。
コマンドラインツールの非推奨
Elasticsearch Service を使用している場合は、このセクションをスキップしてください。Elasticsearch Service がこれらの変更を処理します。
elasticsearch-setup-passwords
ツールは非推奨です。
詳細
elasticsearch-setup-passwords
ツールは8.0で非推奨です。組み込みユーザー(elastic
ユーザーを含む)のパスワードを手動でリセットするには、elasticsearch-reset-password
ツール、Elasticsearchのパスワード変更API、またはKibanaのユーザー管理機能を使用してください。elasticsearch-setup-passwords
は将来のリリースで削除されます。
影響
Elasticsearchを初めて起動すると、elastic
ユーザーのパスワードが自動的に生成されます。Elasticsearchを起動した後にelasticsearch-setup-passwords
を実行すると、elastic
ユーザーのパスワードはすでに設定されているため、失敗します。