Elasticsearch索引生命周期管理

elasticsearch 7.9.3知识归纳整理(五)之 es的索引生命周期管理 es的索引生命周期管理 阅读详情

前言

在ELK架构中,使用Elasticsearch来存储系统日志时,有如下典型的特点:

  • 数据量非常大
  • 经常访问新增的数据,随着时间的推移,数据的价值也在逐渐降低

随着数据量的增大,Elasticsearch创建索引的数量也在不断增长,这个时候就需要对 索引 进行一定策略的维护管理甚至是删除清理,否则随着数据量越来越多除了浪费磁盘与内存空间之外,还会严重影响 Elasticsearch 的性能。

为了对Elasticsearch中的索引进行更好的管理,Elasticsearch在6.6版本中引入了Index Lifecycle Management(索引生命周期管理),简称ILM,并在 6.7 版正式推出该功能。

本篇示例使用的环境:

  • Elasticsearch版本7.2.0
  • Kibana版本7.2.0
  • Elasticsearch节点个数:2

一、概述

索引生命周期管理ILM是指Elasticsearch对索引进行设置、创建、打开、关闭、删除的全生命周期管理的过程。

1.1 阶段介绍

将索引生命周期分为4个阶段:hot、warm、cold、delete。

其中hot阶段主要负责对索引进行滚动更新操作,warm、cold、delete阶段主要负责进一步处理滚动更新后的数据。

19.Elasticsearch索引生命周期管理01.png

具体介绍

阶段介绍
hot热数据阶段,主要处理时序数据的实时写入。可根据索引的文档数、大小、时长决定是否调用rollover API来滚动更新索引。
warm冷数据阶段,索引不再写入,主要用来提供查询。
cold冷数据阶段,索引不再更新,查询很少,查询速度会变慢。
delete删除数据阶段,索引将被删除。
添加生命周期管理方式
  • 通过索引模板添加生命周期管理策略

    将策略应用到整个别名覆盖的索引下

  • 为单个索引添加生命周期管理策略

    只能覆盖当前索引,新滚动的索引不再受策略影响。

阶段动作
阶段/action优先级设置取消跟随滚动索引分片分配只读强制段合并收缩索引冻结索引删除
hot√√√××××××
warm√√×√√√√××
cold√√×√×××√×
delete××××××××√
1.2 常用Action
参数说明
rollover当写入索引达到了一定的大小,文档数量或创建时间时,rollover可创建一个新的写入索引,将旧的写入索引的别名去掉,并把别名赋给新的写入索引。所以便可以通过切换别名控制写入的索引是谁。它可用于Hot阶段。
shrink减少一个索引的主分片数,可用于Warm阶段。需要注意的是当shink完成后索引名会由原来的<origin-index-name>变为shrink-<origin-index-name>.
force merge可触发一个索引分片的segment merge,同时释放掉被删除文档的占用空间。用于Warm阶段。
allocate可指定一个索引的副本数,用于warm, cold阶段。
delete删除索引,用户delete阶段

二、配置生命周期管理

2.1 需求

索引策略如下:

  • 初始创建索引包含一个主分片和一个副本分片
  • 刚创建的索引默认在hot阶段
  • 当文档数量达到5个进行滚动更新,旧索引从hot阶段进入到warm阶段
  • 在warm阶段,删除掉索引副本分片,只留下主分片
  • 在10秒后索引从warm阶段进入到delete阶段,并在20秒后将索引删除。
2.2 步骤
  • 第一步:配置lifecycle检测时间;
  • 第二步:创建一个索引策略;
  • 第三步:创建一个索引模版,指定使用的索引策略;
  • 第四步:创建一个符合上述索引模版的索引;
  • 第五步:向索引中写入数据,使索引触发滚动更新策略;
  • 第六步:查看索引所处阶段
2.3 实现

(1)配置lifecycle检测时间



PUT /_cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval": "1s" 
  }
}

默认为十分钟,为了测试看效果,改为1秒钟,如果在生产环境中则不需要进行修改。

(2)创建一个索引策略

# /_ilm/policy为固定格式,leefs_ilm_policy为创建索引策略名称
PUT /_ilm/policy/leefs_ilm_policy
{
  # policy:配置策略
  "policy": {
    # phases:阶段配置
    "phases": {
      "hot": {
        "actions": {
    	  # rollover:滚动更新
          "rollover": {
    		# max_docs:文档数量最大为5执行操作
            "max_docs": "5"
          }
        }
      },
      "warm": {
        # min_age:该阶段最小停留时长
        "min_age": "10s",
        "actions": {
          # allocate:指定一个索引的副本数
          "allocate": {
          	# number_of_replicas:进行索引副本数量设置
            "number_of_replicas": 0
          }
        }
      },
      "delete": {
        "min_age": "20s",
        "actions": {
          # delete:删除索引,如果没有该方法即使到删除阶段也不执行删除操作
          "delete": {}
        }
      }
    }
  }
}

