Налаштування OpenSearch: міграція з Elasticsearch та розгортання

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

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, 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 та спільнотою. Економія на ліцензіях може сягати $16,000 на рік на вузол. Наприклад, для кластера з 5 вузлів економія складає $80,000 на рік. Налаштування OpenSearch — процес, що вимагає уваги до деталей. Наша команда має 7 років досвіду в розгортанні пошукових систем і реалізувала 50+ проектів з міграції з Elasticsearch на OpenSearch. Ми гарантуємо безперебійну роботу кластера після налаштування. Вартість розгортання кластера з 3 вузлів — від $2,000. Зв'яжіться з нами для безкоштовної оцінки вашого проекту.

Чому варто обрати 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 на рік за вузол. OpenSearch в 3 рази дешевший за Elasticsearch при однаковому функціоналі безпеки. І навпаки: в 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 — зв'яжіться з нами, оцінимо ваш проект безкоштовно.