Ми часто стикаємося з ситуацією: клієнт використовує 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 днів |
Процес роботи
- Аналітика: аудит поточного кластера, версій, розміру даних, навантаження. Визначаємо схему міграції.
- Проектування: архітектура нового кластера — кількість нод, ресурси, політики ISM, налаштування безпеки.
- Реалізація: розгортання OpenSearch, налаштування TLS, Security, Dashboards, перенесення даних.
- Тестування: перевірка сумісності клієнтів, навантажувальне тестування, порівняння продуктивності.
- Деплой: перемикання трафіку, моніторинг, навчання команди.
Що входить в роботу
- Розгортання кластера 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 — зв'яжіться з нами, оцінимо ваш проект безкоштовно.







