【Elasticsearch】ILM(Index Lifecycle Management)策略详解

article/2025/6/25 17:12:18

ILM(Index Lifecycle Management)策略详解

  • 1.什么是 ILM 策略?
  • 2.ILM 解决的核心业务问题
  • 3.ILM 生命周期阶段
    • 3.1 Hot(热阶段)
    • 3.2 Warm(温阶段)
    • 3.3 Cold(冷阶段)
    • 3.4 Delete(删除阶段)
  • 4.如何创建 ILM 策略
    • 4.1 基本 ILM 策略示例
  • 5.ILM 核心操作详解
    • 5.1 Rollover(滚动更新)
    • 5.2 Shrink(收缩索引)
    • 5.3 Force Merge(强制合并段)
    • 5.4 Freeze(冻结索引)
  • 6.实际应用案例
    • 案例 1:日志管理系统
    • 案例 2:电商订单数据
  • 7.使用注意事项
    • 7.1 节点属性配置
    • 7.2 监控 ILM 执行
    • 7.3 常见问题处理
    • 7.4 性能考虑
    • 7.5 与索引模板结合
    • 7.6 测试策略
  • 8.最佳实践
    • 8.1 合理设置阶段过渡时间
    • 8.2 优先级设置
    • 8.3 结合快照备份
    • 8.4 容量规划
    • 8.5 版本兼容性

在这里插入图片描述

1.什么是 ILM 策略?

ILMIndex Lifecycle Management索引生命周期管理)是 Elasticsearch 提供的一种自动化管理索引生命周期的机制。它允许用户根据预先定义的策略,自动执行索引的 滚动更新rollover)、分片分配冻结和删除 等操作,无需人工干预。

2.ILM 解决的核心业务问题

  • 自动化索引管理:减少人工维护成本。
  • 存储优化:自动将旧数据迁移到成本更低的存储层。
  • 性能优化:根据数据热度自动调整资源配置。
  • 数据保留合规:自动清理过期数据。
  • 资源利用率提升:合理分配集群资源。

3.ILM 生命周期阶段

ILM 策略包含四个可配置的阶段。
在这里插入图片描述

3.1 Hot(热阶段)

  • 索引正在被频繁写入和查询。
  • 需要高性能资源配置。
  • 通常配置滚动更新(rollover)条件。

3.2 Warm(温阶段)

  • 索引不再被写入,但仍被频繁查询。
  • 可以降低资源配置。
  • 可执行分片合并(forcemerge)、只读设置等。

3.3 Cold(冷阶段)

  • 索引很少被查询,但需要保留。
  • 可以转移到更经济的存储。
  • 可冻结索引(freeze)以减少资源占用。

3.4 Delete(删除阶段)

  • 索引达到保留期限。
  • 自动删除释放空间。

4.如何创建 ILM 策略

4.1 基本 ILM 策略示例

PUT /_ilm/policy/logs_policy
{"policy": {"phases": {"hot": {"actions": {"rollover": {"max_size": "50GB","max_age": "30d","max_docs": 10000000},"set_priority": {"priority": 100}}},"warm": {"min_age": "7d","actions": {"forcemerge": {"max_num_segments": 1},"allocate": {"number_of_replicas": 1,"require": {"data": "warm"}},"set_priority": {"priority": 50}}},"cold": {"min_age": "30d","actions": {"allocate": {"require": {"data": "cold"}},"freeze": {},"set_priority": {"priority": 0}}},"delete": {"min_age": "90d","actions": {"delete": {}}}}}
}

5.ILM 核心操作详解

5.1 Rollover(滚动更新)

作用:当索引达到指定条件时自动创建新索引。

常见触发条件

  • max_age:自索引创建后的最长时间。
  • max_docs:索引包含的最大文档数。
  • max_size:索引的最大主分片大小。

使用示例

PUT /_ilm/policy/my_rollover_policy
{"policy": {"phases": {"hot": {"actions": {"rollover": {"max_age": "7d","max_size": "50GB"}}}}}
}

5.2 Shrink(收缩索引)

作用:减少主分片数量。

适用场景

  • 索引不再写入后。
  • 减少分片数以节省资源。

示例配置

"warm": {"actions": {"shrink": {"number_of_shards": 1}}
}

5.3 Force Merge(强制合并段)

作用:合并分段以减少资源占用和提高查询性能.

示例配置