说明

在创建索引策略时,不是每个阶段都是必须的,除了hot阶段,其他阶段都可以根据需求进行省略。

包括滚动更新(rollover)在内的所有actions中的方法都可以根据需求进行省略。

(3)创建一个索引模版,指定使用的索引策略

# leefs_ilm_template:索引模版名称
PUT _template/leefs_ilm_template
{
  # 模版匹配的索引名以"leefs_logs-"开头
  "index_patterns": ["leefs_logs-*"],                 
  "settings": {
    # number_of_shard:设置主分片数量
    "number_of_shards": 1,
    # number_of_replicas:设置副本分片数量
    "number_of_replicas": 1,
    # 通过索引策略名称指定模版所匹配的索引策略
    "index.lifecycle.name": "leefs_ilm_policy", 
    # 索引rollover后切换的索引别名为leefs_logs
    "index.lifecycle.rollover_alias": "leefs_logs"
  }
}

(4)创建一个符合上述索引模版的索引

# 清空之前索引
DELETE leefs_logs*

# 创建第一个索引
PUT leefs_logs-000001
{
  "aliases": {
    //设置索引别名为leefs_logs的索引
    "leefs_logs": {
      //允许索引被写入数据
      "is_write_index":true
    }
  }
}

(5)向索引中写入数据,使索引触发滚动更新策略

# refresh写入后更新
POST leefs_logs/_doc?refresh
{
  "name":"llc"
}

上方命名执行5次,使其触发滚动更新策略。

(6)查看索引所处阶段

# 查询索引名称以leefs_logs-开头的索引信息
GET leefs_logs-*/_ilm/explain

查询结果

19.Elasticsearch索引生命周期管理02.jpg


json

复制代码

# 查询索引别名 GET _alias/

19.Elasticsearch索引生命周期管理03.jpg

三、更新策略

  1. 如果没有index应用这份策略,那么我们可以直接更新该策略。
  2. 如果有index应用了这份策略,那么当前正在执行的阶段不会同步修改,当当前阶段结束后,会进入新版本策略的下个阶段。
  3. 如果更换了策略,当前正在执行的阶段不会变化,在结束当前阶段后,将会由新的策略管理下一个生命周期。

四、启动和停止索引生命周期管理

ILM默认是开启状态。

(1)查看ILM的当前运行状态

GET  _ilm/status

执行结果

{
  "operation_mode" : "RUNNING"
}

ILM的操作模式

阶段/action优先级设置
正在运行正常运行,所有策略均正常执行
停止ILM已收到停止请求,但仍在处理某些策略
已停止这表示没有执行任何策略的状态

(2)停止ILM

POST  _ilm/stop

停止后,所有其他政策措施都将停止。这将反映在状态API中

{
    "operation_mode": "STOPPING"
}

然后,ILM服务将异步地将所有策略运行到可以安全停止的位置。在ILM确认它是安全的之后,它将移至该STOPPED模式

{
    "operation_mode": "STOPPED"
}

(3)启动ILM

POST  _ilm/start

启动后查询状态

{
  "operation_mode": "RUNNING"
}

ES索引生命周期管理 基于如何 定时删除ES索引过期数据 而引发的一系列关于ES索引生命周期管理ILM(Index Lifecycle Management)的学习。 阅读详情

相关推荐

37.索引生命周期管理—kibana 索引配置

36.3 容量规划案例2 基于时间序列的数据 相关的用案 日志 / 指标 / 安全相关的 Events 舆情分析 特性 每条数据都有时间戳;文档基本不会被更新(日志和指标数据) 用户更多的会查询近期的数据;对旧的数据查询相对较少 对数据的写入性能要求比较高 36.4 创建基于时间序列的索引 创建 time-based 索引 在索引的名字中增加时间信息 按照 每天 / 每周 / 每月 的方式进行划分 好处 更加合理的组织索引,例如随着时间推移,便于对索引做的老化处理 利用 Ho

大勇若怯任卷舒 2596

ELK生命周期

ELK+kafka<es生命周期可视化配置界面>

万物皆代码 1916

手把手教程:使用es客户端工具进行索引生命周期管理

通过es客户端工具,轻松完成索引的创建、滚动和删除等操作,结合策略配置实现自动化生命周期管理,提升elasticsearch集群运维效率与数据治理能力。

weixin_33068055的博客 321

第 24 章 - Elasticsearch 索引生命周期管理

本章讲解 Elasticsearch 的索引生命周期管理。通过 ES 的索引生命周期管理,我们可以非常方便的实现,索引自动删除、索引备份功能。下面我将介绍生命周期的相关概念,以及基本使用。

