0

我想创建一个热温策略,当索引为 20Gb 大小或 max_age 等于 30days 时,索引应该翻转,但如果大小条件发生在年龄条件之前,索引应该翻转但数据必须保留在热节点中直到 max_age 条件发生。然后数据应该在暖数据5个月后删除。

示例:如果 15 天后索引为 20gb,则索引翻转但直到它的年龄为 30 天才离开热数据节点,所以在进入热数据之前应该在热数据中保留其他 15 天(希望我解释一下很好:sweat_smile:)

所以我创建了这个政策

PUT _ilm/policy/hot-warm-cold-delete-6months-policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size":"20gb",
            "max_age":"30d"
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "warm": {
        "min_age": "30d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "shrink": {
            "number_of_shards": 1
          },
          "allocate": {
            "require": {
              "data": "warm"
            }
          },
          "set_priority": {
            "priority": 25
          }
        }
      },
      "delete": {
        "min_age": "150d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

但如果我理解得很好,这意味着索引将在翻转 30 天后发送到暖数据,而不是从创建日期开始,并且它不能按我想要的那样工作

您能否告诉我,如果 ILM 可以做我想做的事情?

谢谢你的帮助

4

1 回答 1

1

您可以使用以下方法解决翻转日期index.lifecycle.origination_date

如果指定,这是用于计算其相变的索引年龄的时间戳。如果您创建包含旧数据的新索引并希望使用原始创建日期来计算索引年龄,请使用此设置。指定为 Unix 纪元值。

您可以手动设置该值,也可以使用index.lifecycle.parse_origination_date索引名称:

设置为 true 以从索引名称解析起始日期。该起始日期用于计算其相变的指数年龄。索引名称必须与模式匹配^.*-{date_format}-\\d+,其中date_formatisyyyy.MM.dd和尾随数字是可选的。翻转的索引通常会匹配完整格式,例如logs-2016.10.31-000002. 如果索引名称与模式不匹配,则索引创建失败。

因此,使用正确的索引名称,这应该是可行的(尽管它是 IMO 更多的解决方法而不是功能)。

于 2020-12-31T13:15:24.383 回答