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

news2024/11/24 6:32:38

教程:使用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.coloradmin.cn/o/1562006.html

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

相关文章

【单片机 5.3开关检测】

文章目录 前言一、5.3开关检测1.1没按键按下的1.2有按键按下的 二、改进1.改进 三、独立键盘3.1为什么要取反3.2 实用的按键 总结 前言 提示:这里可以添加本文要记录的大概内容: 课程需要: 提示:以下是本篇文章正文内容&#xf…

C++项目——集群聊天服务器项目(十一)服务器异常退出与添加好友业务

本节来实现C集群聊天服务器项目中的服务器异常退出与添加好友业务,一起来试试吧 一、服务器异常退出 在Linux环境下,我们在服务器端使用CTRLC结束程序执行,即使用CTRLC让服务器异常退出,这样的后果是本应登录服务器的用户在数据库…

2023年第十四届蓝桥杯 - 省赛 - Python研究生组 - A.工作时长

题目 数据文件:https://labfile.oss.aliyuncs.com/courses/21074/records.txt Idea 直接通过 datetime 模块加载时间字符串进行格式化,然后对时间列表进行排序,最后两两计算时间差。 Code Python from datetime import datetimetime_lis…

数论与线性代数——整除分块【数论分块】的【运用】【思考】【讲解】【证明(作者自己证的QWQ)】

文章目录 整除分块的思考与运用整除分块的时间复杂度证明 & 分块数量整除分块的公式 & 公式证明公式证明 代码code↓ 整除分块的思考与运用 整除分块是为了解决一个整数求和问题 题目的问题为: ∑ i 1 n ⌊ n i ⌋ \sum_{i1}^{n} \left \lfloor \frac{n}{…

ESP32 引脚分配

请注意,以下引脚分配参考适用于流行的 30 引脚ESP32 devkit v1开发板。 仅输入引脚 GPIO34~39是GPIs–仅输入的管脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些管脚用作输入:GPIO 34、GPIO 35、GPIO 36、GPIO 39 S…

【opencv】教程代码 —features2D(7)根据单应性矩阵估计相机坐标系下的物体位姿...

pose_from_homography.cpp从图像中找到棋盘角点并进行姿态估计 从图像中找到棋盘角点并显示 计算角点在世界坐标系中的位置 读取相机内参和畸变系数并校正图像中的角点 计算从3D点到2D点的单应性矩阵 通过奇异值分解(SVD)优化对旋转矩阵的估计 基于单应矩阵分解及其优化结果&am…

VSCode - 离线安装扩展python插件教程

1,下载插件 (1)首先使用浏览器打开 VSCode 插件市场link (2)进入插件主页,点击右侧的 Download Extension 链接,将离线安装包下载下来(文件后缀为 .vsix) 2,…

Django之REST framework环境搭建

一、环境搭建 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API 官网:Home - Django REST framework 中文文档:主页 - Django REST framework中文站点 1.1、安装 Python3.8+ pip install django==4.1.1 pip inst…

RISC-V/ARM mcu OpenOCD 调试架构解析

Risc-v/ARM mcu OpenOCD 调试架构解析 最近有使用到risc-v的单片机,所以了解了下risc-v单片机的编译与调试环境的搭建,面试时问到risc-v的调试可参看以下内容。 risc-v根据官方的推荐,调试器服务是选择OpenOCD,DopenOCD(开放片上…

游戏引擎中的声音系统

一、声音基础 1.1 音量 声音振幅的大小 压强p:由声音引起的与环境大气压的局部偏差 1.2 音调 1.3 音色 1.4 降噪 1.5 人的听觉范围 1.6 电子音乐 将自然界中连续的音乐转换成离散的信号记录到内存中 采样 - 量化 - 编码 香农定理:采样频率是信…

ES6学习(五)

文章目录 Module 语法1.1 痛点介绍(1) 异步加载(2) 私密(3) 重名(4) 依赖 1.2 解决方法(1) 解决异步加载问题(2) 解决私密问题(3) 重名解决方法(4) 解决依赖问题 1.3 模块化使用案例 Module 语法 之前js 出现的某些痛点: 在script 中引入的变量名不可以重复&#…

04_Git开发流程

文章目录 Git开发创建阶段开发阶段合并阶段常用指令 Git开发 创建阶段 共建Git仓库,首次使用请使用git clone指令 git clone xxx.git在master/main主干上搭建起基本的项目结构和公共内容,将这些内容push到远程仓库 在Github上创建分支dev(de…

2024最新GPT4.0使用教程:GPTs,AI绘画,AI换脸,AI绘画,文档分析一站式解决

一、前言 ChatGPT3.5、GPT4.0、相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GPT-4对普通用户来说都是需要额外付费才可以…

HarmonyOS 应用开发之TaskPool和Worker支持的序列化类型

TaskPool和Worker的底层模型为Actor模型,基于Actor模型的内存隔离特性,执行多线程任务和取得结果需要通过跨线程序列化传输。目前支持传输的数据对象可以分为 普通对象 、 可转移对象 、 可共享对象 、 Native绑定对象 四种。 普通对象 普通对象传输采…

《基础设施即代码(IaC)》译者序

随着信息技术的飞速发展,我们对基础设施的理解也在不断深化。传统的基础设施往往被看作是硬件和软件的堆砌,而现在,基础设施的概念已经发生了巨大的变化。在当今这个信息化、数字化的时代,基础设施已经成为了企业和组织运行的核心…

SiteServer 学习笔记 Day04 添加模板

1、添加一个公司简介的模板&#xff0c;显示管理->模版管理->新增内容模板&#xff0c;如下图。 2、在编辑页面如下图。 2.1、代码如下。 <!DOCTYPE HTML> <html lang"en"><head><meta charset"utf-8" /><meta name&quo…

Spire.PDF for .NET【文档操作】演示:合并 PDF 文件并添加页码

搜索了这么多有关 PDF 合并的信息后&#xff0c;很容易发现&#xff0c;无论您在线合并 PDF 文件还是使用 C#/VB.NET 来实现此任务&#xff0c;您都无法逃避对 PDF 文件安全等一些重要问题的担忧&#xff0c;因此需要花费多少时间或者合并后的文件是否支持打印页码等等。不过&a…

嵌入式驱动学习第五周——驱动模块

前言 Linux驱动有两种运行方式&#xff0c;第一种是将驱动编译进Linux内核中&#xff0c;另一种是编译成模块&#xff0c;本篇博客来介绍一下驱动模块。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可…

机器学习实战17-高斯朴素贝叶斯(GaussianNB)模型的实际应用,结合生活中的生动例子帮助大家理解

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下机器学习实战17-高斯朴素贝叶斯(GaussianNB)模型的实际应用&#xff0c;结合生活中的生动例子帮助大家理解。GaussianNB&#xff0c;即高斯朴素贝叶斯模型&#xff0c;是一种基于概率论的分类算法&#xff0c;广泛应…

open Gauss 数据库-04 openGauss数据库日志管理指导手册

发文章是为了证明自己真的掌握了一个知识&#xff0c;同时给他人带来帮助&#xff0c;如有问题&#xff0c;欢迎指正&#xff0c;祝大家万事胜意&#xff01; 目录 前言 openGauss 数据库日志管理 1 实验介绍 2 实验目的 3 系统日志 3.1 运行时日志 3.2 安装卸载时日志…