一、前言

  es可以用来存储日志,一般日志存储只是短期保存,超过一定时间日志要是能自动删除最好,这样保证索引文档不会过多,查询时效性也能得到保证。本文参考的官网地址是:https://www.elastic.co/guide/en/elasticsearch/reference/7.5/getting-started-index-lifecycle-management.html  。索引的生命周期分为四个阶段:HOT->WARM->COLD->DELETE。

上面除了HOT为必须的阶段外,其他为非必须阶段,可以任意选择配置。因为日志索引只要满足自己删除功能,所以下文只配置了HOT与DELETE阶段。

二、配置

  配置自己删除功能,必须配置策略(policy)、索引模版(template)、索引(index)。上述配置缺一不可。

  1)配置策略

PUT _ilm/policy/datastream_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover":{
"max_docx":1
}
}
},
"delete": {
"min_age": "30s",
"actions": {
"delete": {}
}
}
}
}
}

采用PUT方式向es创建一个名为“datastream_policy“的策略,"_ilm/policy"为固定写法。如果是使用postman,选择PUT请求方式,地址为:http://ip:port/_ilm/policy/datastream_policy ,HOT阶段:当日志索引超过1条时就会发生rollover,此处设置1条主要是为了测试方便。DELETE阶段:超过30秒时执行删除。

hot->actions->rollover还支持其他维度的控制,比如:

"max_size": "50GB"
"max_age": "30d"

  2)配置索引模版

PUT _template/datastream_template
{
"index_patterns": ["datastream-*"],
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1,
"index.lifecycle.name": "datastream_policy",
"index.lifecycle.rollover_alias": "datastream"
}
}

创建一个索引模版,索引以datastream-开头的自动采用settings的配置。"index.lifecycle.name"意为采用”datastream_policy“的策略,"index.lifecycle.rollover_alias"意为创建使用该模版创建的索引统一用”datastream“的别名进行管理。

  

  3)创建索引

PUT datastream-000001
{
"aliases": {
"datastream": {
"is_write_index": true
}
}
}

创建一个开始的索引,并设置索引可写入。

  4)配置lifecycle检测时间

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

默认为十分钟,为了测试看效果,改为10秒钟。

  5)验证功能

  向别名为"datastream"的索引中进行写入多条数据

PUT /datastream/_doc
{
"message":"hello-01"
}

  索引采用别名索引。

写入后,es根据配置的lifecycle时间进行rollover。用以下命令查看索引rollover进度

  

GET datastream-*/_ilm/explain

等待30秒后,返回的数据如下:

{
"indices": {
"datastream-000002": {
"index": "datastream-000002",
"managed": true,
"policy": "datastream_policy",
"lifecycle_date_millis": 1587608411208,
"age": "1.08m",
"phase": "hot",
"phase_time_millis": 1587608411441,
"action": "rollover",
"action_time_millis": 1587608471383,
"step": "check-rollover-ready",
"step_time_millis": 1587608471383,
"phase_execution": {
"policy": "datastream_policy",
"phase_definition": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_docs": 1
}
}
},
"version": 1,
"modified_date_in_millis": 1587608224989
}
},
"datastream-000001": {
"index": "datastream-000001",
"managed": true,
"policy": "datastream_policy",
"lifecycle_date_millis": 1587608411268,
"age": "1.08m",
"phase": "delete",
"phase_time_millis": 1587608471345,
"action": "delete",
"action_time_millis": 1587608471345,
"step": "wait-for-shard-history-leases",
"step_time_millis": 1587608471345,
"phase_execution": {
"policy": "datastream_policy",
"phase_definition": {
"min_age": "60s",
"actions": {
"delete": {}
}
},
"version": 1,
"modified_date_in_millis": 1587608224989
}
}
}
}

索引自动创建了一个新的"datastream-000002",旧的索引”datastream-000001“ action变成DELETE。

再过一段时间再次查看索引

GET datastream-*/_ilm/explain

查看结果:

{
"indices": {
"datastream-000002": {
"index": "datastream-000002",
"managed": true,
"policy": "datastream_policy",
"lifecycle_date_millis": 1587608411208,
"age": "2.8m",
"phase": "hot",
"phase_time_millis": 1587608411441,
"action": "rollover",
"action_time_millis": 1587608471383,
"step": "check-rollover-ready",
"step_time_millis": 1587608471383,
"phase_execution": {
"policy": "datastream_policy",
"phase_definition": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_docs": 1
}
}
},
"version": 1,
"modified_date_in_millis": 1587608224989
}
}
}
}

旧的索引进行了删除。在做日志查询时,我们只需要使用别名”datastream“进行日志查询即可,es便可无感知完成日志存储删除动作。

ES7.5.2索引生命周期管理(附操作示例)的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. ELK 索引生命周期管理

    kibana 索引配置 管理索引 点击设置 --- Elasticsearch 的 Index management 可以查看 elk 生成的所有索引 (设置,Elasticsearch ,管理) 配 ...

随机推荐

  1. Linux中的IDR机制

    # Linux中的IDR机制 背景 最近在学习 Linux的i2c子系统,看到代码中有关于IDR的调用.了解了一下有关的文档,发现是用来管理指针(对象实例). //based on linux V3. ...

  2. 福利来了!MoneyPrinterPlus可以自动配置环境和自动运行了

    之前开源了MoneyPrinterPlus,可以实现批量混剪视频,一键生成视频和自动发布视频的功能. 但是经常会看到小伙伴在安装过程中遇到很多问题.所以这篇文章的目的就是告诉大家怎么使用MoneyPr ...

  3. Centos7离线安装gcc4.8

    有时候CentOS工作在无互联网的环境下,需要在离线环境下安装一些组件,这次实现的是模拟在离线环境下安装gcc4.8. 第一步: 先去http://mirrors.aliyun.com/centos/ ...

  4. VUE商城项目 -权限功能 - 手稿

  5. SpringCloud连接远程nacos报错,一直提示连接本地的localhost:8848

    application.properties spring.cloud.nacos.discovery.server-addr=xxx.xxx.xxx.xxx:8848 spring.applicat ...

  6. Java 集合框架迭代器(Iterator)

    什么是迭代器 使用循环遍历集合 普通for循环 for(int i=0;i<10;i++){} 增强for循环 for(String str:list){} 什么是迭代器Iterator Ite ...

  7. Exception in thread "main" java.lang.NoClassDefFoundError: io/netty/channel/EventLoopGroup

    最近在学习dubbo,跟着教程做,但是运行时报错,需要添加netty依赖 <dependency> <groupId>io.netty</groupId> < ...

  8. 云服务器从阿里云迁移到华为云,FTP服务器的一些设置处理

    由于一些特殊原因,计划从阿里云上把ECS服务器的相关资源资源迁移到华为云上,为了保险起见,先申请一个月的华为云ECS服务器进行测试,首先就是搭建FTP服务器进行文件的上传处理,在使用FileZilla ...

  9. EasyDesktop 浏览器书签管理从未如此简单

    作为一名软件开发从业人员, 每天80%的时间都在与浏览器打交道, 一半的时间在用浏览器开发调试, 另一半时间则是在互联网上搜寻各种知识和资源. 为此, 我的浏览器书签栏存储和很多非常棒的链接, 多到2 ...

  10. 测试工程师-年终总结PPT

    2022年年终总结-xxx 一.首页 2022年年终总结暨2023年工作计划 汇报人:测试组-xxx 日期: 2023.1.13 二.目录 1.年度工作概述 2.工作亮点展示 3.持续精进点 4.明年 ...