不能放弃治疗 1962

Elasticsearch ILM 索引生命周期管理讲解与实战

在当今的数据驱动时代,Elasticsearch已成为处理大规模数据集的事实标准。它不仅提供了快速的搜索能力,还支持复杂的数据分析。然而,随着数据量的不断增长,如何高效地管理这些数据成为了一个挑战。Elasticsearch ILM(Index Lifecycle Management)应运而生,它允许我们自动化地管理索引的整个生命周期,从而优化性能和成本。使用ILM主要涉及两个步骤:定义生命周期策略和应用该策略到索引。

yonggeit的博客 3744

【Elasticsearch】Elasticsearch 索引生命周期管理

1.概述 1.1 为什么要对elasticsearch进行生命周期管理? ES索引存活数量过多,会给ES集群带来较大压力,不仅严重影响数据录入和数据查询效率,而且导致磁盘、CPU占用比过高,加大节点“驾崩”的风险。对ES进行索引生命周期管理意义重大,不仅能提高服务器性能,降低内存和磁盘使用率,而且能够优化数据结构,提升读写、查询效率,避免数据丢失情况出现。 1.2 什么是索引周期管理 定义:以时间为导向对数据进行应用策略操作。 索引管理流程:热数据->暖数据->冷数据->数据归档->

九师兄 1455

es 深入了解和索引生命周期管理

解释:translog的作用:在执行commit之前,所有的而数据都是停留在buffer或OS cache之中,无论buffer或OS cache都是内存,一旦这台机器死了,内存的数据就会丢失,所以需要将数据对应的操作写入一个专门的日志问价之中,一旦机器出现宕机,再次重启的时候,es会主动的读取translog之中的日志文件的数据,恢复到内存buffer和OS cache之中。:索引(简单理解就是一个数据库),包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称。

会跳的蚂蚁 1779

unity中判断是否联网,判断网络状态的两种方式

unity中判断是否联网,判断网络状态的两种方式

wla2996gpy032的博客 1876

Elasticsearch的索引生命周期管理

通过以上方法,可以有效监控和调整Elasticsearch ILM策略的性能,确保数据生命周期管理的高效性和稳定性。

喝醉酒的小白 2374

数据采集卡架构与PCIe优化设计详解

数据采集卡(DAQ)作为工业自动化中的关键设备,其核心在于模数转换(ADC)和数字信号处理技术。现代系统普遍采用PCIe总线架构,通过DMA传输和时钟同步技术实现高速数据采集。在信号调理环节,可编程增益放大器(PGA)和抗混叠滤波器确保信号质量;而Σ-Δ型ADC则提供高达24位的分辨率。实际应用中,从电力监测到机床振动分析,数据采集卡需要结合具体场景优化配置。通过合理的PCB布局和EMI防护设计,可以有效提升系统在工业环境中的可靠性。

weixin_29168675的博客 909

R语言maftools包实战:5分钟搞定TCGA癌症突变数据可视化(附完整代码)

本文详细介绍了如何使用R语言的maftools包快速解析和可视化TCGA癌症突变数据。通过实战演示,从环境搭建、数据导入到核心可视化(如瀑布图、棒棒糖图)和深度统计分析(如生存分析、突变特征),帮助生物信息学研究者高效完成癌症基因组学分析,大幅提升从原始MAF数据到发表级图表的效率。

weixin_29054399的博客 187

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

ILM、es生命周期管理、es数据删除、es 索引管理、es 索引删除

sinat_33076015的博客 3202

COMSOL网格划分技巧总结

在对马赫曾德尔型光学传感器进行模拟仿真时,在采用自动物理场自动控制网格-极细化的情况下透射谱曲线仍不理想,因此需要手动划分网格来对其进行更精细的剖分。 手动划分的基本原则是在作用边界,热点,曲边处做细致划分, 基底,包层等做粗略划分。对于光波导型的微纳结构,在仿真时一般需要用到创建边界层网格。 1.COMSOL所需要的网格数量 网格单元数越多,结果精细度越高,计算所需内存越多。在细化到一定程度后网格收敛,仿真结果提升不明显。 2.网格剖分类型 ...

qq_42453337的博客 4万+

Elasticsearch(ES)索引生命周期管理 (Index Lifecycle Management, ILM)

前面我们介绍模板的时候有提到过我们会在ES生成大量的索引,但是我们不能光生成索引,不考虑释放的问题,所以我们 就引入今天的概念:索引生命周期管理 (Index Lifecycle Management, ILM)。

348

antdv-<a-form>的使用

是 Ant Design Vue 中用于创建表单的组件,提供了一种结构化的方式来收集用户输入。它支持多种布局、验证、数据绑定等功能,非常适合用于处理用户输入和提交数据。

2302_81312344的博客 2617

