1,为什么要对elasticsearch进行生命周期管理?
ES索引存活数量过多,会给ES集群带来较大压力,不仅严重影响数据录入和数据查询效率,而且导致磁盘、CPU占用比过高,加大节点“驾崩”的风险。对ES进行索引生命周期管理意义重大,不仅能提高服务器性能,降低内存和磁盘使用率,而且能够优化数据结构,提升读写、查询效率,避免数据丢失情况出现。
2,如何对elasticsearch进行生命周期管理?
针对索引,根据时间、空间、类型、优先级进行不同种类的管理策略。推荐以时间序列为导向对数据进行应用策略操作。
对于时间序列索引,索引生命周期中有五个阶段:
热数据–索引正在积极更新和查询。
暖数据–索引不再更新,但仍需要查询。
冷数据–索引不再被更新,且很少被查询。数据仍然需要搜索,但查询速度较慢也没关系。
数据归档–索引不在被更新和查询,但需要存储以作备份。
数据删除–不再需要索引,可以安全删除。
以时间序列为导向,控制索引的老化时间,将3天以内的数据定义为热数据,3天以上7天以内的数据定义为暖数据,7天以上30天以内的数据定义为冷数据,30天以上数据进行归档,无需归档的数据进行删除。经过优化处理,可极大提高ES的可用性,避免数据丢失。
3,用什么对elasticsearch进行生命周期管理?
进行ES索引生命周期管理可借助工具。ES 7.0版本提供ILM策略进行elasticsearch-stack的组件生命周期管理功能;ES 6.x及以下版本使用elasticsearch-curator进行索引策略动作。使用ILM策略优先级比使用curator优先级更高,为了避免冲突,使用ILM进行索引管理后尽量避免使用curator再次进行管理。在此推荐使用elasticsearch-curator,本文提供Centos7及Centos6两个安装包的获取方法。

系统名 下载地址
Centos7 https://packages.elastic.co/curator/5/centos/7/Packages/elasticsearch-curator-5.7.6-1.x86_64.rpm
Centos6 https://packages.elastic.co/curator/5/centos/6/Packages/elasticsearch-curator-5.7.6-1.x86_64.rpm

elasticsearch-curator使用时需要注意版本问题,如下图所示,目前Curator最新版本是5.7.6,支持ES 5.x及以上版本。


使用elasticsearch-curator进行时间序列为导向的索引生命周期管理,主要分为三个步骤:
1,Curator部署
Curator只需要安装在可访问Elasticsearch集群中机器上就可以运行, 它不需要安装在群集中的一个节点上。
用wget获取rpm包后直接安装:

rpm -ivh elasticsearch-curator*.rpm

软件安装完毕后,得到安装目录:/opt/elasticsearch-curator
在安装目录配置文件夹下,新建一个主配置文件curator.yml(粘贴下述代码,注意修改es集群hosts与port):

client:hosts:- node01.xx.com- node02.xx.com- node03.xx.comport: 9200url_prefix:use_ssl: Falsetimeout: 60master_only:
logging:loglevel: INFOlogfile: /var/log/curator.loglogformat: jsonblacklist: ['elasticsearch', 'urllib3']

2,Curator策略编写

单个策略有以下四部分组成:
1.动作名称,例如close、open、shrink等。
2.动作参数,例如忽略空索引、发生错误后继续执行后面的动作等。
3.过滤器,例如按照时间、空间、分片等维度类型来过滤。
4.过滤参数,例如设置时间、空间、索引状态模式进行过滤器的增强参数。

示例(关闭索引策略):

action: close             #动作类型description:‘默认关闭30天前的大于100g的test索引’ #动作描述options:ignore_empty_list: True      #忽略空索引continue_if_exception: True   #发生错误后继续执行disable_action: False        #启用动作filters:                      - filtertype: pattern            #过滤类型1kind: prefix             #类型模式使用前缀value: ‘test_’             #前缀名称exclude:                      #是否排除- filtertype: age                #过滤类型2,按照时间source: creation_date         #时间选择参数,按照索引生成时间direction: older              #时间模式unit: days                   #时间单位unit_count: 30                #时间具体值- filtertype: space            #过滤类型3disk_space: 100             #类型大小threshold_behavior: less_than  #判断条件,大于或者小于reverse: True                #是否反向判断

3,Curator启动
创建yml文件(以上文关闭索引策略为例):

[root@localhost .curator]# cat close.yml
actions:action: close             description:‘默认关闭30天前的大于100g的test索引’ options:ignore_empty_list: True      continue_if_exception: True   disable_action: False        filters:                      - filtertype: pattern           kind: prefix             value: ‘test_’             exclude:                      - filtertype: age                source: creation_date        direction: older             unit: days                  unit_count: 30                - filtertype: space            disk_space: 100             threshold_behavior: less_than  reverse: True

命令启动:

curator –config curator.yml config/close.yml &

配置定时任务:

