Раздел 40 · Elasticsearch и ELK

OpenSearch: форк стека

junior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Команда нашла managed-сервис OpenSearch и хочет заменить адрес Elasticsearch в Logstash. «Оба понимают JSON и _search, значит всё заработает». Две машины могут иметь одинаковые педали, но разные ключи и размеры деталей. Сходство интерфейса ещё не означает совместимость всего стека.

Откуда взялась развилка

Форк

OpenSearch появился в 2021 году после изменения лицензирования Elasticsearch и Kibana. Основой были Elasticsearch 7.10.2 и Kibana 7.10.2. OpenSearch и OpenSearch Dashboards развиваются отдельно под Apache 2.0; это не переименованный Elasticsearch 9.5.

У Elastic бесплатные части исходного кода Elasticsearch и Kibana получили вариант AGPLv3 наряду с SSPL и ELv2 в 2024 году. Готовый стандартный дистрибутив остаётся под ELv2. Не путай лицензию исходников, бинарной поставки и платные функции. FAQ Elastic описывает границы; юридическое решение о продаже сервиса требует чтения условий, а не одной строки «open source».

Что останется знакомым

Документы JSON, индексы, text и keyword, _bulk, многие Query DSL запросы и агрегации выглядят знакомо. OpenSearch Dashboards играет роль интерфейса поиска и панелей, Data Prepper помогает принимать и обрабатывать события. Но текущие версии клиентов и плагинов выбирай именно под OpenSearch.

Часть конвейераЧто проверить
отправительсовместимость версии агента и output-плагина
схематипы, анализаторы, templates, динамические поля
жизненный циклILM и OpenSearch ISM не один API
панелиформат экспорта saved objects и язык фильтра
защитароли, TLS, ключи и настройки security plugin

ISM

не принимает policy ILM лишь потому, что она JSON. Уведомления и плагины тоже различаются. Elasticsearch snapshots нельзя считать универсальным файлом миграции между современными линиями продукта.

Отдели переносимый запрос от продукта

Песочница остаётся Elasticsearch-моделью, не запускает OpenSearch и не проверяет его совместимость. Ниже обычная фильтрация и terms, кандидаты для отдельного сравнительного прогона на двух настоящих серверах.

Добавь фильтр log.level: ERROR, затем убери его и сравни распределение уровней. Запиши поля и операции, от которых зависит запрос. Миграционный тест должен сравнивать результаты на одинаковых документах, а не только отсутствие ошибки HTTP.

Как переносить без прыжка вслепую

  1. Выпиши конкретные версии источника, цели, клиентов и плагинов.
  2. Подними отдельный целевой стенд, создай схемы его API, перенеси небольшой обезличенный набор.
  3. Проверь документы, поиск, агрегации, lifecycle, dashboards и ожидаемые отказы доступа.
  4. Сравни поток новых записей, задержку, размер и нагрузку. Только потом планируй переключение и обратный путь.

Лицензия не обещает нулевую стоимость эксплуатации. Нужны люди, диски, обновления и восстановление. Иногда другую цену даёт другой способ индексирования, а не форк: Loki и альтернативы.

урок из курса

Урок из курса «Elasticsearch и ELK». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.