永磁同步电机功率计算实战:从公式到避坑指南(附Excel计算模板)

本文详细解析永磁同步电机(PMSM)功率计算的实战技巧,涵盖三维参数体系、三相与单相系统差异、动态工况补偿及常见计算陷阱。特别提供Excel计算模板,帮助工程师快速准确完成功率计算,避免工业应用中的常见错误,提升工作效率。

x8y9z0的博客 803

ES索引的生命周期管理

ES索引的生命周期管理 介绍 ​ ES可用于索引日志类数据,在此场景下,数据是源源不断地被写入到索引中。为了使索引的文档不会过多,查询的性能更好,我们希望索引可以根据大小、文档数量或索引已创建时长等指标进行自动回滚,可以自定义将超过一定时间的数据进行自动删除。ES为我们提供了索引的生命周期管理来帮助处理此场景下的问题。 ​ 索引的生命周期分为四个阶段:HOT->WARM->COLD->DELETE。 ​ HOT为必须的阶段外,其他为非必须阶段,可以任意选择配置。在日志类场景下不需要W

u014294083的博客 4318

化工热力学软件:Aspen Plus二次开发_(9).过程控制与动态模拟v1

Aspen Plus 提供了丰富的过程控制工具和方法,可以用于静态和动态过程的模拟和控制策略的开发。通过控制回路设计、动态模拟、优化工具和数据交换接口,用户可以设计和优化各种复杂的控制策略,提高化工生产的稳定性和效率。此外,结合外部软件(如MATLAB、Simulink、LabVIEW等),可以实现更高级的控制策略,如自适应控制和模型预测控制,进一步提升过程控制的精度和灵活性。希望本文的内容能帮助用户更好地理解和应用Aspen Plus中的过程控制功能。

kkchenjj的博客 405

ES--索引生命周期管理

1,为什么要对elasticsearch进行生命周期管理? ES索引存活数量过多,会给ES集群带来较大压力,不仅严重影响数据录入和数据查询效率,而且导致磁盘、CPU占用比过高,加大节点“驾崩”的风险。对ES进行索引生命周期管理意义重大,不仅能提高服务器性能,降低内存和磁盘使用率,而且能够优化数据结构,提升读写、查询效率,避免数据丢失情况出现。 2,如何对elasticsearch进行生命周期管理?...

weixin_42367527的博客 2566

系统架构设计(以飞控系统、航电系统、机电管理系统、电子电气架构为例)

系统架构涉及对系统的结构和行为进行高层次的描述。它包括系统的组成部分、这些部分之间的关系、与外部环境的交互方式,以及满足特定功能和非功能性需求的方法。系统架构定义了系统的总体设计蓝图,指导系统的开发、集成、部署和维护。系统架构设计的目的是通过合理的结构和设计原则,确保系统能够高效、稳定、安全地运行,满足当前和未来的需求,同时具备良好的维护性、扩展性和可持续性。良好的系统架构不仅能够提高系统的开发效率和运行性能,还能降低长期的维护和运营成本,支持系统的持续演进和技术更新。

qq_41854911的博客 3052

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

使用历史索引监控 Elasticsearch 索引生命周期管理

​大家好!在之前的一篇博客中,我们概述了常见的索引生命周期管理 (index lifecycle management -ILM) 问题及其解决方案。此后,我们已将这些常见场景添加到我们的 Elasticsearch 文档中,并附带示例演示视频。在这里,我们将扩展 ILM 历史索引(ILM history index),以演示如何在故障排除期间使用它,并在需要干预时设置主动警报。

Elastic 中国社区官方博客 1951

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Elasticsearch索引生命周期管理方案

点击上方蓝色“方志朋”,选择“设为星标”回复“666”获取独家整理的学习资料!一、前言 在 Elasticsearch 的日常中,有很多如存储 「系统日志」、「行为数据」等方面的应用场景,...

方志朋的博客 544

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Elasticsearch索引管理和生命周期管理

Elasticsearch的索引生命周期管理(ILM)是一个强大的功能,它允许用户定义索引的生命周期策略,自动管理索引的创建、滚动、删除等过程。通过ILM,可以极大地简化索引管理的复杂性,提高资源利用率,降低运维成本。Elasticsearch索引管理和生命周期管理是确保系统高效运行的重要一环。通过制定合理的索引命名规范、优化索引分片与副本设置、利用索引模板自动化索引创建,以及采用ILM策略自动化索引生命周期管理,可以显著提升Elasticsearch的性能、可用性和成本效益。

得塔云的博客 866

Elasticsearch 索引生命周期管理

Elasticsearch 7.0新特性可以配置索引生命周期

a807719447的专栏 1944
上一篇: Python 进阶 (十三) 浅谈 sorted 函数应用及文件操作
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值