- 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
- 依赖项和版本
索引生命周期管理错误问题排查
编辑索引生命周期管理错误问题排查
编辑当 ILM 执行生命周期策略时,在为某个步骤执行必要的索引操作时可能会发生错误。发生这种情况时,ILM 会将索引移动到 ERROR
步骤。如果 ILM 无法自动解决错误,则会暂停执行,直到您解决策略、索引或集群的底层问题。
请观看此视频,了解如何排查当前 ILM 运行状况问题,并观看此视频,了解如何排查历史 ILM 问题。
例如,您可能有一个 shrink-index
策略,该策略在索引至少存在五天后将其收缩为四个分片
resp = client.ilm.put_lifecycle( name="shrink-index", policy={ "phases": { "warm": { "min_age": "5d", "actions": { "shrink": { "number_of_shards": 4 } } } } }, ) print(resp)
response = client.ilm.put_lifecycle( policy: 'shrink-index', body: { policy: { phases: { warm: { min_age: '5d', actions: { shrink: { number_of_shards: 4 } } } } } } ) puts response
const response = await client.ilm.putLifecycle({ name: "shrink-index", policy: { phases: { warm: { min_age: "5d", actions: { shrink: { number_of_shards: 4, }, }, }, }, }, }); console.log(response);
PUT _ilm/policy/shrink-index { "policy": { "phases": { "warm": { "min_age": "5d", "actions": { "shrink": { "number_of_shards": 4 } } } } } }
没有什么可以阻止您将 shrink-index
策略应用于只有两个分片的新索引
resp = client.indices.create( index="my-index-000001", settings={ "index.number_of_shards": 2, "index.lifecycle.name": "shrink-index" }, ) print(resp)
response = client.indices.create( index: 'my-index-000001', body: { settings: { 'index.number_of_shards' => 2, 'index.lifecycle.name' => 'shrink-index' } } ) puts response
const response = await client.indices.create({ index: "my-index-000001", settings: { "index.number_of_shards": 2, "index.lifecycle.name": "shrink-index", }, }); console.log(response);
PUT /my-index-000001 { "settings": { "index.number_of_shards": 2, "index.lifecycle.name": "shrink-index" } }
五天后,ILM 尝试将 my-index-000001
从两个分片收缩为四个分片。由于收缩操作不能增加分片数量,因此该操作失败,ILM 将 my-index-000001
移动到 ERROR
步骤。
您可以使用 ILM Explain API 来获取有关哪里出错的信息
resp = client.ilm.explain_lifecycle( index="my-index-000001", ) print(resp)
response = client.ilm.explain_lifecycle( index: 'my-index-000001' ) puts response
const response = await client.ilm.explainLifecycle({ index: "my-index-000001", }); console.log(response);
GET /my-index-000001/_ilm/explain
它会返回以下信息
{ "indices" : { "my-index-000001" : { "index" : "my-index-000001", "managed" : true, "index_creation_date_millis" : 1541717265865, "time_since_index_creation": "5.1d", "policy" : "shrink-index", "lifecycle_date_millis" : 1541717265865, "age": "5.1d", "phase" : "warm", "phase_time_millis" : 1541717272601, "action" : "shrink", "action_time_millis" : 1541717272601, "step" : "ERROR", "step_time_millis" : 1541717272688, "failed_step" : "shrink", "step_info" : { "type" : "illegal_argument_exception", "reason" : "the number of target shards [4] must be less that the number of source shards [2]" }, "phase_execution" : { "policy" : "shrink-index", "phase_definition" : { "min_age" : "5d", "actions" : { "shrink" : { "number_of_shards" : 4 } } }, "version" : 1, "modified_date_in_millis" : 1541717264230 } } } }
用于管理索引的策略: |
|
索引存在时间:5.1 天 |
|
索引当前所处的阶段: |
|
当前操作: |
|
索引当前所处的步骤: |
|
未能执行的步骤: |
|
错误的类型和该错误的描述。 |
|
来自 |
要解决此问题,您可以更新策略,以便在 5 天后将索引收缩为单个分片
resp = client.ilm.put_lifecycle( name="shrink-index", policy={ "phases": { "warm": { "min_age": "5d", "actions": { "shrink": { "number_of_shards": 1 } } } } }, ) print(resp)
response = client.ilm.put_lifecycle( policy: 'shrink-index', body: { policy: { phases: { warm: { min_age: '5d', actions: { shrink: { number_of_shards: 1 } } } } } } ) puts response
const response = await client.ilm.putLifecycle({ name: "shrink-index", policy: { phases: { warm: { min_age: "5d", actions: { shrink: { number_of_shards: 1, }, }, }, }, }, }); console.log(response);
PUT _ilm/policy/shrink-index { "policy": { "phases": { "warm": { "min_age": "5d", "actions": { "shrink": { "number_of_shards": 1 } } } } } }
重试失败的生命周期策略步骤
编辑修复导致索引进入 ERROR
步骤的问题后,您可能需要明确告知 ILM 重试该步骤
resp = client.ilm.retry( index="my-index-000001", ) print(resp)
const response = await client.ilm.retry({ index: "my-index-000001", }); console.log(response);
POST /my-index-000001/_ilm/retry
ILM 随后尝试重新运行失败的步骤。您可以使用 ILM Explain API 来监视进度。
常见的 ILM 设置问题
编辑如何计算 min_age
编辑设置 ILM 策略或使用 ILM 自动化滚动更新时,请注意 min_age
可以相对于滚动更新时间或索引创建时间。
如果您使用 ILM 滚动更新,则 min_age
是相对于索引滚动更新的时间计算的。这是因为 滚动更新 API 生成新索引,并将上一个索引的 age
更新为反映滚动更新时间。如果索引尚未滚动更新,则 age
与索引的 creation_date
相同。
您可以使用 index.lifecycle.origination_date
和 index.lifecycle.parse_origination_date
ILM 设置来覆盖 min_age
的计算方式。
常见的 ILM 错误
编辑以下是如何解决在 ERROR
步骤中报告的最常见错误。
滚动更新别名的问题是错误的常见原因。考虑使用 数据流而不是使用别名管理滚动更新。
滚动更新别名 [x] 可以指向多个索引,在索引模板 [z] 中找到重复的别名 [x]
编辑目标滚动更新别名在索引模板的 index.lifecycle.rollover_alias
设置中指定。当您引导初始索引时,您需要一次显式配置此别名。然后,滚动更新操作将管理设置并将别名更新为滚动更新到每个后续索引。
不要在索引模板的别名部分中显式配置相同的别名。
请观看解决 重复别名
问题的视频,了解问题排查示例。
index.lifecycle.rollover_alias [x] 未指向索引 [y]
编辑索引使用的别名错误,或者该别名不存在。
检查 index.lifecycle.rollover_alias
索引设置。要查看配置了哪些别名,请使用 _cat/aliases。
请观看解决 未指向索引
问题的视频,了解问题排查示例。
索引 [y] 的设置 [index.lifecycle.rollover_alias] 为空或未定义
编辑必须配置 index.lifecycle.rollover_alias
设置,滚动更新操作才能工作。
更新索引设置以设置 index.lifecycle.rollover_alias
。
请观看解决 为空或未定义
问题的视频,了解问题排查示例。
别名 [x] 具有多个写入索引 [y,z]
编辑对于特定的别名,只能将一个索引指定为写入索引。
使用 别名 API 将除一个索引之外的所有索引的 is_write_index:false
设置为 false。
请观看解决 多个写入索引
问题的视频,了解问题排查示例。
索引名称 [x] 与模式 ^.*-\d+ 不匹配
编辑索引名称必须与正则表达式模式 ^.*-\d+
匹配,滚动更新操作才能工作。最常见的问题是索引名称不包含尾随数字。例如,my-index
不符合模式要求。
将数值追加到索引名称,例如 my-index-000001
。
请观看解决 不匹配模式
问题的视频,了解问题排查示例。
CircuitBreakingException:[x] 数据过大,[y] 的数据
编辑这表示集群正在达到资源限制。
在继续设置 ILM 之前,您需要采取措施缓解资源问题。有关详细信息,请参阅断路器错误。
高磁盘水位线 [x] 在 [y] 上超出
编辑这表示集群的磁盘空间不足。当您没有设置索引生命周期管理以从热节点滚动更新到温节点时,可能会发生这种情况。有关详细信息,请参阅修复水位线错误。
security_exception:用户 [<user-name>] 的角色 [<role-name>] 未授权执行操作 [<action-name>],此操作由索引权限 [manage_follow_index,manage,all] 授予
编辑这表示无法执行 ILM 操作,因为 ILM 用于执行操作的用户没有正确的权限。当用户更新 ILM 策略后其权限被删除时,可能会发生这种情况。ILM 操作的运行方式就像是由最后修改策略的用户执行的操作一样。用于创建或修改策略的帐户应具有执行该策略所有操作的权限。
On this page
- 重试失败的生命周期策略步骤
- 常见的 ILM 设置问题
- 如何计算
min_age
- 常见的 ILM 错误
- 滚动更新别名 [x] 可以指向多个索引,在索引模板 [z] 中找到重复的别名 [x]
- index.lifecycle.rollover_alias [x] 未指向索引 [y]
- 索引 [y] 的设置 [index.lifecycle.rollover_alias] 为空或未定义
- 别名 [x] 具有多个写入索引 [y,z]
- 索引名称 [x] 与模式 ^.*-\d+ 不匹配
- CircuitBreakingException:[x] 数据过大,[y] 的数据
- 高磁盘水位线 [x] 在 [y] 上超出
- security_exception:用户 [<user-name>] 的角色 [<role-name>] 未授权执行操作 [<action-name>],此操作由索引权限 [manage_follow_index,manage,all] 授予