Elasticsearch查询慢、效率低、磁盘不够用?索引生命周期管理帮您解决

对于时间序列数据,会随着时间的积累越来越大,您可以通过索引生命周期管理ILM(Index Lifecycle Management)定期将数据滚动到新索引,防止因数据过大影响查询效率和成本。随着索引的老化和查询频率的降低,您可以将其转移到价格较低的磁盘上,并减少分片和副本的数量。本文以管理Heartbeat数据为例,介绍通过ILM管理索引的方法。

索引生命周期管理ILM是指ES对索引进行设置、创建、打开、关闭、删除的全生命周期管理的过程。ES(6.6.0及以上版本)提供了ILM功能,将索引生命周期分为4个阶段:hot、warm、cold、delete。其中hot阶段主要负责对索引进行滚动更新操作,warm、cold、delete阶段主要负责进一步处理滚动更新后的数据,详细说明如下。

阶段 描述
hot 主要处理时序数据的实时写入。可根据索引的文档数、大小、时长决定是否调用rollover API来滚动更新索引。
warm 索引不再写入,主要用来提供查询。
cold 索引不再更新,查询很少,查询速度会变慢。
delete 数据将被删除。

本文使用的测试场景如下:

业务场景中存在大量的heartbeat-*时序索引,并且每天单个索引大小都为4MB左右。当数据越来越多时,shard数量也会越来越多,导致集群负载增加。所以需要指定不同的滚动更新策略,在hot阶段滚动更新heartbeat-*开头的历史监控索引,warm阶段对索引进行分片收缩及段合并,cold阶段将数据从hot节点迁移到warm(冷数据)节点,delete阶段定期删除索引数据。
本文使用阿里云Elasticsearch进行演示。阿里云Elasticsearch兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务。支持5.5.3、6.3.2、6.7.0、6.8.0和7.4.0等多个版本,并提供了商业插件X-Pack服务。在开源Elasticsearch的基础上提供企业级权限管控、安全监控告警、自动报表生成等功能。单击此处即可免费试用。

操作流程

  1. 准备工作

    创建阿里云ES实例、开启自动创建索引功能、配置公网地址访问白名单。

  2. 步骤一:在Heartbeat下配置ILM

    在heartbeat.yml中开启阿里云ES的生命周期管理功能,并配置其参数。配置完成并启动后,系统会自动在对应阿里云ES实例中生成Heartbeat索引模板。

  3. 步骤二:创建ILM策略

    通过ilm policy API创建生命周期管理策略,该策略用来定义索引滚动更新和归档的条件。

  4. 步骤三:为ILM策略关联索引模板

    为上一步创建的生命周期管理策略关联Heartbeat索引模板。

  5. 步骤四:为索引关联ILM策略

    为第一个Heartbeat索引关联生命周期管理策略,以便将该策略应用到整个Heartbeat索引模板覆盖的索引下。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值