- Elasticsearch 指南其他版本
- 8.17 中的新功能
- Elasticsearch 基础
- 快速入门
- 设置 Elasticsearch
- 升级 Elasticsearch
- 索引模块
- 映射
- 文本分析
- 索引模板
- 数据流
- 摄取管道
- 别名
- 搜索您的数据
- 重新排名
- 查询 DSL
- 聚合
- 地理空间分析
- 连接器
- EQL
- ES|QL
- SQL
- 脚本
- 数据管理
- 自动缩放
- 监视集群
- 汇总或转换数据
- 设置高可用性集群
- 快照和还原
- 保护 Elastic Stack 的安全
- Watcher
- 命令行工具
- elasticsearch-certgen
- elasticsearch-certutil
- elasticsearch-create-enrollment-token
- elasticsearch-croneval
- elasticsearch-keystore
- elasticsearch-node
- elasticsearch-reconfigure-node
- elasticsearch-reset-password
- elasticsearch-saml-metadata
- elasticsearch-service-tokens
- elasticsearch-setup-passwords
- elasticsearch-shard
- elasticsearch-syskeygen
- elasticsearch-users
- 优化
- 故障排除
- 修复常见的集群问题
- 诊断未分配的分片
- 向系统中添加丢失的层
- 允许 Elasticsearch 在系统中分配数据
- 允许 Elasticsearch 分配索引
- 索引将索引分配过滤器与数据层节点角色混合,以在数据层之间移动
- 没有足够的节点来分配所有分片副本
- 单个节点上索引的分片总数已超过
- 每个节点的分片总数已达到
- 故障排除损坏
- 修复磁盘空间不足的数据节点
- 修复磁盘空间不足的主节点
- 修复磁盘空间不足的其他角色节点
- 启动索引生命周期管理
- 启动快照生命周期管理
- 从快照恢复
- 故障排除损坏的存储库
- 解决重复的快照策略失败问题
- 故障排除不稳定的集群
- 故障排除发现
- 故障排除监控
- 故障排除转换
- 故障排除 Watcher
- 故障排除搜索
- 故障排除分片容量健康问题
- 故障排除不平衡的集群
- 捕获诊断信息
- REST API
- API 约定
- 通用选项
- REST API 兼容性
- 自动缩放 API
- 行为分析 API
- 紧凑和对齐文本 (CAT) API
- 集群 API
- 跨集群复制 API
- 连接器 API
- 数据流 API
- 文档 API
- 丰富 API
- EQL API
- ES|QL API
- 功能 API
- Fleet API
- 图表探索 API
- 索引 API
- 别名是否存在
- 别名
- 分析
- 分析索引磁盘使用量
- 清除缓存
- 克隆索引
- 关闭索引
- 创建索引
- 创建或更新别名
- 创建或更新组件模板
- 创建或更新索引模板
- 创建或更新索引模板(旧版)
- 删除组件模板
- 删除悬挂索引
- 删除别名
- 删除索引
- 删除索引模板
- 删除索引模板(旧版)
- 存在
- 字段使用情况统计信息
- 刷新
- 强制合并
- 获取别名
- 获取组件模板
- 获取字段映射
- 获取索引
- 获取索引设置
- 获取索引模板
- 获取索引模板(旧版)
- 获取映射
- 导入悬挂索引
- 索引恢复
- 索引段
- 索引分片存储
- 索引统计信息
- 索引模板是否存在(旧版)
- 列出悬挂索引
- 打开索引
- 刷新
- 解析索引
- 解析集群
- 翻转
- 收缩索引
- 模拟索引
- 模拟模板
- 拆分索引
- 解冻索引
- 更新索引设置
- 更新映射
- 索引生命周期管理 API
- 推理 API
- 信息 API
- 摄取 API
- 许可 API
- Logstash API
- 机器学习 API
- 机器学习异常检测 API
- 机器学习数据帧分析 API
- 机器学习训练模型 API
- 迁移 API
- 节点生命周期 API
- 查询规则 API
- 重新加载搜索分析器 API
- 存储库计量 API
- 汇总 API
- 根 API
- 脚本 API
- 搜索 API
- 搜索应用程序 API
- 可搜索快照 API
- 安全 API
- 身份验证
- 更改密码
- 清除缓存
- 清除角色缓存
- 清除权限缓存
- 清除 API 密钥缓存
- 清除服务帐户令牌缓存
- 创建 API 密钥
- 创建或更新应用程序权限
- 创建或更新角色映射
- 创建或更新角色
- 批量创建或更新角色 API
- 批量删除角色 API
- 创建或更新用户
- 创建服务帐户令牌
- 委托 PKI 身份验证
- 删除应用程序权限
- 删除角色映射
- 删除角色
- 删除服务帐户令牌
- 删除用户
- 禁用用户
- 启用用户
- 注册 Kibana
- 注册节点
- 获取 API 密钥信息
- 获取应用程序权限
- 获取内置权限
- 获取角色映射
- 获取角色
- 查询角色
- 获取服务帐户
- 获取服务帐户凭据
- 获取安全设置
- 获取令牌
- 获取用户权限
- 获取用户
- 授予 API 密钥
- 具有权限
- 使 API 密钥失效
- 使令牌失效
- OpenID Connect 准备身份验证
- OpenID Connect 身份验证
- OpenID Connect 注销
- 查询 API 密钥信息
- 查询用户
- 更新 API 密钥
- 更新安全设置
- 批量更新 API 密钥
- SAML 准备身份验证
- SAML 身份验证
- SAML 注销
- SAML 失效
- SAML 完成注销
- SAML 服务提供商元数据
- SSL 证书
- 激活用户配置文件
- 禁用用户配置文件
- 启用用户配置文件
- 获取用户配置文件
- 建议用户配置文件
- 更新用户配置文件数据
- 具有用户配置文件权限
- 创建跨集群 API 密钥
- 更新跨集群 API 密钥
- 快照和还原 API
- 快照生命周期管理 API
- SQL API
- 同义词 API
- 文本结构 API
- 转换 API
- 使用情况 API
- Watcher API
- 定义
- 迁移指南
- 发行说明
- Elasticsearch 版本 8.17.0
- Elasticsearch 版本 8.16.1
- Elasticsearch 版本 8.16.0
- Elasticsearch 版本 8.15.5
- Elasticsearch 版本 8.15.4
- Elasticsearch 版本 8.15.3
- Elasticsearch 版本 8.15.2
- Elasticsearch 版本 8.15.1
- Elasticsearch 版本 8.15.0
- Elasticsearch 版本 8.14.3
- Elasticsearch 版本 8.14.2
- Elasticsearch 版本 8.14.1
- Elasticsearch 版本 8.14.0
- Elasticsearch 版本 8.13.4
- Elasticsearch 版本 8.13.3
- Elasticsearch 版本 8.13.2
- Elasticsearch 版本 8.13.1
- Elasticsearch 版本 8.13.0
- Elasticsearch 版本 8.12.2
- Elasticsearch 版本 8.12.1
- Elasticsearch 版本 8.12.0
- Elasticsearch 版本 8.11.4
- Elasticsearch 版本 8.11.3
- Elasticsearch 版本 8.11.2
- Elasticsearch 版本 8.11.1
- Elasticsearch 版本 8.11.0
- Elasticsearch 版本 8.10.4
- Elasticsearch 版本 8.10.3
- Elasticsearch 版本 8.10.2
- Elasticsearch 版本 8.10.1
- Elasticsearch 版本 8.10.0
- Elasticsearch 版本 8.9.2
- Elasticsearch 版本 8.9.1
- Elasticsearch 版本 8.9.0
- Elasticsearch 版本 8.8.2
- Elasticsearch 版本 8.8.1
- Elasticsearch 版本 8.8.0
- Elasticsearch 版本 8.7.1
- Elasticsearch 版本 8.7.0
- Elasticsearch 版本 8.6.2
- Elasticsearch 版本 8.6.1
- Elasticsearch 版本 8.6.0
- Elasticsearch 版本 8.5.3
- Elasticsearch 版本 8.5.2
- Elasticsearch 版本 8.5.1
- Elasticsearch 版本 8.5.0
- Elasticsearch 版本 8.4.3
- Elasticsearch 版本 8.4.2
- Elasticsearch 版本 8.4.1
- Elasticsearch 版本 8.4.0
- Elasticsearch 版本 8.3.3
- Elasticsearch 版本 8.3.2
- Elasticsearch 版本 8.3.1
- Elasticsearch 版本 8.3.0
- Elasticsearch 版本 8.2.3
- Elasticsearch 版本 8.2.2
- Elasticsearch 版本 8.2.1
- Elasticsearch 版本 8.2.0
- Elasticsearch 版本 8.1.3
- Elasticsearch 版本 8.1.2
- Elasticsearch 版本 8.1.1
- Elasticsearch 版本 8.1.0
- Elasticsearch 版本 8.0.1
- Elasticsearch 版本 8.0.0
- Elasticsearch 版本 8.0.0-rc2
- Elasticsearch 版本 8.0.0-rc1
- Elasticsearch 版本 8.0.0-beta1
- Elasticsearch 版本 8.0.0-alpha2
- Elasticsearch 版本 8.0.0-alpha1
- 依赖项和版本
其他集群设置
编辑其他集群设置
编辑元数据
编辑可以使用以下设置将整个集群设置为只读
不要依赖此设置来防止对集群的更改。任何有权访问 cluster-update-settings API 的用户都可以使集群再次变为读写状态。
集群分片限制
编辑集群中的分片数量有限制,该限制基于集群中的节点数量。这是为了防止失控的进程创建过多的分片,这会损害性能,在极端情况下可能会破坏集群的稳定性。
这些限制旨在作为安全网,以防止失控的分片创建,而不是大小调整建议。您的集群可以安全支持的确切分片数量取决于您的硬件配置和工作负载,并且可能小于默认限制。
我们不建议将这些限制增加到超出默认值。具有更多分片的集群在正常运行中可能看起来运行良好,但可能需要很长时间才能从临时中断(例如网络分区或意外的节点重启)中恢复,并且在执行维护活动(例如滚动重启或升级)时可能会遇到问题。
如果某个操作(例如创建新索引、还原索引快照或打开已关闭的索引)会导致集群中的分片数量超过此限制,则该操作将失败,并显示指示分片限制的错误。要解决此问题,请通过添加节点来扩展集群,或删除一些索引以使分片数量低于限制。
如果集群已经超过限制(可能是由于节点成员资格的更改或设置的更改),则所有创建或打开索引的操作都将失败。
集群分片限制默认为每个非冻结数据节点 1000 个分片用于普通(非冻结)索引,以及每个冻结数据节点 3000 个分片用于冻结索引。所有打开索引的主分片和副本分片都计入限制,包括未分配的分片。例如,一个具有 5 个主分片和 2 个副本的打开索引计为 15 个分片。关闭的索引不计入分片计数。
您可以使用以下设置动态调整集群分片限制
-
cluster.max_shards_per_node
-
(动态) 限制集群的主分片和副本分片总数。Elasticsearch 计算限制的方式如下
cluster.max_shards_per_node * 非冻结数据节点数量
关闭的索引的分片不计入此限制。默认为
1000
。没有数据节点的集群不受限制。Elasticsearch 会拒绝任何创建超过此限制允许的分片的请求。例如,
cluster.max_shards_per_node
设置为100
且有三个数据节点的集群的分片限制为 300。如果集群已经包含 296 个分片,则 Elasticsearch 会拒绝任何向集群添加五个或更多分片的请求。请注意,如果
cluster.max_shards_per_node
设置为高于默认值的值,则 mmap 计数和打开的文件描述符的限制也可能需要调整。请注意,冻结分片有其自己的独立限制。
-
cluster.max_shards_per_node.frozen
-
(动态) 限制集群的主冻结分片和副本冻结分片总数。Elasticsearch 计算限制的方式如下
cluster.max_shards_per_node.frozen * 冻结数据节点数量
关闭的索引的分片不计入此限制。默认为
3000
。没有冻结数据节点的集群不受限制。Elasticsearch 会拒绝任何创建超过此限制允许的冻结分片的请求。例如,
cluster.max_shards_per_node.frozen
设置为100
且有三个冻结数据节点的集群的冻结分片限制为 300。如果集群已经包含 296 个分片,则 Elasticsearch 会拒绝任何向集群添加五个或更多冻结分片的请求。
这些限制仅适用于创建分片的操作,而不限制分配给每个节点的分片数量。要限制分配给每个节点的分片数量,请使用 cluster.routing.allocation.total_shards_per_node
设置。
用户定义的集群元数据
编辑可以使用集群设置 API 存储和检索用户定义的元数据。这可用于存储关于集群的任意、不经常更改的数据,而无需创建索引来存储它。此数据可以使用任何以 cluster.metadata.
为前缀的键进行存储。例如,要将集群管理员的电子邮件地址存储在键 cluster.metadata.administrator
下,请发出此请求
resp = client.cluster.put_settings( persistent={ "cluster.metadata.administrator": "sysadmin@example.com" }, ) print(resp)
response = client.cluster.put_settings( body: { persistent: { 'cluster.metadata.administrator' => 'sysadmin@example.com' } } ) puts response
const response = await client.cluster.putSettings({ persistent: { "cluster.metadata.administrator": "sysadmin@example.com", }, }); console.log(response);
PUT /_cluster/settings { "persistent": { "cluster.metadata.administrator": "sysadmin@example.com" } }
用户定义的集群元数据不用于存储敏感或机密信息。任何存储在用户定义的集群元数据中的信息都将可以被任何有权访问 集群获取设置 API 的用户查看,并记录在 Elasticsearch 日志中。
索引墓碑
编辑集群状态维护索引墓碑,以显式表示已删除的索引。集群状态中维护的墓碑数量由以下设置控制
-
cluster.indices.tombstones.size
- (静态) 索引墓碑可以防止在删除发生时未加入集群的节点加入集群并重新导入索引,就像从未发出删除一样。为了防止集群状态变得巨大,我们仅保留最后
cluster.indices.tombstones.size
个删除,默认为 500。如果预计节点将从集群中消失并错过 500 多个删除,则可以增加它。我们认为这种情况很少见,因此默认值是这样。墓碑不会占用太多空间,但我们也认为像 50,000 这样的数字可能太大了。
如果 Elasticsearch 遇到当前集群状态中不存在的索引数据,则这些索引将被认为是悬挂索引。例如,如果当 Elasticsearch 节点脱机时您删除了超过 cluster.indices.tombstones.size
个索引,则会发生这种情况。
您可以使用 悬挂索引 API 来管理这种情况。
记录器
编辑可以使用 logger.
前缀动态更新控制日志记录的设置。例如,要将 indices.recovery
模块的日志记录级别提高到 DEBUG
,请发出此请求
resp = client.cluster.put_settings( persistent={ "logger.org.elasticsearch.indices.recovery": "DEBUG" }, ) print(resp)
response = client.cluster.put_settings( body: { persistent: { 'logger.org.elasticsearch.indices.recovery' => 'DEBUG' } } ) puts response
const response = await client.cluster.putSettings({ persistent: { "logger.org.elasticsearch.indices.recovery": "DEBUG", }, }); console.log(response);
PUT /_cluster/settings { "persistent": { "logger.org.elasticsearch.indices.recovery": "DEBUG" } }
持久任务分配
编辑插件可以创建一种称为持久任务的任务。这些任务通常是长期运行的任务,并存储在集群状态中,允许在集群完全重启后恢复任务。
每次创建持久任务时,主节点都会负责将任务分配给集群的节点,然后分配的节点将在本地提取并执行任务。将持久任务分配给节点的过程由以下设置控制
-
cluster.persistent_tasks.allocation.enable
-
(动态) 启用或禁用持久任务的分配
-
all
- (默认) 允许将持久任务分配给节点 -
none
- 不允许分配任何类型的持久任务
此设置不会影响正在执行的持久任务。只有新创建的持久任务,或者必须重新分配的任务(例如,在节点离开集群后),才会受此设置的影响。
-
-
cluster.persistent_tasks.allocation.recheck_interval
- (动态) 当集群状态发生重大变化时,主节点将自动检查是否需要分配持久任务。但是,可能还有其他因素(例如内存使用情况)会影响持久任务是否可以分配给节点,但不会导致集群状态更改。此设置控制执行分配检查的频率以响应这些因素。默认值为 30 秒。允许的最小值为 10 秒。