带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(5)

简介: 带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(5)

《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.7.索引生命周期管理(4) https://developer.aliyun.com/article/1228512


通过 alias 使用 ILM

 

1、创建生命周期策略

 

warm 阶段将 index 分配给节点属性 data 为 warm 的节点, cold 阶段将 index 分配给节点属性 data 为 cold 的节点。

 

节点属性可以通过 elasticsearch.yml 进行配置或环境变量设置。


# 启动命令
bin/elasticsearch -Enode.attr.data=warm
# elasticsearch.yml
# node.attr.xxx: xxx
# 建议使用 node.roles 进行配置, 可以参考 通过 data tiers 使用 ILM 这一章节
# node.attr 后续版本可能不再使用
node.attr.data: warm

创建生命周期策略,在 index 创建 1 天后进入 hot 阶段,设置优先级为 100, 当 index 主分片大小超过 50gb 或者 index 文档数超过 500000000 或者 index 创建超过 2 天生成新的 index

 

warm 阶段将 index 迁移至属性 data 为 warm 的节点

 

cold 阶段将 index 副本数设置为 1 并将 index 迁移至属性 data 为 cold 的节点

当 hot ,warm,cold 阶段的动作都完成并且 index 创建达到 7 天,删除 index。


PUT _ilm/policy/logx_policy
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "1d",
        "actions": {
          "set_priority": {
            "priority": 100
          },
          "rollover": {
            "max_age": "2d",
            "max_docs": 500000000,
            "max_size": "50gb"
          }
        }
         },
      "warm": {
        "min_age": "1d",
        "actions": {
          "set_priority": {
            "priority": 50
          },
          "allocate": {
            "include": {
              "data" : "warm"
            }
          }
        }
      },
       "cold": {
        "min_age": "1d",
        "actions": {
          "set_priority": {
            "priority": 0
          },
          "allocate": {
            "number_of_replicas": 1,
            "include" : {
              "data": "cold"
            }
          }
        }
      }, 
      "delete": {
        "min_age": "7d",
        "actions": {
          "delete": {}
        }
           }
    }
  }
}

2、创建索引模板,将生命周期应用到 index

 

设置 shard 数为 2, 备份数 为 1, 生命周期策略为 logx_policy,滚动别名为 logx

 

PUT _index_template/logx-template
{
  "index_patterns" : ["logx-*"],
  "priority" : 1,
  "template": {
    "settings" : {
      "index" : {
    "number_of_shards" : "2",
    "number_of_replicas" : "1",
    "lifecycle.name": "logx_policy",
    "lifecycle.rollover_alias": "logx"
    }
    }
  }
}

3、创建第一个 index,以下两种形式任选一种即可, index 格式必须满足该正则 ^.*-\d+$ ,example:logs-000001


PUT logx-000001
{
  "aliases": {
"logx": {
   "is_write_index": true
    }
  }
}
# OR 带创建日期的 index
# PUT /<logx-{now/d}-1> with URI encoding:
PUT /%3Clogx-%7Bnow%2Fd%7D-1%3E 
{
  "aliases": {
    "logx": {
      "is_write_index": true
    }
  }
} 


后续的数据读写均使用固定别名 logx

 《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.7.索引生命周期管理(6) https://developer.aliyun.com/article/1228509

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
数据库
jumpserver V2自动同步、更新阿里云资产
jumpserver V2自动同步、更新阿里云资产
|
7月前
|
存储 运维 安全
诈骗背后:一场由Nacos漏洞引发的连锁危机
Nacos 是一个开源的动态服务发现、配置管理和服务管理平台,广泛应用于云原生架构中。然而,在其不同版本中曾暴露出多个安全漏洞,如未授权访问、Token 伪造、权限绕过等,这些漏洞可能导致敏感数据泄露、业务中断以及企业声誉受损。企业在使用 Nacos 时,应尽量采用最新稳定版本,并强化配置文件的安全性设置;在可能的情况下,限制网络访问范围,仅对可信 IP 开放服务,以全面提升 Nacos 的安全性。
|
9月前
|
云安全 运维 安全
AK泄漏28小时:运维工程师的极限自救
随着比特币等加密货币的价格持续上涨,挖矿活动成为了黑客们眼中的一块肥肉。尤其是在2024年至2025年间,比特币价格突破历史高位,吸引了大量投资者和投机者的目光。与此同时,这也引发了新一轮的黑客攻击浪潮,目标直指那些拥有强大计算资源的企业和个人用户。
|
存储 运维 应用服务中间件
【实用经验分享】JumpServer部署教训:避免自信陷阱,谨慎行事
本文是关于使用JumpServer作为堡垒机进行服务器运维管理的经验分享。作者讲述了选择JumpServer的背景、从2.5.0版本升级到2.9.2版本的过程,以及在大厦断电后重新部署服务时遇到的挑战。文章详细描述了解决nginx和https配置问题的方法,并强调了在部署过程中保持谨慎、利用官方文档以及社区支持的重要性。最后,作者提到了数据迁移的问题,指出虽然旧数据无法直接融合到新版本中,但通过手动重新添加,能够顺利完成数据迁移。
709 2
【实用经验分享】JumpServer部署教训:避免自信陷阱,谨慎行事
|
Prometheus 监控 Cloud Native
Grafana 最全详解 ( 图文全面总结 )
Grafana是非常重要的微服务部署监控工具,被广泛应用于大型网站架构,本文全面详解。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Grafana 最全详解  ( 图文全面总结 )
|
Java jenkins 持续交付
Jenkins全局工具配置(JDK、Maven、Maven插件)
Jenkins全局工具配置(JDK、Maven、Maven插件)
1237 0
|
存储 监控 固态存储
elasticsearch索引生命周期管理(ILM):原理和实践
elasticsearch索引生命周期管理(ILM):原理和实践
|
Linux Shell
mac/linux提示bash: telnet: command not found
mac/linux提示bash: telnet: command not found
|
关系型数据库 MySQL Java
使用docker-compose部署confluence,自己的wiki
使用docker-compose部署confluence,自己的wiki
1407 0
|
运维 网络协议 Linux
Linux系统之查看进程监听端口方法
Linux系统之查看进程监听端口方法
977 0

热门文章

最新文章