ElasticSearch8升级变化
重大变化
Elasticsearch 8.0 中的以下更改可能会影响您的应用程序并阻止它们正常运行。在升级到 8.0 之前,请查看这些更改并采取所述步骤来减轻影响。
集群和节点设置更改
https://www.elastic.co/cloud/elasticsearch-service/signup?page=docs&placement=docs-body表示对 Elasticsearch Service 支持的用户设置的更改。
action.destructive_requires_name现在默认为true.
详细信息
在 Elasticsearch 8.0.0 中, 该的默认值action.destructive_requires_name从 更改为falsetrue
以前,默认false允许用户使用通配符模式来删除、关闭或更改索引上的索引块。为了防止意外删除恰好与通配符模式匹配的索引,我们现在默认要求破坏性操作显式命名要修改的索引。
影响
要使用通配符模式进行破坏性操作,请设置 action.destructive_requires_name为false使用 https://www.elastic.co/guide/en/elasticsearch/reference/8.12/cluster-update-settings.html集群设置 API]。
您无法再xpack.searchable.snapshot.shared_cache.size在非冻结节点上进行设置。
详细信息
您无法再 xpack.searchable.snapshot.shared_cache.size 在不具有data_frozen节点角色的节点上进行设置。此设置为部分安装的索引的共享缓存保留磁盘空间。Elasticsearch 仅将部分安装的索引分配给具有该data_frozen角色的节点。
影响
从不具有该角色的节点中删除。在非冻结节点上指定设置将导致启动时出错。xpack.searchable.snapshot.shared_cache.sizeelasticsearch.ymldata_frozen
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(一秒)。
在集群更新设置 API 中或通过 集群更新设置 API将影响设置indices.lifecycle.poll_interval为1s或更大。elasticsearch.yml
设置indices.lifecycle.poll_interval为小于1sin elasticsearch.yml将导致启动时出错。 设置为小于的集群更新设置 API请求将返回错误。indices.lifecycle.poll_interval1s
除非明确禁用,否则文件和本机领域现在已启用。
详细信息除非明确禁用,否则文件和本机领域现在已启用。如果明确禁用,则文件和本机领域始终保持禁用状态。
以前,文件和本机领域具有以下隐式行为:
● 如果未配置文件和本机领域,则在配置任何其他领域时它们将被隐式禁用。
● 如果由于未配置领域、许可证不允许或显式禁用领域而没有其他领域可用,则即使显式禁用,也会启用文件和本机领域。
影响
要显式禁用文件或本机领域,请将相应的 或file..enabled设置native..enabled设置false 为.xpack.security.authc.realmselasticsearch.yml
以下配置示例禁用本机领域和文件领域。
xpack.security.authc。领域:
native.realm1。启用:假
文件.realm2。启用:假
...
order现在需要领域设置。
详细信息
现在xpack.security.authc.realms.{type}.{name}.order需要设置,并且必须为每个显式配置的领域指定。每个值必须是唯一的。
影响
如果不满足要求,集群将无法启动。
例如,以下配置无效:
xpack.security.authc.realms.kerberos。kerb1:
密钥表。路径:es.keytab
remove_realm_name:false
并且必须配置为:
xpack.security.authc.realms.kerberos。kerb1:
订单:0
密钥表。路径:es.keytab
remove_realm_name:false
cluster.routing.allocation.disk.include_relocations已被删除。
详细信息
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.timeoutelasticsearch.yml
discovery.zen设置已被删除。
详细信息
不再支持命名空间下的所有设置discovery.zen它们仅出于 BWC 原因而存在于 7.x 中。这包括:
● 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
影响
从 中删除。指定这些设置将导致启动时出错。discovery.zenelasticsearch.yml
http.content_type.required已被删除。
详细信息
该http.content_type.required设置在 Elasticsearch 6.0 中已弃用,并已在 Elasticsearch 8.0 中删除。该设置是在 Elasticsearch 5.3 中引入的,目的是让用户为 Elasticsearch 6.0 做好准备,其中删除了 HTTP 请求的内容类型自动检测。
影响
从 中 删除该http.content_type.required设置elasticsearch.yml。指定此设置将导致启动时出错。
http.tcp_no_delay已被删除。
详细信息
该http.tcp_no_delay设置在 7.x 中已弃用,并在 8.0 中被删除。http.tcp.no_delay代替使用
影响
将设置替换http.tcp_no_delay为http.tcp.no_delay。指定 http.tcp_no_delayinelasticsearch.yml将导致启动时出错。
network.tcp.connect_timeout已被删除。
详细信息
该network.tcp.connect_timeout设置在 7.x 中已弃用,并在 8.0 中被删除。此设置是 的后备设置transport.connect_timeout。
影响
删除该network.tcp.connect_timeout设置。使用该transport.connect_timeout设置更改客户端连接的默认连接超时。指定 network.tcp.connect_timeoutinelasticsearch.yml将导致启动时出错。
node.max_local_storage_nodes已被删除。
详细信息
该node.max_local_storage_nodes设置在 7.x 中已弃用,并在 8.0 中被删除。节点应在单独的数据路径上运行,以确保每个节点一致地分配给相同的数据路径。
影响
删除该node.max_local_storage_nodes设置。指定此设置elasticsearch.yml将导致启动时出错。
该accept_default_password设置已被删除。
详细信息
自 Elasticsearch 6.0 版本以来, 该xpack.security.authc.accept_default_password设置没有任何影响,并且不再允许。
影响
从 中 删除该xpack.security.authc.accept_default_password设置elasticsearch.yml。指定此设置将导致启动时出错。
设置roles.index.cache.*已被删除。
详细信息
和xpack.security.authz.store.roles.index.cache.max_size设置 xpack.security.authz.store.roles.index.cache.ttl已被删除。自 Elasticsearch 5.2 版本以来,这些设置已变得多余并已弃用。
影响
从 中删除xpack.security.authz.store.roles.index.cache.max_size 和。指定这些设置将导致启动时出错。xpack.security.authz.store.roles.index.cache.ttlelasticsearch.yml
该transport.profiles.*.xpack.security.type设置已被删除。
详细信息
不再支持该transport.profiles.*.xpack.security.type传输客户端已被删除,所有客户端流量现在都使用 HTTP 传输。应删除使用此设置的传输配置文件。
影响
从 中 删除该transport.profiles.*.xpack.security.type设置elasticsearch.yml。在传输配置文件中指定此设置将导致启动时出错。
SAMLnameid_format领域设置不再具有默认值。
详细信息
在 SAML 中,身份提供商 (IdP) 可以显式配置为发布NameID特定格式的文件,也可以配置为尝试符合服务提供商 (SP) 的要求。SP 在NameIDPolicySAML 身份验证请求的元素中声明其要求。在 Elasticsearch 中,nameid_formatSAML 领域设置控制该NameIDPolicy 值。
nameid_format以前,默认 值为urn:oasis:names:tc:SAML:2.0:nameid-format:transient。此设置创建了需要 IdPNameID以某种 transient格式发布的身份验证请求。
默认值已被删除,这意味着 Elasticsearch 将默认创建 SAML 身份验证请求,不会对 IdP 提出此要求。如果您想保留以前的行为,请设置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设置。
详细信息
现在,配置任何 SSL 设置 xpack.security.transport.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,请按照 加密集群中节点之间的通信中的说明进行操作。作为此配置的一部分,显式指定 xpack.security.transport.ssl.enabled为true。
例如,以下配置无效:
xpack.security.transport.ssl.keystore。路径:弹性-证书.p12
xpack.security.transport.ssl.truststore。路径:弹性-证书.p12
并且必须配置为:
xpack.security.transport.ssl。启用:真
xpack.security.transport.ssl.keystore。路径:弹性-证书.p12
xpack.security.transport.ssl.truststore。路径:弹性-证书.p12
或者false。
xpack.security.http.ssl.enabled现在需要该设置来配置xpack.security.http.ssl设置。
详细信息
现在,配置任何 SSL 设置 xpack.security.http.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 客户端通信中的说明进行操作。作为此配置的一部分,显式指定xpack.security.http.ssl.enabled 为true。
例如,以下配置无效:
xpack.security.http.ssl。证书:elasticsearch.crt
xpack.security.http.ssl。密钥:elasticsearch.key
xpack.security.http.ssl。证书颁发机构:[ "企业-ca.crt" ]
并且必须配置为:
xpack.security.http.ssl。启用:真
xpack.security.http.ssl。证书:elasticsearch.crt
xpack.security.http.ssl。密钥:elasticsearch.key
xpack.security.http.ssl。证书颁发机构:[ "企业-ca.crt" ]
或者false。
xpack.security.transport.ssl现在需要证书和密钥才能为传输接口启用 SSL 。
详细信息
现在,如果没有通过使用 设置或和来配置证书和密钥,则为传输接口启用 SSL 会出现错误。xpack.security.transport.ssl.keystore.pathxpack.security.transport.ssl.certificatexpack.security.transport.ssl.key
影响
如果xpack.security.transport.ssl.enabled设置为 设置或和 true提供证书和密钥。如果未提供证书和密钥,Elasticsearch 将在启动时返回错误。xpack.security.transport.ssl.keystore.pathxpack.security.transport.ssl.certificatexpack.security.transport.ssl.key
现在需要证书xpack.security.http.ssl和密钥才能为 HTTP 服务器启用 SSL。
详细信息
现在,如果没有通过使用 设置或和来配置证书和密钥,则为 HTTP(Rest)服务器启用 SSL 会出现错误。xpack.security.http.ssl.keystore.pathxpack.security.http.ssl.certificatexpack.security.http.ssl.key
影响
如果xpack.security.http.ssl.enabled设置为设置或 和true提供证书和密钥 。如果未提供证书和密钥,Elasticsearch 将在启动时返回错误。xpack.security.http.ssl.keystore.pathxpack.security.http.ssl.certificatexpack.security.http.ssl.key
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 的默认存储不受影响。
影响
如果您在文件中配置了 PKCS#11 密钥库elasticsearch.yml,则必须删除该配置并切换到受支持的密钥库类型,或者将 PKCS#11 密钥库配置为 JRE 默认存储。
用户kibana已替换为kibana_system。
详细信息
历史上, 该kibana用户用于向 Elasticsearch 验证 Kibana 的身份。该用户的名称很混乱,经常被错误地用来登录 Kibana。kibana_system为了减少混乱并更好地与其他内置系统帐户保持一致,已将其重命名为
影响
将用户 的任何使用替换kibana为kibana_system用户。指定kibana用户kibana.yml将导致启动时出错。
如果您kibana.yml曾经包含:
弹性搜索。用户名:kibana
那么你应该更新以使用新kibana_system用户:
弹性搜索。用户名: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设置之前已在 Elasticsearch 版本 7.4.0 中弃用,并在版本 8.0.0 中删除。相反,使用node.pidfile.
影响
使用该node.pidfile设置。停止使用该pidfile设置。指定pidfile设置elasticsearch.yml将导致启动时出错。
该processors设置已替换为node.processors。
详细信息
为了确保所有设置都位于正确的命名空间中,该processors设置之前已在 Elasticsearch 版本 7.4.0 中弃用,并在版本 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将导致启动时出错。
HTTP 监控的设置auth.password已被删除。
详细信息
在 Elasticsearch 7.7.0 中,该设置xpack.monitoring.exporters..auth.password 已被弃用,取而代之的是设置xpack.monitoring.exporters..auth.secure_password。在 Elasticsearch 8.0.0 中,该设置xpack.monitoring.exporters..auth.password已被删除。
影响
使用该xpack.monitoring.exporters..auth.secure_password 设置。停止使用该 xpack.monitoring.exporters..auth.password设置。指定xpack.monitoring.exporters..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相反, 应使用层首选项设置。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设置已被删除。以前,您可以使用此设置自动导入 悬空索引。但是,自动导入悬空索引是不安全的。请使用 悬空索引 API来管理和导入悬空索引。
影响
停止使用已删除的设置。指定设置 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_throttledfixed
影响
无需采取任何措施。
多个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),则 now 的值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或elasticagent >= 8.0收集监控数据时,索引通过ILM策略进行管理。xpack.monitoring.history.duration如果存在该设置,则将使用 的作为初始保留期来创建策略。
如果您需要自定义使用metricbeat收集的监控数据的保留设置,请.monitoring-8-ilm-policy直接更新ILM策略。
该xpack.monitoring.history.duration设置仅适用于监控使用(旧)内部集合编写的索引,不适用于 metricbeat 或代理创建的索引。
影响升级后,请确保.monitoring-8-ilm-policyILM 策略与您所需的保留设置一致。
如果您仅使用metricbeat或agent来收集监控数据,您也可以删除任何自定义xpack.monitoring.history.duration 设置。
命令行工具更改编辑
如果您使用Elasticsearch服务,请跳过本节。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不会产生任何影响,但会生成弃用警告。
为了避免这些弃用警告,请停止使用该设置。创建新索引时不要指定该设置,并从索引和组件模板中删除该设置。
要从现有数据流或索引中删除设置,请使用null更新索引设置 API 指定设置的值。
PUT my-index-000001 / _settings { "index.merge.policy.max_merge_at_once_explicit" :null }
安慰PHPPython红宝石去JavaScript
复制为卷曲在控制台中查看
索引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已被删除。
详细信息
Translog 保留设置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包已ilm在 Java 高级 REST 客户端中重命名。
更改为Fuzziness.
更改为Repository.
JVM 选项更改编辑
如果您使用Elasticsearch服务,请跳过本节。Elasticsearch Service 会为您处理这些更改。
es.disk.auto_release_flood_stage_block已被删除。
es.rest.url_plus_as_space已被删除。
es.unsafely_permit_handshake_from_incompatible_builds已被删除。
记录更改编辑
Elasticsearch JSON 日志现在符合 ECS。
Elasticsearch 不再以明文形式发出弃用日志或慢速日志。
审核日志按大小滚动和归档。
映射更改编辑
不支持在 Elasticsearch 6.x 及更早版本中创建的索引。
不支持在 Elasticsearch 6.x 及更早版本中创建的封闭索引。
每个字段的完成上下文的最大数量现在为 10。
不再支持多字段内的多字段。
元_field_names数据字段的enabled参数已被删除。
字段映射上的参数boost已被删除。
Java 时间日期格式取代了 joda 时间格式。
几个geo_shape映射参数已被删除。
字段sparse_vector数据类型已被删除。
包装变化编辑
如果您使用Elasticsearch服务,请跳过本节。Elasticsearch Service 会为您处理这些更改。
数据文件夹的布局已更改。
默认的 Maxmind geoip 数据库已被删除。
无痛改变编辑
该类JodaCompatibleZonedDateTime已被删除。
插件变更编辑
如果您使用Elasticsearch服务,请跳过本节。Elasticsearch Service 会为您处理这些更改。
S3、GCS 和 Azure 存储库插件现已包含在 Elasticsearch 中
第三方插件无法再拦截 REST 请求 ( RestHandlerWrapper)
REST API 更改编辑
包含的 REST API 端点_xpack已被删除。
包含映射类型的 REST API 端点已被删除。
跨集群搜索 (CCS) 现在仅向后兼容之前的次要版本。
聚合terms不再支持_term顺序键。
聚合date_histogram不再支持_time顺序键。
聚合moving_avg已被删除。
聚合percentiles的percents参数不再支持重复值。
聚合date_histogram的interval参数不再有效。
和标记过滤器nGram名称edgeNGram已被删除。
和分词器nGram名称edgeNGram已被删除。
该in_flight_requests统计信息已inflight_requests在日志和诊断 API 中重命名。
投票配置排除 API 端点已更改。
如果远程系统索引与自动跟踪模式匹配,则不会自动跟踪它们。
EQLwildcard功能已被删除。
ILMfreeze操作现在是无操作。
ILM 策略的额外验证。
已弃用的_upgradeAPI 已被删除。
已弃用的冻结索引 API 已被删除。
不能在同一请求中同时指定强制合并 APImax_num_segments和参数。only_expunge_deletes
创建或更新索引模板 API 的template参数已被删除。
同步刷新已被删除。
?wait_for_active_shards关闭索引 API 上的参数默认值已更改。
索引统计 API 的types查询参数已被删除。
摄取user_agent处理器的ecs参数没有影响。
查询include_type_name参数已被删除。
从远程重新索引现在重新编码 URL 编码的索引名称。
在重新索引、按查询删除和按查询更新 API 中,size参数已重命名。
通过查询更新 API 现在会拒绝不支持的script字段。
cat 节点 API 的local查询参数已被删除。
cat 分片 API 的local查询参数已被删除。
cat Index API 的local查询参数已被删除。
获取字段映射 API 的local查询参数已被删除。
不推荐将数据发布到作业 API。
job_id更新数据源 API 的属性已被删除。
创建存储库并409在使用存储库时删除存储库 API 的返回状态代码而不是500.
该allow_no_datafeeds属性已从机器学习 API 中删除。
该allow_no_jobs属性已从机器学习 API 中删除。
如果作业已启动,StartRollupJob 端点现在会返回成功状态。
存储的脚本不再支持空脚本或搜索模板。
创建或更新存储脚本 API 的code参数已被删除。
_type不再支持现场搜索。
多重搜索 API 现在将空的第一行解析为文本文件中的操作元数据。
排序unmapped_type: string选项已被删除。
_id默认情况下不允许聚合和排序。
该common查询已被删除。
该cutoff_frequency参数已从matchandmulti_match查询中删除。
和nested_filter属性nested_path已从搜索 API 的sort请求正文参数中删除。
现在,默认情况下,搜索和获取请求将使用自适应副本选择路由到分片。
(query, doc['field'])不再支持使用向量函数。
搜索 API 的indices_boost请求正文参数不再接受对象值。
搜索 API 的use_field_mapping请求正文参数已被删除。
搜索API的from请求体和url参数不能为负数。
日期字段上的范围查询始终将数值视为自纪元以来的毫秒数。
查询geo_bounding_box的type参数已被删除。
该type查询已被删除。
该kibana_user角色已更名kibana_admin。
对于快照和 SLM API,该indices参数不再解析为系统索引或系统数据流。
快照默认压缩元数据文件。
S3 快照存储库现在默认使用 DNS 样式的访问模式。
恢复请求不再接受设置。
存储库统计 API 已被删除。
观察者历史记录现在写入隐藏的数据流。
在服务器超时的情况下,集群运行状况 API 的 HTTP 状态代码已更改。
SQL JDBC 更改编辑
JDBC 驱动程序以众所周知的文本字符串而不是org.elasticsearch.geo对象的形式返回几何对象。
系统要求变更编辑
如果您使用Elasticsearch服务,请跳过本节。Elasticsearch Service 会为您处理这些更改。
不再支持多个 EOL 操作系统。
需要 Java 17。
JAVA_HOME不再支持。
转变变革编辑
必须升级在 7.4 或更早版本中创建的转换。
弃用编辑
以下功能已在 Elasticsearch 8.0 中弃用,并将在未来版本中删除。虽然这不会立即对您的应用程序产生影响,但我们强烈建议您在升级到 8.0 后采取所描述的步骤来更新代码。
要查明您是否正在使用任何已弃用的功能,请启用弃用日志记录。
集群和节点设置弃用编辑
我们不再建议使用临时集群设置。
弃用命令行工具编辑
如果您使用Elasticsearch服务,请跳过本节。Elasticsearch Service 会为您处理这些更改。
该elasticsearch-setup-passwords工具已被弃用。
详细信息
该elasticsearch-setup-passwords工具在 8.0 中已弃用。要手动重置内置用户(包括elastic用户)的密码,请使用该elasticsearch-reset-password工具、Elasticsearch 更改密码 API或 Kibana 中的用户管理功能。 elasticsearch-setup-passwords将在未来版本中删除。
当您第一次启动 Elasticsearch 时,会自动为用户生成影响密码。elastic如果elasticsearch-setup-passwords启动Elasticsearch后运行,会失败,因为elastic 用户密码已经配置好了。
<< 迁移到 8.1Java 时间迁移指南 >>
在本页
● 重大变化
● 集群和节点设置更改
● 命令行工具更改
● 索引设置更改
● Java API 变更
● JVM 选项更改
● 记录更改
● 映射更改
● 包装变化
● 无痛改变
● 插件变更
● REST API 更改
● SQL JDBC 更改
● 系统要求变更
● 转变变革
● 弃用
● 集群和节点设置弃用
● 弃用命令行工具
Registration is live!
Join us for a day full of Elastic learning and networking at ElasticON Tour Singapore.
Learn more
这个有帮助吗?反馈
喜欢不喜欢