[转载] Elasticsearch 在日志场景的 hot-warm-cold 架构的最佳实践
elasticsearch 一直以来都支持 hot-warm 架构,但是如何来设置每个阶段的生命周期,却没有一个指导方案。
本文将结合日志业务给出一个 hot-warm-cold 架构的最佳实践,基于版本 6.8.0,该版本自带 index lifecycle management 功能,中文名叫“索引生命周期策略 ”,不带该功能的版本,可以通过搭配 curator 来实现。
hot
- shard 写满 30g 就启动 rollover(滚动更新),因为 rollover 的索引就已经不在写入了,可以当成只读索引对待了。
warm
- 开启 warm 阶段,使用默认的“滚动更新时移动到温阶段”
- 开启强制合并,设置 segment 数量为 1
- 不迁移节点,在 hot 节点完成 forcemerge,如果 hot 节点压力过大,可以考虑迁移到 cold 节点。如果考虑迁移到 cold 节点,则下面的 cold.5 阶段可以忽略。
cold
- 开启 cold 阶段,设置迁移到 cold 阶段的时间阈值。
- (可选)如果冷节点内存吃紧,酌情开启 frozen 功能。同时可以考虑升级 7.7 以上版本,该版本实现了将一部分 lucene 数据从 java 堆迁移到硬盘中,释放了 es 对 jvm 堆的内存占用。
delete
- 开启 delete 阶段,设置删除时间阈值。
作者:Java Dev
来源:cyberdak
原文链接:cyberdak.github.io/es/2020/06/28/e...