ES-7.12-官方文档阅读-ILM-Automate rollover

教程:使用ILM自动化滚动创建index

当你持续将带有时间戳的文档index到Elasticsearch当中时,通常会使用数据流(data streams)以便可以定义滚到到新索引。这是你能够实施一个hot-warm-cold架构来满足你的性能要强,控制随时间推移的成本,实施保留策略,并仍然充分利用数据。

TIP:数据流最适合仅追加的使用场景,如果你需要频繁更新或删除跨多个索引的现有文档,我们建议改用索引别名和索引模版;你仍然可以使用ILM来管理和滚动别名的索引,跳到管理没有数据流的时间序列数据Tutorial: Automate rollover with ILM | Elasticsearch Guide [7.12] | Elastic

使用ILM自动滚动创建index 并管理数据流,你需要做如下工作:

  1. 创建一个生存周期策略 定义适当的阶段和要执行的动作;
  2. 创建一个 index template 来创建数据流和应用ILM策略以及支持(backing)索引的设置(setting)和映射(mapping);
  3. 确认index正在移动到的生存周期阶段 符合预期;

更多介绍关于rolling indices ,访问Rollover

IMPORTANT:当你启用beats或者Logstash Elasticsearch输出插件的生存周期管理,生存周期策略会自动启用,你不需要采取其他操作。你可以通过kibana 管理界面或者ILM API修改默认策略;

创建一个生存周期策略(Create a lifecycle policy)

生命周期策略指定索引生命周期的阶段以及每个阶段要执行的操作。生命周期最多可以有五个阶段:hot、warm、cold、frozen和delete。

例如,您可以定义一个具有两个阶段的 timeseries_policy

  • Hot阶段,定义滚动操作以指定索引在达到 50 GB 的 max_size 或 30 天的 max_age 时rollover(滚动创建新索引)。
  • Delete阶段,设置 min_age 以在滚动后 90 天删除索引。请注意,该值与滚动时间相关,而不是与索引创建时间相关。

您可以通过 Kibana 或使用创建或更新策略 API 创建策略。要从 Kibana 创建策略,请打开菜单并转到Stack management > index lifecycle Policies。单击create policy。

API 样例
 

