Веб-версияОткрыть в Telegram

ПостКоллеги, приветствую👋

24 августа 2026
D
Devops Bootcamp с Федосеевым
Ссылка
нажмите — покажем
Коллеги, приветствую👋 Сегодня поговорим о том, как быстро перенести индекс Elasticsearch между кластерами без S3. Недавно при переезде на новый кластер Elasticsearch понадобилось перенести только несколько индексов. Казалось бы, задача простая: перенести документы — и готово. Но индекс в Elasticsearch - это не только документы. Есть ещё mapping, settings, aliases и другие метаданные. Самый правильный вариант - Snapshot/Restore Для полноценного переноса Elasticsearch предоставляет механизм Snapshot/Restore. Snapshot можно хранить во внешнем repository, например в S3, а затем восстановить на другом кластере. Документация: Snapshot and Restore S3 repository Это хороший вариант, когда инфраструктура уже готова. Но что делать, если доступ к S3 нужно ещё получить, а индексы нужны буквально «вчера»? Reindex — быстрый перенос документов В Elasticsearch есть API _reindex, который позволяет скопировать документы из одного индекса в другой. Он также поддерживает перенос из удалённого Elasticsearch-кластера. Простейший вариант: POST /_reindex { "source": { "index": "old-index" }, "dest": { "index": "new-index" } } Документация: Reindex API Но здесь есть важный нюанс. _reindex переносит документы, но не переносит mapping и settings исходного индекса. Поэтому целевой индекс нужно подготовить до запуска reindex. Сначала mapping, потом документы Получить mapping исходного индекса можно так: GET /old-index/_mapping Документация: Get mapping После этого создаём индекс на новом кластере с нужным mapping: PUT /new-index { "settings": { "number_of_shards": 3, "number_of_replicas": 1 }, "mappings": { "properties": { "name": { "type": "keyword" }, "age": { "type": "integer" } } } } Это важно, потому что если создать пустой индекс без нужного mapping, Elasticsearch может применить dynamic mapping при первой индексации документов. В результате типы полей могут отличаться от исходного индекса. При создании индекса можно сразу задать settings, mappings и aliases: Create index API. И не забываем про aliases Ещё одна частая ошибка — перенести документы и забыть про aliases. Например, приложение работает с: users а на самом деле это alias, указывающий на: users-2026-08 Получить aliases можно через: GET /old-index/_alias После переноса их необходимо создать на новом индексе. Например: PUT /new-index/_alias/users Или использовать _aliases, если нужно одновременно удалить alias со старого индекса и добавить его на новый: POST /_aliases { "actions": [ { "remove": { "index": "old-index", "alias": "users" } }, { "add": { "index": "new-index", "alias": "users" } } ] } Это удобно при production-миграции: приложение продолжает обращаться к тому же alias, а мы просто переключаем его на новый индекс. Документация: Aliases API Можно автоматизировать Если индексов много или не хочется писать всё вручную, можно использовать elasticsearch-dump. Инструмент позволяет отдельно переносить data, mapping, alias, settings, analyzer и другие сущности. elasticsearch-dump на GitHub Например: elasticdump \ --input=http://old-es:9200/my_index \ --output=http://new-es:9200/my_index \ --type=mapping elasticdump \ --input=http://old-es:9200/my_index \ --output=http://new-es:9200/my_index \ --type=data Это уже можно завернуть в обычный Bash-скрипт и автоматизировать миграцию.
7 · 1.1K ·

Рядом в ленте

DDevops Bootcamp с ФедосеевымВидеосообщениеDDevops Bootcamp с ФедосеевымВидеосообщение
это сообщение
DDevops Bootcamp с Федосеевым⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️ Коллеги, приветствую!👋 Приглашаю вас на вебинар на тему: «Разбор реальных вакансий Junior DevOps»⚡️ Спикеры: 🔴Аниса Рогатова — Senior ИТ-рекрDDevops Bootcamp с ФедосеевымКоллеги, приветствую! 👋 Слёрм разыгрывает бесплатную консультацию - 30 минут с Анисой Рогатовой, Senior ИТ-рекрутером в финтехе (опыт в OZON, Банке Точка, Skill
DDevops Bootcamp с ФедосеевымDevops Bootcamp с Федосеевым@devopsupgrade · канал · Технологии
5 323подписчиков890средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем