背景

有些索引数据作为临时数据存放,一段时间后我们希望索引可以自动过期删除,就是常说的TTL(Time To Live)机制

ElasticSearch索引数量过多会占用很多主分片和副本分片,最终导致可用分片数量为0,不能再创建新的索引

这里说明一下,我们用的ElasticSearch版本为7.8.0

官方文档

关于如何管理索引的生命周期策略,官方文档有详细的描述,英语基础能力好的同学可以自行研读官方wiki

Elasticsearch7.8 生命周期策略配置

https://www.elastic.co/guide/en/elasticsearch/reference/7.8/set-up-lifecycle-policy.html

Elasticsearch7.8 开启生命周期管理

https://www.elastic.co/guide/en/elasticsearch/reference/7.8/start-stop-ilm.html

Elasticsearch7.8 查询生命周期策略

https://www.elastic.co/guide/en/elasticsearch/reference/7.8/ilm-get-lifecycle.html

启用索引生命周期管理策略

curl -u 用户名:密码 --location --request POST http://127.0.0.1:9200/_ilm/start

创建Elasticsearch生命周期策略,TTL时间1小时

curl -u 用户名:密码 --location --request PUT http://127.0.0.1:9200/_ilm/policy/index_ttl_one_hours_policy --header "Content-Type: application/json" --data-raw "{\"policy\":{\"phases\":{\"delete\":{\"min_age\":\"1h\",\"actions\":{\"delete\":{}}}}}}"

查看已创建的生命周期管理策略

curl -u 用户名:密码 --request GET http://127.0.0.1:9200/_ilm/policy

调用客户端创建引用生命周期策略的索引

public boolean createIndex() throws IOException {
String indexName = "test_index";
Settings settings = Settings.builder().put("index.lifecycle.name", "index_ttl_one_hours_policy").build();
CreateIndexRequest createIndexRequest = new CreateIndexRequest(indexName);
createIndexRequest.settings(settings);
CreateIndexResponse indexResponse = EsRestClientCache.getEsClient(EsConstants.DEFAULT).indices().create(createIndexRequest, RequestOptions.DEFAULT);
log.info("CreateIndexResponse:" + indexResponse);
return indexResponse.isAcknowledged();
}

ElasticSearch生命周期策略时间单位

d - Days

h - Hours

m - Minutes

s - Seconds

ms -  Milliseconds

micros -  Microseconds

nanos -  Nanoseconds

ElasticSearch索引生命周期策略配置(ES TTL)的更多相关文章

  1. Elasticsearch索引生命周期管理方案

    一.前言 在 Elasticsearch 的日常中,有很多如存储 系统日志.行为数据等方面的应用场景,这些场景的特点是数据量非常大,并且随着时间的增长 索引 的数量也会持续增长,然而这些场景基本上只有 ...

  2. Elasticsearch 索引生命周期管理 ILM 实战指南

    文章转载自:https://mp.weixin.qq.com/s/7VQd5sKt_PH56PFnCrUOHQ 1.什么是索引生命周期 在基于日志.指标.实时时间序列的大型系统中,集群的索引也具备类似 ...

  3. Elasticsearch索引生命周期管理探索

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484130&idx=1&sn=454f199 ...

  4. ElasticSearch——索引生命周期管理

    从ES6.6开始,Elasticsearch提供索引生命周期管理功能,索引生命周期管理可以通过API或者kibana界面配置,详情参考[index-lifecycle-management] 本文仅通 ...

  5. ELK日志保留7天-索引生命周期策略

    一.简介 ELK日志我们一般都是按天存储,例如索引名为"kafkalog-2022-04-05",因为日志量所占的存储是非常大的,我们不能一直保存,而是要定期清理旧的,这里就以保留 ...

  6. Elasticsearch7.X ILM索引生命周期管理(冷热分离)

    Elasticsearch7.X ILM索引生命周期管理(冷热分离) 一.“索引生命周期管理”概述 Elasticsearch索引生命周期管理指:Elasticsearch从设置.创建.打开.关闭.删 ...

  7. Logstash & 索引生命周期管理(ILM)

    Grok语法 Grok是通过模式匹配的方式来识别日志中的数据,可以把Grok插件简单理解为升级版本的正则表达式.它拥有更多的模式,默认,Logstash拥有120个模式.如果这些模式不满足我们解析日志 ...

  8. 这么简单的ES索引生命周期管理,不了解一下吗~

    对于日志或指标(metric)类时序性强的ES索引,因为数据量大,并且写入和查询大多都是近期时间内的数据.我们可以采用hot-warm-cold架构将索引数据切分成hot/warm/cold的索引.h ...

  9. ES 7.13版本设置索引模板和索引生命周期管理

    第一步:索引管理中查看都有哪些索引文件,然后添加索引模式(后面的日期用*表示) 第二步:索引生命周期管理 自带的有一个log,就使用这个,不用再新建了,根据需求修改里面的配置就行了 第三步:添加索引模 ...

  10. Elastic 使用索引生命周期管理实现热温冷架构

    Elastic: 使用索引生命周期管理实现热温冷架构 索引生命周期管理 (ILM) 是在 Elasticsearch 6.6(公测版)首次引入并在 6.7 版正式推出的一项功能.ILM 是 Elast ...

