Настройка OpenSearch: миграция с Elasticsearch и развёртывание

Мы часто сталкиваемся с ситуацией: клиент использует Elasticsearch, но хочет избежать платной лицензии для Security, Alerting или Index Management. **OpenSearch** — форк Elasticsearch 7.10, созданный Amazon после смены лицензии. Он полностью open-source (Apache 2.0), активно развивается AWS и сообще

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка OpenSearch: миграция с Elasticsearch и развёртывание
Сложный
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1286
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    983
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    998

Мы часто сталкиваемся с ситуацией: клиент использует Elasticsearch, но хочет избежать платной лицензии для Security, Alerting или Index Management. OpenSearch — форк Elasticsearch 7.10, созданный Amazon после смены лицензии. Он полностью open-source (Apache 2.0), активно развивается AWS и сообществом. Экономия на лицензиях может достигать $50,000 в год на кластере из 3 узлов. Настройка OpenSearch — процесс, требующий внимания к деталям. Наша команда имеет 7 лет опыта в развёртывании поисковых систем и реализовала 50+ проектов по миграции с Elasticsearch на OpenSearch. Свяжитесь с нами для бесплатной оценки вашего проекта.

Почему стоит выбрать OpenSearch?

OpenSearch сохранил совместимость с Elasticsearch 7.x API — большинство клиентов ES 7.x работают без изменений. ES 8.x ввёл breaking changes (обязательный TLS, изменения в security API), поэтому прямая совместимость нарушена. OpenSearch даёт то, что в бесплатном Elasticsearch недоступно: Security (TLS, аутентификация, RBAC), Alerting, anomaly detection, Index Management (ISM) и SQL-поддержка. В Elasticsearch эти фичи требуют платной подписки Platinum или Enterprise. Для сравнения, лицензия Elasticsearch Platinum обходится в $16,000 в год за узел. И наоборот: в Elasticsearch 8.x есть EQL, ES|QL и некоторые ML-модели, которых в OpenSearch пока нет. Закажите консультацию, и мы поможем выбрать оптимальную конфигурацию.

Функция OpenSearch Elasticsearch (free) Elasticsearch (платный)
Security (TLS, RBAC) ✅ Встроено
Alerting ✅ Встроено
Index Management (ILM/ISM) ✅ ISM ✅ (ILM)
SQL
EQL / ES QL
ML (anomaly detection) ✅ ML Commons

Как развернуть OpenSearch кластер?

Для production используем Docker Compose с несколькими нодами и OpenSearch Dashboards. Пример конфигурации для кластера из двух узлов:

version: '3' services: opensearch-node1: image: opensearchproject/opensearch:2.13.0 container_name: opensearch-node1 environment: - cluster.name=opensearch-cluster - node.name=opensearch-node1 - discovery.seed_hosts=opensearch-node1,opensearch-node2 - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 - bootstrap.memory_lock=true - "OPENSEARCH_JAVA_OPTS=-Xms2g -Xmx2g" - DISABLE_INSTALL_DEMO_CONFIG=true - DISABLE_SECURITY_PLUGIN=false ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 volumes: - opensearch-data1:/usr/share/opensearch/data - ./opensearch.yml:/usr/share/opensearch/config/opensearch.yml - ./certs/root-ca.pem:/usr/share/opensearch/config/root-ca.pem - ./certs/node1.pem:/usr/share/opensearch/config/node1.pem - ./certs/node1-key.pem:/usr/share/opensearch/config/node1-key.pem ports: - 9200:9200 - 9600:9600 opensearch-node2: image: opensearchproject/opensearch:2.13.0 container_name: opensearch-node2 environment: - cluster.name=opensearch-cluster - node.name=opensearch-node2 - discovery.seed_hosts=opensearch-node1,opensearch-node2 - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 - bootstrap.memory_lock=true - "OPENSEARCH_JAVA_OPTS=-Xms2g -Xmx2g" - DISABLE_INSTALL_DEMO_CONFIG=true - DISABLE_SECURITY_PLUGIN=false ulimits: memlock: soft: -1 hard: -1 volumes: - opensearch-data2:/usr/share/opensearch/data - ./opensearch.yml:/usr/share/opensearch/config/opensearch.yml - ./certs/root-ca.pem:/usr/share/opensearch/config/root-ca.pem - ./certs/node2.pem:/usr/share/opensearch/config/node2.pem - ./certs/node2-key.pem:/usr/share/opensearch/config/node2-key.pem opensearch-dashboards: image: opensearchproject/opensearch-dashboards:2.13.0 container_name: opensearch-dashboards ports: - 5601:5601 environment: OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' DISABLE_SECURITY_DASHBOARDS_PLUGIN: "false" volumes: opensearch-data1: opensearch-data2: 

Конфигурационный файл opensearch.yml включает настройки TLS и security:

