Политика жизненного цикла индекса

Я хотел бы создать политику «горячее-теплое», и индекс должен обновляться, когда размер индекса составляет 20 ГБ или max_age равен 30 дням, НО, если условие размера возникает до условия возраста, индекс должен обновляться, но данные должны оставаться в горячем узле, пока не наступит условие max_age. а потом данные должны быть в теплых данных 5 месяцев и потом удаляться.

Пример: если через 15 дней индекс составляет 20 ГБ, индекс обновляется, но не покидает узел горячих данных до тех пор, пока ему не исполнится 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?

Спасибо за вашу помощь

1 ответ

Вы можете обойти дату переноса с помощью:

Если указано, это временная метка, используемая для расчета возраста индекса для его фазовых переходов. Используйте этот параметр, если вы создаете новый индекс, содержащий старые данные, и хотите использовать исходную дату создания для расчета возраста индекса. Задается как значение эпохи Unix.

Вы можете установить это значение вручную или использоватьindex.lifecycle.origination_dateindex.lifecycle.parse_origination_dateиз имени индекса:

Установите значение true, чтобы проанализировать дату создания из имени индекса. Эта дата происхождения используется для расчета индекса возраста для его фазовых переходов. Имя индекса должно соответствовать шаблону ^.*-{date_format}-\\d+, где date_formatявляется yyyy.MM.ddа конечные цифры необязательны. Например, перевернутый индекс обычно соответствует полному формату. logs-2016.10.31-000002. Если имя индекса не соответствует шаблону, создание индекса завершается ошибкой.

Таким образом, с правильными именами индексов это должно быть выполнимо (хотя это IMO скорее обходной путь, чем функция).

Другие вопросы по тегам