随机推荐

  1. 【opencv】传统图像识别:hog+svm实现图像识别详解

    图像识别技术是信息时代的一门重要的技术,其产生目的是为了让计算机代替人类去处理大量的物理信息.传统图像识别技术的过程分为信息的获取.预处理.特征抽取和选择.分类器设计和分类决策.本文也是从这四点出发进 ...

  2. 问题排查:nginx能跑,但是只能跑一会,不能跑多了

    背景 上周都是查测试环境的问题,比如,我上一篇写的问题排查:nginx的反向代理感觉失效了一样,就是说这个事的.在文章里,最终查到是nginx的全连接队列满了(每个监听端口有个队列,完成三次握手的请求 ...

  3. 探索API接口:从概念到实践

    在当今数字化时代,API(Application Programming Interface)接口成为了各种应用程序之间实现数据交互和功能集成的关键.无论是开发一个网站.构建一个移动应用还是进行数据分 ...

  4. Kafka Stream 处理器API

    6.1章节内容 了解如何使用处理器API对以下场景进行处理 ①以有规律的间隔定期执行 ②将控制记录如何向下游发送 ③将记录转发给特定的子节点 ④创建Kafka Streams API中不存在的功能 6 ...

  5. JVM面试题、关键原理、JMM

    boolean:占用1个字节,取值为true或false. byte:占用1个字节,范围为-128到127. short:占用2个字节,范围为-32,768到32,767. int:占用4个字节,范围 ...

  6. ProcessingJS

    ProcessingJS 图形 rect(x, y, w, h)(在新窗口中打开) ellipse(x, y, w, h) triangle(x1, y1, x2, y2, x3, y3) line( ...

  7. 【Azure Logic App】在Azure Logic App中使用SMTP发送邮件示例

    问题描述 在Azure Logic App的官网介绍中,使用SMTP组件发送邮件非常简单(https://docs.azure.cn/zh-cn/connectors/connectors-creat ...

  8. Python 日期和时间处理教程:datetime 模块的使用

    Python 中的日期不是独立的数据类型,但我们可以导入一个名为 datetime 的模块来使用日期作为日期对象. 示例:导入 datetime 模块并显示当前日期: import datetime ...

  9. 2023 SHCTF-校外赛道 Crypto—Wp

    WEEK1 立正 wl hgrfhg 4gNUx4NgQgEUb4NC64NHxZLg636V6CDBiDNUHw8HkapH :jdoi vl vlkw ~xrb wd nrrT Y: 凯撒解密,偏 ...

  10. IPv4:根据CIDR显示地址范围

    最近遇到一个很有意思的点,于是就记录下来. CIDR一般是由IP地址和子网掩码组成,即 IP地址/子网掩码 格式. 子网掩码表示前面地址中的前多少位,为网络位,后面部分代表主机部分.例如:192.16 ...