Rollover API
Тема дорожной карты · Elasticsearch
Rollover API в Elasticsearch создаёт новый индекс, когда текущий индекс для записи за псевдонимом или потоком данных удовлетворяет одному или нескольким настроенным условиям, и является фундаментом стратегий управления временными индексами. Ролловер запускается через POST /<alias>/_rollover с опциональным телом, задающим пороги: max_age (например, "1d"), max_docs (например, 1000000) и max_primary_shard_size (например, 50gb); Elasticsearch проверяет условия и при выполнении любого из них создаёт новый индекс и атомарно обновляет псевдоним, перенаправляя его на новый. Rollover API чаще всего вызывается автоматически политиками ILM по заданному расписанию горячей фазы — благодаря этому в продуктивной среде операторам никогда не нужно запускать ролловер вручную. Соглашение об именовании индексов, управляемых ролловером, следует паттерну вида logs-000001, logs-000002, где псевдоним (например, logs) всегда указывает на самый последний индекс для записи. После ролловера предыдущий индекс становится доступным только для чтения (его псевдоним write удаляется) и может быть перемещён на тёплый или холодный уровень политикой ILM, что делает Rollover API стержнем архитектуры горячих, тёплых и холодных уровней в Elasticsearch.
Как это работает
Rollover API: Index templates применяют settings + mappings к индексам, matching pattern (e.g., logs-*). ILM (Index Lifecycle Management) автоматизирует rollover, shrink, freeze, delete по age/size/doc count. Rollover API создаёт новый индекс при условиях (5 дней, 50GB, 100M docs). Aliases дают stable name, указывающий на один или много индексов — приложения query alias, ILM manage-ит backing-индексы. Reindex API копирует docs между индексами (для mapping changes + version migrations).
Когда применять
Для time-series (logs, metrics, events) ВСЕГДА используйте index templates + ILM + rollover — fixed-name индексы растут без границ. Write alias + read alias раздельно для безопасного rollover. Для mapping changes — reindex API; existing field mappings не меняются in place.
Типичные ошибки
Ловушки Rollover API: fixed-name daily index без rollover (упираетесь в shard limits); нет ILM (старые индексы аккумулируются вечно); reindex без aliases (downtime при cutover); меняют mappings + ожидают "just works" (большинство type changes тихо игнорируются).
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…