加载中

Elasticsearch 中的索引生命周期管理 (ILM)

索引生命周期管理 (ILM) 可自动管理基于时间的索引(例如日志和指标)。通过使用 ILM 策略,您可以简化索引滚动、保留和删除流程,从而优化数据的性能、可靠性和存储成本。

例如,您可以使用 ILM 来:

  • 当索引达到一定大小或文档数量时,启动一个新索引
  • 每天、每周或每月创建一个新索引,并归档以前的索引
  • 删除旧索引以执行数据保留标准
重要提示

要使用 ILM,集群中的所有节点必须运行相同的版本。尽管在混合版本集群中创建和应用策略可能是可行的,但无法保证它们能按预期工作。尝试使用在集群的所有节点上不受支持的操作的策略会导致错误。

请注意 ILM 的可用性,以确保它适用于您的用例。

  • 您可以使用 ILM 来管理索引和数据流

    • 索引: 您可以使用 ILM 来管理特定索引或一组索引,通过定义生命周期策略并将其应用于索引或索引别名。然后,每个索引都会根据其策略进行评估,并根据预定义的条件经历各个阶段(hot(热)、warm(温)、cold(冷)、frozen(冻结)、delete(删除))。这种方法可以对每个索引进行更细粒度的控制,但与使用我们推荐的数据流相比,需要付出相当多的努力。

    • 数据流: 数据流充当包含仅追加、时间序列数据的索引集的抽象层。您可以将数据流配置为单个命名资源来配置 ILM,以便自动对数据流的后端索引执行滚动和其他配置的操作。

  • ILM 适用于版本化 Elastic Stack 上的所有部署类型,但不适用于 Elasticsearch Serverless。在 Serverless 环境中,数据流生命周期可用作数据生命周期选项。

    Serverless 环境中更简单的生命周期管理

    ILM 让您可以根据性能需求和保留要求自动将索引迁移到不同的数据层。这使您能够在硬件成本和性能之间取得平衡。ILM 在 Serverless 中不可用,因为在该环境中,您的集群性能已为您优化。相反,数据流生命周期可用作数据管理选项。

    数据流生命周期是一种更简单的生命周期管理工具,针对最常见的生命周期管理需求进行了优化。它使您能够配置数据的保留期限并优化数据的存储方式,而无需涉及数据层等以硬件为中心的概念。有关 ILM 和数据流生命周期的详细比较,请参阅 数据生命周期

ILM 策略可以触发如下操作:

  • 滚动 (Rollover):当当前索引达到一定大小、文档数量或存活时间时,创建一个新的写入索引。
  • 收缩 (Shrink):减少索引中的主分片数量。
  • 强制合并 (Force merge):触发强制合并以减少索引分片中的段数量。
  • 删除 (Delete):永久移除索引,包括其所有数据和元数据。
  • 以及更多

每个操作都有选项,您可以用来指定索引的行为和特征,例如:

  • 您希望滚动到新索引时的最大分片大小、文档数量或存活时间。
  • 索引不再被更新且可以减少主分片数量的时间点。
  • 何时强制合并以永久删除标记为删除的文档。
  • 索引可以移动到性能较低的硬件上的时间点。
  • 可用性不再那么关键且可以减少副本数量的时间点。
  • 何时可以安全地删除索引。

例如,如果您正在将来自一组 ATM 机的指标数据索引到 Elasticsearch 中,您可以定义一个如下的策略:

  1. 当索引的主分片总大小达到 50GB 时,滚动到新索引。
  2. 将旧索引移动到温阶段,标记为只读,并将其收缩为单个分片。
  3. 7 天后,将索引移动到冷阶段并将其移动到更便宜的硬件上。
  4. 一旦达到 30 天的保留期要求,即删除索引。

索引生命周期操作中了解所有可用操作。

您可以通过 Kibana 的索引管理 UI 或 ILM API 创建和管理索引生命周期策略。有关创建和管理索引生命周期策略的更多详细信息,请参阅:

当您安装 Elastic 集成,或使用 Elastic Agent、Beats 或 Logstash Elasticsearch 输出插件将数据发送到 Elastic Stack 时,会自动创建默认的索引生命周期管理策略。

index lifecycle policies

提示

要自动备份您的索引并管理快照,请使用快照生命周期策略

如果您想在执行维护、对集群进行其他更改或进行任何故障排查时暂时暂停 ILM 服务,请参阅启动和停止索引生命周期管理

如果在运行 ILM 时出现任何问题,请参阅修复索引生命周期管理错误以获取详细的故障排查指南。

对于当前正在使用索引维护(index curation)的现有热-温部署,迁移到 ILM 可为您提供对每个索引生命周期的更细粒度控制。阅读更多内容:

您还可以设置 ILM 来管理尚未具有托管生命周期的一组现有索引。您应用的 ILM 策略不应包含滚动操作,因为当滚动操作创建新索引时,该策略不会被延续。有关更多信息,请参阅将索引生命周期策略应用于现有的 Elasticsearch 索引

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.