PUT _ilm/policy/timeseries_policy
{"policy": {"phases": {
# min_age 默认值是0ms,所以新建索引会立即进入hot阶段;"hot": {                      "actions": {
# 触发rollover 动作,当任何一个条件被满足的情况下;"rollover": {"max_size": "50GB",     "max_age": "30d"}}},"delete": {
# rollover 90天后进入delete阶段"min_age": "90d",           "actions": {
# 触发删除动作,当index进入删除阶段;"delete": {}              }}}}
}

创建一个index template来创建data stream并应用生存周期策略(Create an index template to create the data stream and apply the lifecycle policy)

为了建立数据流,首先要创建一个指定生存周期策略的index template,因为这个template是为了data stream,所以它必须也包括一个data_stream 的定义。

例如,您可以创建一个 timeseries_template 以用于未来名为 timeseries 的数据流

为了使 ILM 能够管理数据流,模板配置了一项 ILM 设置:

index.lifecycle.name 指定要应用于数据流的生命周期策略的名称。

您可以通过 Kibana 或使用创建或更新策略 API 创建策略。要从 Kibana 创建策略,请打开菜单并转到Stack Management > Index Management > Index Templates。单击Create template

此向导(wizard)调用(invokes)创建或更新索引模板 API 以使用您指定的选项创建索引模板。

API 样例

PUT _index_template/timeseries_template
{
# 当documents写入到timeseries index是应用这个template"index_patterns": ["timeseries"],                   "data_stream": { },"template": {"settings": {"number_of_shards": 1,"number_of_replicas": 1,
# 用于管理 data  stream的ILM策略;"index.lifecycle.name": "timeseries_policy"     }}
}

创建数据流(Create the data stream)

首先,将文档索引到索引模板的 index_patterns 中定义的名称或通配符(wildcard)模式(pattern)中。只要现有数据流、索引或索引别名尚未使用该名称,索引请求就会自动创建具有单个后备(backing)索引的相应数据流,Elasticsearch 自动将请求的文档索引到此后备(backing)索引中,该索引也充当流的写入索引

例如,以下请求创建timeseries 数据流和名为 .ds-timeseries-2099.03.08-000001 的第一代支持索引。

POST timeseries/_doc
{"message": "logged the request","@timestamp": "1591890611"
}

当满足生命周期策略中的滚动条件时,滚动操作

  • 创建第二代支持索引,名为 .ds-timeseries-2099.03.08-000002。由于它是 timeseries 数据流的后备索引,因此 timeseries_template 索引模板中的配置将应用于新索引。
  • 由于它是时间序列数据流的最新一代索引,因此新创建的后备索引 .ds-timeseries-2099.03.08-000002 将成为数据流的写入索引。

每次满足rollover条件时都会重复此过程。您可以使用时间序列数据流名称搜索由 timeseries_policy 管理的所有数据流的支持索引。写操作将路由到当前写索引。读取操作将由所有支持索引处理

检查生命周期进度(Check lifecycle progress)

获取托管索引的状态信息,您可以使用 ILM explain API。这可以让你发现诸如:

  • index 处于哪个阶段以及何时进入该阶段
  • 当前的操作以及正在执行的步骤
  • 如果发生任何错误或进度受阻

例如,以下请求获取有关timeseries data stream的支持(backing)索引的信息:

GET .ds-timeseries-*/_ilm/explain

以下响应显示数据流的第一代支持索引正在等待hot阶段的翻转操作(rollover action)

它保持在此状态,并且 ILM 继续调用check-rollover-ready,直到满足翻转条件

{"indices": {".ds-timeseries-2099.03.07-000001": {"index": ".ds-timeseries-2099.03.07-000001","managed": true,
# 用来管理index 的ILM policy;"policy": "timeseries_policy",             "lifecycle_date_millis": 1538475653281,
# index 的存活期限"age": "30s",                              "phase": "hot","phase_time_millis": 1538475653317,"action": "rollover","action_time_millis": 1538475653317,
# ILM对索引执行的步骤"step": "check-rollover-ready",            "step_time_millis": 1538475653317,"phase_execution": {"policy": "timeseries_policy",
# 当前阶段(Hot阶段)的定义"phase_definition": {                    "min_age": "0ms","actions": {"rollover": {"max_size": "50gb","max_age": "30d"}}},"version": 1,"modified_date_in_millis": 1539609701576}}}
}

无需数据流即可管理时间序列数据(Manage time series data without data streams)

尽管Data streams是扩展和管理时间序列数据的便捷方法,但它们被设计为仅附加(append-only)我们认识到可能存在数据需要就地更新或删除的用例,并且数据流不直接支持删除和更新请求,因此索引 API 需要直接在数据流的支持索引上使用。

在这些情况下,您可以使用索引别名(index alias)来管理包含时间序列数据(time series  data)的索引并定期(periodically)滚动到新索引(roll over to a new index).

要使用索引别名通过 ILM 自动翻转和管理时间序列索引,你需要做:

  1. 创建一个生存周期策略 定义适当的阶段和要执行的动作;
  2. 创建索引模板以将策略应用到每个新索引
  3. 引导(bootstrap)索引作为初始写入索引。
  4. 验证索引是否按预期经历生命周期阶段。

创建一个index template 并应用lifecycle  policy(Create an index template to apply the lifecycle policy)

要在rollover时自动将生命周期策略应用于新的写入索引,请在用于创建新索引的索引模板中指定策略,指定索引模板中用于创建新索引的策略

例如,您可以创建一个 timeseries_template ,该模板应用于名称与 timeseries-* 索引模式匹配的新索引。

为了启用automatic rollover,模板配置了两个 ILM 设置:

  • index.lifecycle.name: 指定要应用于与索引模式匹配的新索引的生命周期策略的名称。
  • index.lifecycle.rollover_alias: 指定触发索引rollover操作时要rollover的索引别名。

您可以使用 Kibana 创建模板向导来添加模板。要访问该向导,请打开菜单并转至Stack Management > Index Management。在 Index Templates选项卡中,单击Create template

API 样例

PUT _index_template/timeseries_template
{
# index 前缀"index_patterns": ["timeseries-*"],                 "template": {"settings": {"number_of_shards": 1,"number_of_replicas": 1,
# ILM 策略名"index.lifecycle.name": "timeseries_policy",  
# rollover使用的alias    "index.lifecycle.rollover_alias": "timeseries"    }}
}

使用写入索引别名引导初始时间序列索引(Bootstrap the initial time series index with a write index alias)

首先,您需要引导一个初始索引并将其指定为索引模板中指定的翻转别名的写入索引,将其指定为索引模板中指定的翻转别名的写入索引。该索引的名称必须与模板的索引模式匹配并以数字结尾。翻转时,该值会增加以生成新索引的名称。

例如,以下请求创建一个名为timeseries-000001的索引,并使其成为timeseries别名的写入索引

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

当满足rollover条件时,rollover 动作:

  • 创建一个名为timeseries-000002的新索引,这与 timeseries-* 模式匹配,因此 timeseries_template 中的设置将应用于新索引。
  • 将新索引指定为写入索引并使引导索引为只读

每次满足rollover条件时都会重复此过程。您可以使用 timeseries 别名搜索 timeseries_policy 管理的所有索引。写操作被路由到当前写索引

检查生命周期进度

检索托管索引的状态信息与数据流情况非常相似,有关详细信息,请参阅数据流检查进度部分

唯一的区别是索引命名空间,因此,检索进度需要执行以下 api 调用:

GET timeseries-*/_ilm/explain

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenHarmony实战:RK3568 开发板镜像烧录指南

前言 烧录开发板是每个开发者的必修课,每次对系统的修改务必进行烧录测试,确保修改正确和不会引入新问题。 本文基于 Windows10,以 RK3568 开发板为例,指导如何烧录 OpenHarmony 镜像,镜像也叫固件。Hihoop&#xff…

Oracle利用BBED恢复崩溃实例(ORA-01092,ORA-00704,ORA-01578)

BBED修复数据损坏引起的数据库崩溃(ORA-01092,ORA-00704,ORA-01578)(2021年某苏州国企的案例) 1.Symptom 用户一个边缘系统出现数据文件损坏,且没有备份,数据库无法启动 报错如下,发现是oracle bootstra…

【Vue3进阶】- 第2学堂小商城实战课程前言

该教程为进阶教程,如果你还不了解Vue3的基础知识,可以先前往Vue3基础教程,从入门到实战。 学习时遇到的任何疑问都欢迎在相应课文页面下方的问答区进行提问哦 我能学到什么? 编程写法千千万,实现需求是第一。 教程中…

Docker容器、Serverless与微服务:腾讯云云原生架构技术实践案例集解析

前言 随着云原生技术的飞速发展,容器化和函数计算正成为企业和开发者关注的焦点。在这一潮流中,腾讯云凭借其卓越的技术实力和深厚的行业积累,发布了《2023腾讯云容器和函数计算技术实践精选集》,为我们提供了一份深入探索云原生…

CAS(Compare And Swap)

目录 CAS概念 乐观锁与悲观锁 ABA问题 Unsafe类 ​编辑 原子类 基本类型原子类 原子引用类 原子数组 原子更新器类 原子累加器 CAS概念 CAS是Compare And Swap的缩写,中文翻译成:比较并交换,实现无锁并发时常用到的一种技术。它一…

3.Labview字符串与路径精讲(下) — 字符串及路径的用法汇总

本章讲解labview中的字符串和路径具体实践用例,从前面板字符串属性到后面板字符串函数应用做出详细概述,通过本文的学习希望大家了解到字符串及路径在labview编程中的重要地位。 本系列文章为labview 从基础到强化到精通的学习文章,大家可以随…

奥比中光深度相机(二):PyQt5实现打开深度摄像头功能

文章目录 奥比中光深度相机(二):PyQt5实现打开深度摄像头功能官方给出的调用深度相机源码环境精炼 UI界面设计逻辑代码构建槽函数连接提取视频流在界面中显示深度视频流注意关闭相机 总体代码效果演示运行main.py代码选择相机打开摄像头关闭摄…

HarmonyOS实战开发-如何实现一个简单的健康生活应用(上)

介绍 本篇Codelab介绍了如何实现一个简单的健康生活应用,主要功能包括: 用户可以创建最多6个健康生活任务(早起,喝水,吃苹果,每日微笑,刷牙,早睡),并设置任…

BabySQL【2019极客大挑战】

知识点: 功能分析 登录界面一般是 where username and password 可以从username出手,注释掉and语句单引号闭合绕过 通过测试和报错信息发现是一个单引号读取输入可以单引号闭合绕过关键字过滤 or and 过滤 || &&替换双写绕过select from wher…

【leetcode】力扣简单题两数之和

题目 思路 代码实现 #include<iostream> #include<unordered_map>using namespace std;class Solution { public:vector<int> TwoNumber(const vector<int>& nums, int target){vector<int> number_vector;unordered_map<int, int> …

【Linux】常见命令

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 常用命令 1. ls2. pwd3. cd4. touch5. cat6. mkdir7. rm8. cp9. mv10. tail11. vim12.…

TCP粘包是怎么回事,如何处理?

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

基于《2023腾讯云容器和函数计算技术实践精选集》—探索腾讯云TKE的Docker容器、Serverless和微服务优势

重剑无锋&#xff0c;大巧不工。 ——金庸 腾讯云TKE&#xff0c;全称Tencent Kubernetes Engine&#xff0c;是一种完全托管式的容器服务。它可以帮助用户快速、高效地部署和管理Kubernetes集群&#xff0c;并提供一系列与之相关的云服务&#xff0c;如负载均衡、云硬盘、对象…

OSPF---开放式最短路径优先协议

1. OSPF描述 OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系&#xff0c;并将已知的邻居列表和链路费用LSU报文描述&#xff0c;通过可靠的泛洪与自治系统AS内的其他路由器周期性交互&#xff0c;学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路…

掼蛋游戏规则

1、牌型&#xff1a;单牌、对牌、三张牌、三带二、顺子、同花顺、钢板&#xff08;例&#xff1a; 222333、444555&#xff09;、炸弹&#xff08;4涨以上相同的牌&#xff09;、三连对 2、牌大小&#xff1a;大王&#xff0c;小王&#xff0c;级牌&#xff0c;A&#xff0c;…

从学习海底捞到学习巴奴,中国餐饮带洋快餐重归“产品主义”

俗话说“民以食为天”&#xff0c;吃饭一向是国人的头等大事&#xff0c;餐饮业也是经济的强劲助推力。新世纪以来&#xff0c;餐饮业不断讲述着热辣滚烫的商业故事。 2006年&#xff0c;拥有“必胜客”、“肯德基”等品牌的餐饮巨头百胜集团&#xff0c;组织两百多名区域经理…

太阳能光伏发电应用场景有哪些?

随着全球能源结构的转型和环保意识的提升&#xff0c;太阳能光伏发电作为一种清洁、可再生的能源形式&#xff0c;其应用场景正日益广泛。下面&#xff0c;我们将详细探讨太阳能光伏发电的主要应用场景。 首先&#xff0c;工业领域是太阳能光伏发电的重要应用领域。工业厂房通常…

EasyCVR视频汇聚平台海康Ehome2.0与5.0设备接入时的配置区别

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Nessus【部署 01】Linux环境部署漏洞扫描工具Nessus最新版详细过程分享(下载+安装+注册+激活)

Nessus最新版详细部署过程分享 1. 获取激活码2.主程序下载安装启动2.1 下载2.2安装2.3 启动 3.许可证及插件3.1 许可证获取3.2 插件安装 4.安装总结 Nessus官方网站&#xff1a; https://www.tenable.com/products/nessus/nessus-essentials 及介绍&#xff1a; 国际数据公司&…

编程语言 MoonBit 本周有超多重磅更新等你来探索:expect 测试添加 inspect 函数,还有……

MoonBit 更新 1. expect 测试添加 inspect 函数 expect 测试添加针对 Show 接口的 inspect 函数&#xff0c;签名如下&#xff1a; pub fn inspect(obj: Show,~content: String "",~loc: SourceLoc _,~args_loc: ArgsLoc _ ) -> Result[Unit, String]⚠️ 此…