Crontab -e
#加上如下的命令,表示每日22点定时执行close.yml:
#0 22 * * * /usr/bin/curator –config  /opt/elasticsearch-curator/curator.yml /opt/elasticsearch/config/close.yml

定时任务解析参数解析:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}

如上文定时任务:0代表minute,区间0-59;22代表hour,区间0-23;三个“”的占位依次代表day-of-month、month、day-of-week,day-of-month区间1-31,month区间1-12,day-of-week区间0-7,周日可以是0或7,“”意味着全选;full-path-to-shell-script指向配置文件路径。

如有未尽事宜,请参考Curator官方链接:https://www.elastic.co/guide/en/elasticsearch/client/curator/current/actions.html

ES--索引生命周期管理相关推荐

  1. ES索引生命周期管理ILM

    前言 在使用ES的过程中,你是否遇到过这样的问题: 1.单个索引数据量持续增长,导致查询速度降低,运维困难 2.希望能根据时间周期自动生成新的索引,比如天.周.月自动生成新的索引 3.希望能定期自动删 ...

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

    一."索引生命周期管理"概述 Elasticsearch索引生命周期管理指:Elasticsearch从设置.创建.打开.关闭.删除的全生命周期过程的管理. 二.为什么要使用&qu ...

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

    37.1 背景 引入索引生命周期管理的一个最重要的目的就是对大量时序数据在es读写操作的性能优化 如通过spark streaming读取Kafka中的日志实时写入es,这些日志高峰期每天10亿+,每 ...

  4. es对日志数据进行索引生命周期管理

    前言 在采用ELK分布式日志采集平台的时候,一般都会采用ES来存储采集的日志信息.日志信息一般都是持续增长的,是典型的时序数据. 如果不对采集的日志数据做生命周期管理,很容易导致单个索引体积持续增长. ...

  5. ES系列-- ILM索引生命周期管理

    前言 官方文档地址7.8版本 正文 ILM定义了四个生命周期阶段: Hot:正在积极地更新和查询索引. Warm:不再更新索引,但仍在查询. cold:不再更新索引,很少查询.信息仍然需要可搜索,但是 ...

  6. ElasticSearch索引生命周期管理(ILM)

    注: 部分概念介绍来源于网络 6.6 版本的发布,Index Lifecycle Management(索引生命周期管理,后文简称 ILM ): ILM 可以将索引生命周期分为四个阶段(Phase)( ...

  7. 索引生命周期管理ILM看完不懂你锤我

    阅读完本文你可以学到什么是索引生命周期管理,各个阶段可以做的操作以及如何使用索引模版使用索引生命周期策略,下面就跟我一起来吧 基础理论篇 索引生命周期管理(ILM)是一种可以让我们随着时间推移自动化的 ...

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

    Elasticsearch索引生命周期管理方案 文章目录 Elasticsearch索引生命周期管理方案 1.生命周期 1.1 阶段介绍 2.模拟过程(基础) 2.1 创建索引生命周期策略 2.2 创 ...

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

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 一.前言 在 Elasticsearch 的日常中,有很多 ...

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

    1.概述 [Elasticsearch]Elasticsearch 索引生命周期管理 转载:使用索引生命周期管理实现热温冷架构 索引生命周期管理 (ILM) 是在 Elasticsearch 6.6( ...

最新文章

  1. python 如何封装dll_如何为DLL库创建Python包装器
  2. C Screen Shot Implementation
  3. matlab里performance,关于神经网络performance图的问题
  4. IDEA中双击两下shift全局搜索怎样取消和修改
  5. C++学习-环境配置
  6. 使用Python获取Linux系统的各种信息
  7. UESTC 250 windy数 数位dp
  8. 从Bayes角度理解Deep learning
  9. 使用ViewModel模式简化WPF TreeView
  10. QTP自动化测试-点滴-步骤
  11. Chrome OS 72.0.3626.117 发布
  12. 设计模式总结之模式分类
  13. 思科:静态路由的配置
  14. 知识库文章MDL9396274-How to:使用色环电阻计算器
  15. 2019 全年中国马拉松赛事日历表
  16. google浏览器插件之身份验证器Authenticator MFA
  17. 2021年国庆节假期三亚游客离岛免税购物热情高涨、偏爱高端酒店与景点新玩法...
  18. arduino红外遥控控制小灯
  19. 一些高阶矩的介绍,峰度和偏度
  20. 【pandas】df.str.contains包含多个值写法

热门文章

  1. [算法系列之二十]字典树(Trie)
  2. MTK-MT6735-camera新加模组调试总结
  3. 计算机中运行Xbrowser,丢失msvcr110.dll
  4. linux 查看系统变量
  5. 能耗监测系统的研究与应用
  6. 数据结构-简介和部分算法分析
  7. 决策分析平台(RBP)在tomcat下的部署
  8. Excel作图 数据条 并导出为pdf
  9. android SwipeRefreshLayout 源码分析之 弹力计算分析。
  10. centos7 BBR加速