Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›ILM: Управление жизненным циклом индексов

Настройка политики жизненного цикла

Для управления индексом с помощью ILM необходимо указать действительную политику в настройке индекса index.lifecycle.name.

Чтобы настроить политику жизненного цикла для переролирования индексов, создайте политику и добавьте её в шаблон индекса.

Чтобы использовать политику для управления индексом, который не переролируется, вы можете указать политику жизненного цикла при создании индекса или применить политику непосредственно к существующему индексу.

Политики ILM хранятся в глобальном состоянии кластера и могут быть включены в снимки, установив include_global_state на значение true при создании снимка. При восстановлении снимка все политики из глобального состояния восстанавливаются, и любые локальные политики с одинаковыми именами перезаписываются.

При включении управления жизненным циклом индексов для Beats или плагина Logstash Elasticsearch output, необходимые политики и конфигурационные изменения применяются автоматически. Вы можете изменить политики по умолчанию, но не нужно явно настраивать политику или создавать начальный индекс.

Создание политики жизненного цикла

Чтобы создать политику жизненного цикла из Kibana, откройте меню и перейдите к Управление стеком > Политики жизненного цикла индексов. Нажмите Создать политику.

Create policy page

Вы указываете фазы жизненного цикла для политики и действия, которые необходимо выполнить в каждой фазе.

API создания или обновления политики вызывается для добавления политики в кластер Elasticsearch.

Пример API
PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_primary_shard_size": "25GB" 
          }
        }
      },
      "delete": {
        "min_age": "30d",
        "actions": {
          "delete": {} 
        }
      }
    }
  }
}

Переролить индекс, когда его размер достигнет 25 ГБ

Удалить индекс через 30 дней после переролирования

Применение политики жизненного цикла с шаблоном индекса

Чтобы использовать политику, которая запускает действие переролирования, необходимо настроить политику в шаблоне индекса, используемом для создания каждого нового индекса. Вы указываете имя политики и псевдоним, используемый для ссылки на переролированные индексы.

Вы можете использовать мастер создания шаблонов Kibana для создания шаблона. Чтобы получить доступ к мастеру, откройте меню и перейдите к Управление стеком > Управление индексами. На вкладке Шаблоны индексов нажмите Создать шаблон.

Create template page

Мастер вызывает API создания или обновления шаблона индекса для добавления шаблонов в кластер.

Пример API
PUT _index_template/my_template
{
  "index_patterns": ["test-*"], 
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "my_policy", 
      "index.lifecycle.rollover_alias": "test-alias" 
    }
  }
}

Используйте этот шаблон для всех новых индексов, имена которых начинаются с test-

Примените my_policy к новым индексам, созданным с помощью этого шаблона

Определите псевдоним индекса для ссылки на индексы, управляемые my_policy

Создание начального управляемого индекса

При настройке политик для собственных переролируемых индексов необходимо вручную создать первый индекс, управляемый политикой, и назначить его индексом записи.

При включении управления жизненным циклом индексов для Beats или плагина Logstash Elasticsearch output, необходимые политики и конфигурационные изменения применяются автоматически. Вы можете изменить политики по умолчанию, но не нужно явно настраивать политику или создавать начальный индекс.

Имя индекса должно соответствовать шаблону, определенному в шаблоне индекса, и заканчиваться числом. Это число увеличивается для генерации имени индексов, созданных действием переролирования.

Например, следующий запрос создает индекс test-00001. Поскольку он соответствует шаблону индекса, указанному в my_template, Elasticsearch автоматически применяет настройки из этого шаблона.

PUT test-000001
{
  "aliases": {
    "test-alias":{
      "is_write_index": true 
    }
  }
}

Установите этот начальный индекс в качестве индекса записи для этого псевдонима.

Теперь вы можете начать индексирование данных в псевдоним переролирования, указанный в политике жизненного цикла. С помощью политики my_policy, действие переролирования запускается, когда начальный индекс превышает 25 ГБ. ILM затем создает новый индекс, который становится индексом записи для test-alias.

Ручное применение политики жизненного цикла

Вы можете указать политику при создании индекса или применить политику к существующему индексу через Kibana или API обновления настроек. При применении политики ILM сразу же начинает управлять индексом.

Не применяйте вручную политику, использующую действие переролирования. Политики, использующие переролирование, должны применяться через шаблон индекса. В противном случае политика не будет перенесена при создании нового индекса действием переролирования.

Настройка index.lifecycle.name указывает политику индекса.

Пример API
PUT test-index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1,
    "index.lifecycle.name": "my_policy" 
  }
}

Устанавливает политику жизненного цикла для индекса.

Применение политики к нескольким индексам

Вы можете применить одну и ту же политику к нескольким индексам, используя подстановочные знаки в имени индекса при вызове API обновления настроек.

Будьте внимательны, чтобы случайно не изменить индексы, которые вы не хотите модифицировать.

PUT mylogs-pre-ilm*/_settings 
{
  "index": {
    "lifecycle": {
      "name": "mylogs_policy_existing"
    }
  }
}

Обновляет все индексы с именами, начинающимися с mylogs-pre-ilm

Переключение политик жизненного цикла

Чтобы переключить политику жизненного цикла индекса, выполните следующие шаги:

  1. Удалите существующую политику, используя API удаления политики. Укажите потоковое хранилище данных или псевдоним, чтобы удалить политики для всех его индексов.

    POST logs-my_app-default/_ilm/remove
  2. API удаления политики удаляет все метаданные ILM из индекса и не учитывает состояние жизненного цикла индекса. Это может привести к индексам в нежелательном состоянии.

    Например, действие forcemerge временно закрывает индекс перед его повторным открытием. Удаление политики ILM индекса во время forcemerge может привести к тому, что индекс останется закрытым неопределенно.

    После удаления политики используйте API получения индекса для проверки состояния индекса. Укажите потоковое хранилище данных или псевдоним, чтобы получить состояние всех его индексов.

    GET logs-my_app-default

    Затем вы можете изменить индекс по мере необходимости. Например, вы можете повторно открыть любые закрытые индексы, используя API открытия индекса.

    POST logs-my_app-default/_open
  3. Назначьте новую политику, используя API обновления настроек. Укажите потоковое хранилище данных или псевдоним, чтобы назначить политику всем его индексам.

    Не назначайте новую политику, не удалив сначала существующую политику. Это может привести к тому, что выполнение фазы выполнения фазы завершится без видимых ошибок.

    PUT logs-my_app-default/_settings
    {
      "index": {
        "lifecycle": {
          "name": "new-lifecycle-policy"
        }
      }
    }

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/set-up-lifecycle-policy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API