用pc机做网站并让外网搜到,怎么做网络运营,珠海网站建设熊掌号,ps做网站框架搭建教程#xff1a;使用ILM自动化滚动创建index
当你持续将带有时间戳的文档index到Elasticsearch当中时#xff0c;通常会使用数据流#xff08;data streams#xff09;以便可以定义滚到到新索引。这是你能够实施一个hot-warm-cold架构来满足你的性能要强#xff0c;控制随…教程使用ILM自动化滚动创建index
当你持续将带有时间戳的文档index到Elasticsearch当中时通常会使用数据流data streams以便可以定义滚到到新索引。这是你能够实施一个hot-warm-cold架构来满足你的性能要强控制随时间推移的成本实施保留策略并仍然充分利用数据。
TIP数据流最适合仅追加的使用场景如果你需要频繁更新或删除跨多个索引的现有文档我们建议改用索引别名和索引模版你仍然可以使用ILM来管理和滚动别名的索引跳到管理没有数据流的时间序列数据Tutorial: Automate rollover with ILM | Elasticsearch Guide [7.12] | Elastic
使用ILM自动滚动创建index 并管理数据流你需要做如下工作
创建一个生存周期策略 定义适当的阶段和要执行的动作创建一个 index template 来创建数据流和应用ILM策略以及支持backing索引的设置setting和映射mapping确认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是应用这个templateindex_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 policypolicy: 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 自动翻转和管理时间序列索引,你需要做
创建一个生存周期策略 定义适当的阶段和要执行的动作创建索引模板以将策略应用到每个新索引引导bootstrap)索引作为初始写入索引。验证索引是否按预期经历生命周期阶段。
创建一个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