前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 索引生命周期管理详解与实践汇总篇

Elasticsearch 索引生命周期管理详解与实践汇总篇

原创
作者头像
南非骆驼说大数据
发布2020-11-23 00:59:46
2.5K0
发布2020-11-23 00:59:46
举报
文章被收录于专栏:腾讯云大数据与AI专家服务

一、前言

Elasticsearch 从版本6.8开始已经免费开放索引生命周期管理的功能,通过该功能我们可以实现日志索引不同阶段的细化管理进而达到实际需求。本文基于以往的索引生命周期管理知识沉淀作进一步的深化,如大家想了解ILM的相关文章,请参考如下链接

1,Elasticsearch 索引生命周期管理与冷热集群部署相关文档,请查看下面的链接:

https://cloud.tencent.com/developer/article/1623602

2,如何利用Elasticsearch 索引生命周期管理集群上的超级大索引,请查看下面的链接:

https://cloud.tencent.com/developer/article/1648879

3,Elasticsearch 索引生命周期管理策略综合实践《一》,请查看下面的链接:

https://cloud.tencent.com/developer/article/1672954

4,Elasticsearch 索引生命周期管理策略综合实践《二》,请查看下面的链接:

https://cloud.tencent.com/developer/article/1677045

二、Elasticsearch 索引生命周期管理之深度实践

通过前面的学习,我们知道Rollover可以非常好的去管理集群中的大索引,按照它约定的规则去触发滚动数据到新的索引上。但是因为Rollover不能自动更新,需要结合ILM(Index Life Management(缩写) -- 索引生命周期管理策略)才能自动更新。因此,ILM跟Rollover必然走向融合是大势所趋。

我们在前面的学习中可以了解到,Rollover 的机制是前端往别名写,别名根据条件写入特定的索引上。Rollover有较严格的语法要求,具体如下:

1,使用Rollover滚动索引的时候,必须要先手动创建初始索引。

2,Rollover必须要与别名关联,因为Rollover是根据别名来触发索引滚动的。

3,初始索引必须是以000001结尾,长度是6位,否则策略不生效,如滚动成功,索引名回自动+1,比如 索引名-000002....

代码语言:javascript
复制
  PUT nginxserverlog-000001         //定义初始索引
  {
    "aliases": {
      "nginx_weblogs": {     //索引别名
        "is_write_index":true   //允许写
      }
    }
  }

那么我们指定一个规则,想要10个文档就滚动更新一下索引,结果会是什么样子呢?如下图:

Rollover滚动更新
Rollover滚动更新

只要满足条件,它就回依次类推,滚动更新。

那么,在上面的实际过程中,我们有没有疑问呢?(***本节重点***)

当然会有,就是这个索引名可不可以基于时间戳的形式去滚动更新呢?因为如果上面的索引没有时间区分的话,基于时间的日志管理比如索引删除、数据检索的时候还是很多不便。如何解决基于时间格式索引的自动滚动更新呢,咱们接着往下看:

如果需要在索引名称上以日期进行标记,可以使用{now/d}的方法来解决这个问题,格式如下:

代码语言:javascript
复制
PUT %3Cnginx-log-%7Bnow%2Fd%7D-000001%3E   //基于日期的date Math 格式转换
{
  "aliases": {
    "nginx_weblogs": {        //别名
      "is_write_index":true   //允许索引写
    }
  }
}

那么上面,我们就定义了一个以nginx-log开头,以当天日期为标记,尾数是000001的初始索引。这样,就解决了我们Rollover 时间戳标记的问题。这样更有利于集群索引的灵活管理,因此该方法得以大范围引用。

三、基于时间戳方式Rollover功能验证

我们基于同样的写入操作,我们经过论证发现如下的结论:

基于时间戳形式的Rollover功能标记
基于时间戳形式的Rollover功能标记

那么这样,我们就能将索引切分为以日期为标记细分为N个不通的新索引。

Rollover优势:

1,索引以日期标记,清晰明了,便于索引管理;

2, 能够将某天的超级大的索引细分为不同的规范索引,集群更健康;

Rollover缺点:

不适合对存量索引需要进行后续更新的相关操作的业务环境。

更多时间戳 Date Math方法,参考:

https://www.elastic.co/guide/en/elasticsearch/reference/7.2/date-math-index-names.html

四、本节总结

本文将索引生命周期管理策略的相关文章全部汇总,并再次基于Rollover功能作了更细化的更新并予以论证。实际环境中,我们要更多的根据业务去灵活调整策略配置,不仅仅ES 配置,比如Logstash ,Flink都可以进行ILM的相关设置。通过设置基于时间戳形式的滚动更新配合ILM自动管理,能非常有效的管理集群上的超级大索引,非常实用。

更多细节,参考:

https://www.elastic.co/guide/en/elasticsearch/reference/7.2/index-lifecycle-management.html

https://www.elastic.co/guide/en/logstash/index.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、Elasticsearch 索引生命周期管理之深度实践
  • 三、基于时间戳方式Rollover功能验证
  • 四、本节总结
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档