注:Kibana和ES均为7.3.2版本,请保持Kibana和ES版本一致
Hot phase 热阶段
- Rollover index 索引别名滚动更新
● 滚动更新创建的新索引将添加到索引别名,并被指定为写索引。
● 索引名称以“-[数字]”结尾的话,新索引名称会递增,不用单独指定名称。例:test-log-1。
● 如果别名指向多个索引,则必须指定一个索引为写索引:设置 is_write_index 为true。
● 滚动更新条件:
- max_age (时间单位) 索引的最大期限,可选单位是:天/小时
- max_docs 索引最大文档数 (不包括副本碎片中的数量)
- max_size 索引最大数,索引主分片最大存储量,可选单位:兆/千兆
♦ 三个条件满足其一策略就会生效
Index priority 索引优先级
- Index priority (optional) 索引优先级 (可选)
● 设置在节点重新启动后恢复索引的优先级。较高优先级的索引会在较低优先级的索引之前恢复。
Warm phase 温热阶段
- 滚动更新时移到温热阶段
● 开启“热阶段”滚动更新时可以选择 “开启/关闭”,如果开启则索引会在滚动更新时自动将旧索引移入温热阶段。
● 如果关闭,则可以选择 计时滚动更新,可以通过时间将索引移入温热阶段,单位:天/小时。
- 选择节点属性来控制分片分配
● 如果 elasticsearch.yml 配置文件中配置了 node.attr.{attribute}: {value} 属性,则可以选择索引移到温热阶段时所在分片位置。
- attribute:自己定义的任意标签名
- value:对应的标签的值,例如 hot/warm
♦ 如果没有配置 node.attr.{attribute}: {value} 属性,则不能控制分片位置,只能默认分配。
- 副本分片数目
● 默认情况下,副本分片数目仍一样。
- Shrink index 收缩索引
● 收缩索引的分片数,将多个分片合并 {num} 个分片。
♦ 分片数目必须可以被目前分片数整除,如果是素数,只能合并成单个分片。
- Force merge 合并分段 (segment)
● 合并分片中分段的数量,减少分片中的段数目
Cold phase 冷阶段
- 滚动计时、节点分片分配、副本分片数目同上
- Freeze index 冻结索引
● 冻结的索引在集群上有很少的开销,已被阻止进行写操作。您可以搜索冻结的索引,但查询应会较慢。
Delete phase 删除阶段
- 滚动计时 同上
♦ 索引生命周期策略默认每10分钟检查一次符合策略的索引,如果需要修改这个时间可以通过修改 indices.lifecycle.poll_interval 参数来修改(慎重修改,避免时间间隔太短给节点造成不必要的负载),例:
PUT _cluster/settings
{
"transient": {
"indices.lifecycle.poll_interval": "1m"
}
}
♦ 索引必须满足“模板”和“别名”两个条件才可以设置生命周期策略 (模板的mapping字段可增加,不必严格按照模板字段)。
♦ 给索引添加周期策略有两种方式:
1. 将周期策略添加到索引模板。
2. 给某个索引添加周期策略。
- 方式 1 可以将策略应用到整个别名覆盖的索引;方法 2 只能覆盖当前索引,新滚动的索引不再受周期策略影响。
- 如果第一次添加策略是通过方式 2 添加,然后再通过方式 1 添加新滚动的索引不会加入策略。必须再把模板下新滚动生成的索引重新添加一次策略才能成功,后续的新索引都将依赖策略(7.3的官方文档未提到,经验证7.3版本可以如此操作)。
♦ 删除策略时要同步 删除/覆盖 之前策略应用到的模板,否则新建依赖模板的索引会报错。