"warm": {"actions": {"forcemerge": {"max_num_segments": 1}}
}

5.4 Freeze(冻结索引)

作用:将索引设为只读并减少内存占用。

示例配置

"cold": {"actions": {"freeze": {}}
}

6.实际应用案例

案例 1:日志管理系统

需求

  • 热数据保留 7 7 7 天,高性能存储。
  • 温数据保留 30 30 30 天,标准存储。
  • 冷数据保留 90 90 90 天,低成本存储。
  • 最终自动删除。

ILM 策略

PUT /_ilm/policy/logs_management_policy_v2
{"policy": {"phases": {"hot": {"min_age": "0ms",           # 明确从索引创建开始"actions": {"rollover": {"max_age": "7d",        # 更合理的rollover周期"max_size": "50GB","max_docs": 10000000},"set_priority": {"priority": 100}}},"warm": {"min_age": "7d",            # 从索引创建后7天进入warm"actions": {"forcemerge": {"max_num_segments": 1},"allocate": {"number_of_replicas": 1,"require": {"data": "warm"        # 明确要求warm节点}},"set_priority": {"priority": 50}}},"cold": {"min_age": "30d",           # 从创建后30天进入cold"actions": {"allocate": {"require": {"data": "cold"       # 明确要求cold节点}},"freeze": {},             # 冻结索引节省资源"set_priority": {"priority": 0}}},"delete": {"min_age": "90d",           # 从创建后90天删除"actions": {"delete": {"delete_searchable_snapshot": true  # 可选:删除前检查快照}}}}}
}

配套的索引模板示例

PUT /_index_template/logs_template
{"index_patterns": ["logs-*"],"template": {"settings": {"number_of_shards": 3,"number_of_replicas": 1,"index.lifecycle.name": "logs_management_policy_v2","index.lifecycle.rollover_alias": "logs"},"mappings": {"properties": {"@timestamp": { "type": "date" },"log_level": { "type": "keyword" },"message": { "type": "text" }}}}
}

案例 2:电商订单数据

需求

  • 热阶段:处理当前订单(高优先级)。
  • 温阶段:近期订单可查询(优化存储)。
  • 冷阶段:归档订单(低成本存储)。
  • 3 3 3 年后自动删除。

ILM 策略

PUT /_ilm/policy/orders_policy
{"policy": {"phases": {"hot": {"actions": {"rollover": {"max_age": "7d"},"set_priority": {"priority": 100}}},"warm": {"min_age": "30d","actions": {"allocate": {"require": {"data": "warm"}}}},"cold": {"min_age": "365d","actions": {"allocate": {"require": {"data": "cold"}}}},"delete": {"min_age": "1095d",  // 3"actions": {"delete": {}}}}}
}

7.使用注意事项

7.1 节点属性配置

  • 需要为温冷数据节点配置属性
# 在elasticsearch.yml中
node.attr.data: warm
# 或
node.attr.data: cold

7.2 监控 ILM 执行

GET /_ilm/status
GET /_ilm/policy/logs_policy
GET logs-*/_ilm/explain

7.3 常见问题处理

  • 策略不生效:检查 min_age 设置(默认是上次 rollover 后时间)。
  • 阶段卡住:使用 GET _ilm/explain 诊断。
  • 权限问题:确保用户有足够权限。

7.4 性能考虑

  • Force merge 操作资源消耗大,应在低峰期执行。
  • 避免过于频繁的 rollover(会产生大量小索引)。

7.5 与索引模板结合

PUT /_index_template/logs_template
{"index_patterns": ["logs-*"],"template": {"settings": {"index.lifecycle.name": "logs_policy","index.lifecycle.rollover_alias": "logs"}}
}

7.6 测试策略

POST /_ilm/move/logs-000001
{"current_step": {"phase": "new","action": "complete","name": "complete"},"next_step": {"phase": "hot","action": "rollover","name": "attempt-rollover"}
}

8.最佳实践

8.1 合理设置阶段过渡时间

  • 根据业务访问模式设置 min_age
  • 热 → 温:通常 1 − 7 1-7 17 天。
  • 温 → 冷: 7 − 30 7-30 730天。

8.2 优先级设置

"set_priority": {"priority": 100  // 热阶段最高
}

8.3 结合快照备份

  • 重要数据在删除前应考虑备份。
  • 可以使用 SLM(Snapshot Lifecycle Management)。

8.4 容量规划

  • 根据 rollover 条件预估索引数量。
  • 监控各阶段存储使用情况。

8.5 版本兼容性

  • ILM 在 Elasticsearch 6.6 + 6.6+ 6.6+ 可用。
  • 7. x 7.x 7.x 后功能更完善。

通过合理配置 ILM 策略,可以实现索引的全生命周期自动化管理,显著降低运维成本,同时优化存储和查询性能。


http://www.hkcw.cn/article/YHXuAMVEUv.shtml

相关文章

【存储基础】数据存储基础知识

文章目录 1. 概述:数据存储基础知识2. 存储物理介质3. 数据存储的分类3.1按存储架构分类DAS 直连存储SAN 存储区域网络NAS 网络附加存储分布式存储四种架构之间的核心区别 3.2 按数据模型分类块存储文件存储对象存储 4. 数据存储的关键技术方案和核心机制冗余与容错…

【Part 3 Unity VR眼镜端播放器开发与优化】第二节|VR眼镜端的开发适配与交互设计

文章目录 《VR 360全景视频开发》专栏Part 3|Unity VR眼镜端播放器开发与优化第一节|基于Unity的360全景视频播放实现方案第二节|VR眼镜端的开发适配与交互设计一、Unity XR开发环境与设备适配1.1 启用XR Plugin Management1.2 配置OpenXR与平…

小米YU7还有5款颜色即将发布 更多色彩敬请期待

6月1日,小米在5月22日的发布会上公布了YU7的四款颜色:钛金属色、宝石绿、熔岩橙和寒武岩灰。官方透露,除了这四款已发布的颜色外,还有五款新颜色即将推出,每一种都设计得非常经典。回顾之前的小米SU7,在刚推出时就提供了9种颜色选择,涵盖了跑车色系、时尚色系、豪华色系…

老人被甩客执法人员送其回家 温情护送获赠枇杷

日前,重庆交通执法总队轨道交通支队三大队在重庆西站巡查时发现一名老人误乘“黑车”。考虑到她年近九旬行动不便,执法人员开车将其安全护送回家。老人感激地拿出自己种的枇杷送给执法人员以示感谢。5月27日上午,执法人员在巡查过程中发现一辆渝A籍车辆正在下客,随即上前检…

2025最新 MacBook Pro苹果电脑M系列芯片安装zsh教程方法大全

2025最新 MacBook Pro苹果电脑M系列芯片安装zsh教程方法大全 本文面向对 macOS 环境和终端操作尚不熟悉的“小白”用户。我们将从最基础的概念讲起,结合实际操作步骤,帮助你在 2025 年最新 MacBook Pro(搭载苹果 M 系列芯片)的环境…

女子多次上门骚扰邻居 持刀砍门引发恐慌

近日,辽宁大连有网友发布视频称,疑似患有精神疾病的邻居多次持刀上门砍其家门。当事人刘女士向媒体透露,楼下60多岁的邻居自去年10月搬家入住后,就反复上门找事,声称刘女士一家是脑控组织,想要入侵她的大脑。刘女士表示自己是外地人,去年刚搬进来,为方便孩子上学才购买…

遥控器竟牵出10亿元大案 数据篡改揭秘

涉及河南、四川、浙江等16省市,涉案交易金额达10.3亿元的合同诈骗案成功告破。内蒙古自治区鄂尔多斯市杭锦旗警方通过流量计调节流量和篡改数据的方式,将27名犯罪嫌疑人全部抓获。2024年3月,一封匿名举报信揭露了某石油工程有限公司通过更改流量计数据窃取国家能源的行为。杭…

弗朗西斯卡说樊振东加盟像做梦一样 莫大荣耀与期待

6月2日,据外媒报道,队长弗朗西斯卡在接受采访时谈到夺冠以及樊振东加盟表示:“感觉像做梦一样,樊振东加盟是我们莫大的荣耀。”决赛周末俱乐部宣布了轰动消息,奥运冠军兼前世界冠军樊振东将代表球队出战全部三项赛事。对于下赛季谁能击败他们的问题,弗朗西斯卡表示这取决…

董宇辉在陕西汉江赛龙舟夺冠 体验传统民俗乐趣

5月31日,陕西安康第25届汉江龙舟节开幕。当日,龙舟方阵展演,龙舟横渡汉江,抢鸭子、摸鲤鱼等传统环节亮相开幕式,节日氛围浓厚。今年有27支队伍600多名选手参加龙舟竞渡比赛。董宇辉现身安康龙舟文化园,与现场市民、游客热情互动,齐喊端午安康。他和团队成员在汉江边进行…

租客退房现垃圾场 下水道都堵了 屋内堆满垃圾几乎无处下脚

山东潍坊一名租客租住半年退房时,房东发现屋内堆满生活垃圾。发布视频的当地民宿工作人员称租客是一名年轻女生,房东已报警。辖区派出所表示正在处理此事。5月31日,抖音实名认证的潍坊潍城区怀夏民宿发布了一段54秒的现场视频,显示屋内一片狼藉,堆满了生活垃圾,几乎无处下…

上迪情侣和一家三口扭打 拍照冲突引发热议

5月31日,有网友发布视频称,在上海迪士尼乐园内一对情侣与一家三口发生冲突并扭打在一起,此事引发广泛关注。视频中可以看到双方在现场互相推搡,周围游客纷纷上前劝阻。据权威人士透露,事件发生在5月31日,地点并非排队区域,而是游客自由拍照的点位。情侣和一家三口因拍照…

北京大兴警方严查炸街摩托 夜查行动见效

大兴公安分局针对南海子公园南环路牡丹园南广场区域夜间改装摩托车聚集扰民问题,开展了专项整治行动。这些非法改装的摩托车不仅存在安全隐患,其巨大的噪音也严重干扰了周边居民的生活。5月30日晚,大兴交通支队旧宫中队在“炸街车”夜间活动高发时段,科学部署警力,采取定点…

AI矢量软件|Illustrator 2025网盘下载与安装教程指南

说起AI,很多人第一印象可能是AI人工智能,是与Python相关。实际上,本文要讲的AI,是Adobe Illustrator的缩写,它是一款基于矢量的图形制作软件,主要应用于插画、包装、印刷出版、书籍排版、动画和网页制作等领…

【Spring】RAG 知识库基础

1. RAG 基础概念 1.1 什么是 RAG? RAG(Retrieval-Augmented Generation,检索增强生成)是一种将检索技术与人工智能生成技术相结合的混合架构,用于解决大模型时效性限制与幻觉问题 你可以这样理解:RAG 技…

NLP学习路线图(十七):主题模型(LDA)

在浩瀚的文本海洋中航行,人类大脑天然具备发现主题的能力——翻阅几份报纸,我们迅速辨别出"政治"、"体育"、"科技"等板块;浏览社交媒体,我们下意识区分出美食分享、旅行见闻或科技测评。但机器如何…

信息安全管理与评估山东卷无线部分答案

配置解析 配置解析 配置解析 radio 1工作在2.4g频段下 radio 2工作在5.0g频段下 配置解析 station-isolation配置关联在同一个VAP下的用户无法互通,但是可以和其他VAP下关联的用户互通,这里的隔离功能类似于交换的端口隔离功能。 arp-suppression开启该功能后则自动使能ARP…

Netty学习example示例

文章目录 simpleServer端NettyServerNettyServerHandler Client端NettyClientNettyClientHandler tcp(粘包和拆包)Server端NettyTcpServerNettyTcpServerHandler Client端NettyTcpClientNettyTcpClientHandler protocolcodecCustomMessageDecoderCustomM…

Linux系统精准定位创建句柄的进程

在Linux系统中,可以通过以下方法精准定位创建句柄的进程: 🔍 一、核心排查命令 ​​lsof 命令​​ ​​查看所有进程的句柄占用​​: lsof | awk {print $1, $2} | sort | uniq -c | sort -nr | head -n 20 ​​输出说明​​&…

ASP.NET Core OData 实践——Lesson8增删改查单值类型Property(C#)

大纲 支持的接口主要模型设计控制器设计数据源查询(GET)查询基类类型Entity的基础类型属性的值查询派生类型Entity的基础类型属性值查询基类类型Entity的派生类型属性值查询派生类型Entity的派生类型属性值 完整更新(PUT)完整更新基类类型Entity的基础类型属性值完整更新派生类…

(LeetCode 每日一题)135. 分发糖果 ( 贪心 )

题目:135. 分发糖果 思路:贪心两遍循环,时间复杂度0(n)。 在满足所有人都有一个糖果的情况下,进行两遍循环 第一遍循环:从左到右,满足当ratings[i]>ratings[i-1]时,v[i]v[i-1]1 第二遍循环&a…