ES7.5.2索引生命周期管理(附操作示例)
一、前言
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索引生命周期管理(附操作示例)的更多相关文章
- Elastic 使用索引生命周期管理实现热温冷架构
Elastic: 使用索引生命周期管理实现热温冷架构 索引生命周期管理 (ILM) 是在 Elasticsearch 6.6(公测版)首次引入并在 6.7 版正式推出的一项功能.ILM 是 Elast ...
- 这么简单的ES索引生命周期管理,不了解一下吗~
对于日志或指标(metric)类时序性强的ES索引,因为数据量大,并且写入和查询大多都是近期时间内的数据.我们可以采用hot-warm-cold架构将索引数据切分成hot/warm/cold的索引.h ...
- ElasticSearch——索引生命周期管理
从ES6.6开始,Elasticsearch提供索引生命周期管理功能,索引生命周期管理可以通过API或者kibana界面配置,详情参考[index-lifecycle-management] 本文仅通 ...
- Elasticsearch7.X ILM索引生命周期管理(冷热分离)
Elasticsearch7.X ILM索引生命周期管理(冷热分离) 一.“索引生命周期管理”概述 Elasticsearch索引生命周期管理指:Elasticsearch从设置.创建.打开.关闭.删 ...
- Elasticsearch索引生命周期管理方案
一.前言 在 Elasticsearch 的日常中,有很多如存储 系统日志.行为数据等方面的应用场景,这些场景的特点是数据量非常大,并且随着时间的增长 索引 的数量也会持续增长,然而这些场景基本上只有 ...
- Elasticsearch 索引生命周期管理 ILM 实战指南
文章转载自:https://mp.weixin.qq.com/s/7VQd5sKt_PH56PFnCrUOHQ 1.什么是索引生命周期 在基于日志.指标.实时时间序列的大型系统中,集群的索引也具备类似 ...
- ES 7.13版本设置索引模板和索引生命周期管理
第一步:索引管理中查看都有哪些索引文件,然后添加索引模式(后面的日期用*表示) 第二步:索引生命周期管理 自带的有一个log,就使用这个,不用再新建了,根据需求修改里面的配置就行了 第三步:添加索引模 ...
- Elasticsearch索引生命周期管理探索
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484130&idx=1&sn=454f199 ...
- Logstash & 索引生命周期管理(ILM)
Grok语法 Grok是通过模式匹配的方式来识别日志中的数据,可以把Grok插件简单理解为升级版本的正则表达式.它拥有更多的模式,默认,Logstash拥有120个模式.如果这些模式不满足我们解析日志 ...
- ELK 索引生命周期管理
kibana 索引配置 管理索引 点击设置 --- Elasticsearch 的 Index management 可以查看 elk 生成的所有索引 (设置,Elasticsearch ,管理) 配 ...
随机推荐
- Linux 内核:I2C子系统分析(1)基于子系统的驱动分析与实现
Linux 内核:I2C子系统分析(1)基于子系统的驱动分析与实现 背景 在学习高通平台的有关知识,看到一篇博客中介绍了GPIO模拟I2C设备,觉得挺有意思的. 看了看有关的实现,发现自己之前学习从L ...
- 【价格全面下调】一片含税79元,双核A7@1.2GHz,-40℃~85℃真工业级!
自9个月前,创龙科技全志T113-i核心板(SOM-TLT113)推出之后,受到广大工业用户的高度关注,且超过300家企业已选用创龙科技T113-i核心板用于终端产品开发. 为了让更多用户轻松选择T1 ...
- SpringBoot配置文件的优先级
配置文件优先级 (1)命令行参数: (2)java:comp/env的JNDI属性(当前J2EE应用的环境): (3)JAVA系统的环境属性: (4)操作系统的环境变量: (5)JAR包外部的appl ...
- SpringBoot 整合Activiti 7.X 从入门到精通
简介 Activiti 是一个轻量级工作流程和业务流程管理 (BPM) 平台,面向业务人员.开发人员和系统管理员.其核心是一个超快且坚如磐石的 Java BPMN 2 流程引擎.它是开源的,并根据 A ...
- Mac制作U盘启动项
导读 鄙人刚买回来的电脑,自带系统版本:10.14.5(19款的),有一天,提示系统升级,升到了10.15.4,从此落下了后遗症,mac系统密码输入完之后,读条读到2/3的时候,会黑屏闪一下,百思不得 ...
- h5使用js拉起微信支付
近期,业务需求对接了微信支付,做个总结.web网页想要拉起微信支付,有两种方法: H5下单支付 , JSAPI支付 .首先纯前端做不了微信支付,必须配合后端才能通过微信的下单请求.接下来说说这两种方法 ...
- 文件系统(九):一文看懂yaffs2文件系统原理
liwen01 2024.07.07 前言 yaffs 是专为nand flash 设计的一款文件系统,与jffs 类似,都是属于日志结构文件系统.与jffs 不同的是,yaffs 文件系统利用了na ...
- Doris failed to initialize storage reader. tablet=106408, res=[NOT_IMPLEMENTED_ERROR]to be implemented
Apache Doris 2.3 以下的版本会存在一个 bug,导致数据在合并时存在异常,在后续查询该字段数据时会提示 [1105] [HY000]: errCode = 2, detailMessa ...
- Known框架实战演练——进销存数据结构
系统主要包含商品信息.商业伙伴(客户.供应商)信息.业务单表头信息.业务单表体信息.对账单表头信息.对账单表体信息. 1. 商品信息(JxGoods) 该表用于存储公司商品信息. 名称 代码 类型 长 ...
- Node.js 处理 File
Node.js 处理 File fs 模块 常规使用 运用递归遍历目录树 创建文件和目录 读写文件 path 模块 对于 file 的理解,此处 fs 模块 Node.js 提供了处理文件系统的内置模 ...