Поскольку данные временных рядов постоянно записываются в OpenSearch и размер индекса продолжает расти, вы можете настроить управление жизненным циклом индекса (ISM) для периодического переключения данных в новые индексы и удаления старых индексов.
В этом примере для кластера OpenSearch создается политика жизненного цикла. Согласно этой политике, когда размер индекса достигает 1 TB или индексу исполняется один день, будет автоматически создан новый индекс; через семь дней после создания индекса дублирование данных будет отключено; через 30 дней после создания индекса индекс будет удалён.
Предположим, что индекс генерирует примерно 2,4 TB данных каждый день. Алиас индекса — log-alias. На следующем рисунке показан формат данных в кластере. При чтении он указывает на все индексы, имя которых начинается с test. При записи он указывает на последний индекс.
Рисунок 1 формат log-alias

Один день в периоде rollover обозначает 24 часа после времени создания индекса, а не календарный день.
Целевой кластер OpenSearch доступен.
Левая часть консоли — это поле ввода команды, а треугольный значок в её верхнем правому углу является кнопкой выполнения. Правая часть отображает результат выполнения.
Описание политики: Когда размер индекса достигает 1 TB или его возраст превышает один день, rollover индекса выполняется автоматически. Когда возраст индекса достигает семи дней, реплики данных отключаются. Когда достигает 30 дней, индекс удаляется.
PUT _plugins/_ism/policies/rollover_workflow{"policy": {"description": "rollover test","default_state": "hot","states": [{"name": "hot","actions": [{"rollover": {"min_size": "1tb","min_index_age": "1d"}}],"transitions": [{"state_name": "warm","conditions": {"min_index_age": "7d"}}]},{"name": "warm","actions": [{"replica_count": {"number_of_replicas": 0}}],"transitions": [{"state_name": "delete","conditions": {"min_index_age": "30d"}}]},{"name": "delete","actions": [{"delete": {}}]}],"ism_template": {"index_patterns": ["test*"],"priority": 100}}}
После создания политики жизненного цикла выполните следующую команду, чтобы запросить детали политики:
GET _plugins/_ism/policies/rollover_workflow
Описание шаблона: Все новые индексы, начинающиеся с test автоматически связываются с политикой жизненного цикла rollover rollover_workflow. Псевдоним log_alias используется во время rollover.
PUT _template/template_test{"index_patterns": "test*","settings": {"number_of_replicas": 1,"number_of_shards": 1,"index.opendistro.index_state_management.rollover_alias": "log_alias"},"mappings": {"properties": {"name": {"type": "text"}}}}
Параметр | Описание |
|---|---|
number_of_shards | Количество шардов индекса |
number_of_replicas | Количество реплик шардов индекса |
index.opendistro.index_state_management.rollover_alias | Псевдоним индекса для rollover |
После создания шаблона индекса вы можете выполнить следующую команду, чтобы запросить детали шаблона:
GET _template/template_test
Следующий индекс — это URL‑код <test-{now/d}-000001>. По умолчанию имя индекса содержит дату создания. Например, если индекс создан 2022-06-02, имя индекса test-2022.06.02-000001.
PUT %3Ctest-%7Bnow%2Fd%7D-000001%3E{"aliases": {"log_alias": {"is_write_index": true}}}
POST log_alias/_bulk{"index":{}}{"name":"name1"}{"index":{}}{"name":"name2"}{"index":{}}{"name":"name3"}{"index":{}}{"name":"name4"}{"index":{}}{"name":"name5"}{"index":{}}{"name":"name6"}
GET _cat/indices/test*?s=i
Должно быть как минимум два индекса, например:
green open test-<Date>-000001 r8ab5NX6T3Ox_hoGUanogQ 1 1 6 0 416b 208bgreen open test-<Date>-000002 sfwkVgy8RSSEw7W-xYjM2Q 1 1 0 0 209b 209b
В приведенной выше информации, test-<Date>-000001 это индекс, созданный в 4, и test-<Date>-000002 это индекс, созданный при ролловере.
GET _cat/aliases/log_alias?v
Алиас должен указывать на несколько индексов, например:
alias index filter routing.index routing.search is_write_indexlog_alias test-<Date>-000001 - - - falselog_alias test-<Date>-000002 - - - true
Сценарии
После того как переключение для индекса будет пропущено, ISM более не будет пытаться выполнять переключение или создавать переключённые индексы. Это означает, что пропуск переключения индекса может привести к потере данных. Пожалуйста, соблюдайте осторожность.
Процедура
PUT index_name/_settings{"index.plugins.index_state_management.rollover_skip": true}
Если true возвращается, конфигурация выполнена успешно.
POST _plugins/_ism/retry/index_name
Если возвращена следующая информация, повторный запуск выполнен успешно:
{"updated_indices": 1,"failures": false,"failed_indices": []}