《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.7.索引生命周期管理(5) https://developer.aliyun.com/article/1228511
通过 data stream 使用 ILM
1、创建生命周期策略
创建生命周期策略,在 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
与通过 alias 的形式区别: 模板不需要指定 index.rollover_alias,也不需要手动创建第一个
index,直接将数据写入符合模板的 index 即可,至于这个 index 在 Elasticsearch 中对应几个index,我们无需关注。
PUT _index_template/logx-template { "index_patterns" : ["logx-*"], "priority" : 1, "data_stream": { }, "template": { "settings" : { "index" : { "number_of_shards" : "2", "number_of_replicas" : "1", "lifecycle.name": "logx_policy" } } } }
3、创建 data stream
POST /logx-business/_doc/ { "@timestamp":"2021-04-13T11:04:05.000Z", "message":"Loginattemptfailed" } # OR PUT /_data_stream/logx-business
后续的数据读写均使用固定 index: logx-business
《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.7.索引生命周期管理(7) https://developer.aliyun.com/article/1228508