cluster.name: opensearch-cluster network.host: 0.0.0.0 plugins.security.ssl.transport.pemcert_filepath: node1.pem plugins.security.ssl.transport.pemkey_filepath: node1-key.pem plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem plugins.security.ssl.transport.enforce_hostname_verification: false plugins.security.ssl.http.enabled: true plugins.security.ssl.http.pemcert_filepath: node1.pem plugins.security.ssl.http.pemkey_filepath: node1-key.pem plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem plugins.security.allow_unsafe_democertificates: false plugins.security.allow_default_init_securityindex: true plugins.security.authcz.admin_dn: - 'CN=admin,OU=client,O=client,L=test,C=de' plugins.security.nodes_dn: - 'CN=node1.example.com,OU=test,O=test,L=test,C=de' - 'CN=node2.example.com,OU=test,O=test,L=test,C=de' plugins.security.audit.type: internal_opensearch plugins.security.enable_snapshot_restore_privilege: true plugins.security.check_snapshot_restore_write_privileges: true plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"] 

Какие функции безопасности встроены в OpenSearch?

OpenSearch Security Plugin включает TLS для транспорта и HTTP, RBAC, аудит, и внутреннее хранилище пользователей. Инициализация security index и смена пароля admin выполняются после первого запуска. Пример генерации сертификатов:

# Создание корневого сертификата openssl genrsa -out root-ca-key.pem 2048 openssl req -new -x509 -sha256 -key root-ca-key.pem -out root-ca.pem -days 3650 -subj "/C=UA/O=MyOrg/CN=root-ca" # Сертификат узла openssl genrsa -out node1-key.pem 2048 openssl req -new -key node1-key.pem -out node1.csr -subj "/C=UA/O=MyOrg/CN=node1.example.com/OU=test" openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -out node1.pem -days 3650 -sha256 

После первого запуска инициализируем security index и меняем пароль admin:

# Инициализация security index docker exec -it opensearch-node1 bash /usr/share/opensearch/plugins/opensearch-security/tools/securityadmin.sh \ -cd /usr/share/opensearch/config/opensearch-security/ \ -icl -nhnv \ -cacert /usr/share/opensearch/config/root-ca.pem \ -cert /usr/share/opensearch/config/admin.pem \ -key /usr/share/opensearch/config/admin-key.pem # Смена пароля admin curl -XPUT "https://localhost:9200/_plugins/_security/api/internalusers/admin" \ -H 'Content-Type: application/json' \ -u 'admin:admin' \ --cacert root-ca.pem \ -d '{"password": "NewSecurePassword123!", "backend_roles": ["admin"]}' 

Миграция с Elasticsearch

При миграции с Elasticsearch 7.x на OpenSearch снапшот-восстановление работает без проблем. На ES создаёте снапшот, на OpenSearch регистрируете тот же репозиторий и восстанавливаете. Прямая миграция ES 8.x невозможна из-за несовместимости формата, потребуется переиндексация. Мы рекомендуем использовать Logstash с input-elasticsearch и output-opensearch. Это занимает 1-2 дня в зависимости от объёма данных.

Объём данных Время миграции (ES 7.x) Время миграции (ES 8.x)
< 100 ГБ 1 день 1-2 дня
100 ГБ - 1 ТБ 1-2 дня 2-3 дня
> 1 ТБ 2-3 дня 3-5 дней

Процесс работы

  1. Аналитика: аудит текущего кластера, версий, размера данных, нагрузки. Определяем схему миграции.
  2. Проектирование: архитектура нового кластера — количество нод, ресурсы, политики ISM, настройка безопасности.
  3. Реализация: развёртывание OpenSearch, настройка TLS, Security, Dashboards, перенос данных.
  4. Тестирование: проверка совместимости клиентов, нагрузочное тестирование, сравнение производительности.
  5. Деплой: переключение трафика, мониторинг, обучение команды.

Что входит в работу

  • Развёртывание кластера OpenSearch (от 1 до 10+ нод)
  • Настройка TLS/SSL, RBAC, audit logging
  • Интеграция OpenSearch Dashboards с кастомными дашбордами
  • Миграция данных с Elasticsearch 7.x или 8.x
  • Оптимизация индексов, настройка ISM политик
  • Документация по администрированию и восстановлению
  • Часовая поддержка после деплоя

Сроки

Развёртывание кластера из 3 узлов — 2–3 рабочих дня. Миграция данных с ES 7.x — 1 дополнительный день. Настройка ISM и Dashboards — ещё 1 день. Полный проект «под ключ» — до 5 дней. Закажите консультацию для точной оценки вашего проекта.

Типичные ошибки при настройке OpenSearch
  • Отсутствие heap dump при OOM — настроить OPENSEARCH_JAVA_OPTS с правильным Xms/Xmx.
  • Несовместимость клиентов — если используете ES 8.x клиент, замените на opensearch-клиент.
  • Проблемы с TLS — неверные пути к сертификатам; всегда проверяйте verify_certs.
  • Отсутствие резервирования — не настраивайте single-node в production; минимум 3 ноды.
  • Игнорирование ulimits — настройте memlock и nofile в docker-compose.

Официальная документация OpenSearch поможет разобраться с деталями. Для консультации по настройке OpenSearch или миграции с Elasticsearch — свяжитесь с нами, оценим ваш проект бесплатно.