Обзор развертывания OpenSearch на сервере¶
Предварительные требования и базовые условия¶
Перед развертыванием приложения целевой сервер должен соответствовать следующим требованиям:
-
Операционная система: Ubuntu.
-
Привилегии: Требуется доступ с правами root или sudo для управления службами Docker и настройки межсетевого экрана.
-
Домен: Сервер должен быть привязан к зоне
hostkey.in. -
Порты:
-
Порт
443для доступа по HTTPS через обратный прокси-сервер. -
Порт
9200для REST API OpenSearch (внутренняя сеть контейнеров). -
Порт
5601для OpenSearch Dashboards (внутренняя сеть контейнеров). -
Порт
9600для мониторинга OpenSearch (внутренняя сеть контейнеров).
-
URL панели управления¶
Финальная панель приложения доступна по следующему формату ФУПН (Fully Qualified Domain Name): <prefix><Server ID>.hostkey.in:443
Где <prefix> установлен в значение opensearch, а <Server ID> соответствует конкретному идентификатору экземпляра. Доступ защищен с использованием HTTPS через конфигурацию обратного прокси-сервера.
Структура файлов и каталогов¶
Приложение и его вспомогательные компоненты организованы в следующих директориях:
-
/home/<user>/opensearch-project/: Основная директория проекта, содержащая конфигурацию Docker Compose и тома постоянных данных для OpenSearch. -
/root/nginx/: Директория, содержащая конфигурацию обратного прокси-сервера Nginx и Certbot через Docker Compose. -
/data/nginx/user_conf.d/: Директория, хранящая специфические файлы конфигурации сервера Nginx для данного приложения. -
/etc/letsencrypt/: Точка монтирования для сертификатов SSL/TLS, управляемых через Certbot.
Процесс установки приложения¶
Приложение развертывается с использованием Docker и Docker Compose. Процесс включает установку движка Docker, создание структуры проекта и определение конфигурации служб.
-
Движок Docker: Устанавливается через управляемую роль (managed installation role).
-
Docker Compose: Устанавливается через менеджер пакетов
apt. -
Версии образов:
-
OpenSearch:
opensearchproject/opensearch:2.17.0 -
OpenSearch Dashboards:
opensearchproject/opensearch-dashboards:2.17.0
-
Файл Docker Compose генерируется по пути /home/<user>/opensearch-project/docker-compose.yml. Он определяет две основные службы:
-
opensearch-node1: Настроен как одноузловой кластер с включенной блокировкой памяти и размером кучи Java, установленным в 512 МБ. -
opensearch-dashboards: Настроен для подключения к узлу OpenSearch через внутреннюю сеть Docker.
Контейнеры Docker и их развертывание¶
Приложение состоит из трех основных групп контейнеров, развернутых через Docker Compose:
Стек OpenSearch
-
Имя контейнера:
opensearch-node1-
Образ:
opensearchproject/opensearch:2.17.0 -
Переменные окружения:
-
discovery.type:single-node -
bootstrap.memory_lock:true -
OPENSEARCH_JAVA_OPTS:-Xms512m -Xmx512m -
OPENSEARCH_INITIAL_ADMIN_PASSWORD: Устанавливается равным паролю SSH во время установки.
-
-
Томы: Маппинг
./opensearch-dataв/usr/share/opensearch/dataдля постоянного хранения данных. -
Порты: Публикует порты
9200и9600.
-
-
Имя контейнера:
opensearch-dashboards-
Образ:
opensearchproject/opensearch-dashboards:2.17.0 -
Переменные окружения:
OPENSEARCH_HOSTS:["https://opensearch-node1:9200"]
-
Порты: Публикует порт
5601.
-
-
Сеть: Оба контейнера используют мостовую сеть с именем
opensearch-net.
Стек обратного прокси-сервера
-
Имя контейнера:
nginx(управляется через/root/nginx/compose.yml)-
Образ:
jonasal/nginx-certbot:latest -
Режим сети:
host -
Томы:
-
nginx_secretsотображен в/etc/letsencryptдля хранения сертификатов SSL. -
/data/nginx/user_conf.dотображен в/etc/nginx/user_conf.dдля пользовательских конфигураций.
-
-
Политика перезапуска:
unless-stopped -
Email: Настроен для продления сертификата по адресу
hkadm@hostkey.com.
-
Прокси-серверы¶
Для обработки терминации SSL и маршрутизации доменов реализован обратный прокси-сервер на базе Nginx и Certbot.
-
ПО: Nginx с интеграцией Certbot (
jonasal/nginx-certbot). -
Расположение конфигурации:
/data/nginx/user_conf.d/opensearch<Server ID>.hostkey.in.conf. -
Настройки прокси:
-
Конфигурация прокси направляет весь трафик (
location /) наhttp://127.0.0.1:5601. -
Внешний трафик принимается на порту
443и пересылается внутренне на контейнер OpenSearch Dashboards на порту5601.
-
-
SSL/Сертификаты: Автоматически управляются Certbot внутри контейнера Docker, с хранением секретов в томе
nginx_secrets.
Настройки прав доступа¶
Права доступа к файлам и директориям настроены для обеспечения правильного владения и контроля доступа:
-
/home/<user>/opensearch-project/: Владелец — локальный пользователь (<user>), режим файла Docker Compose —0666. -
/root/nginx/: Владелец —root, режим —0755. -
/root/nginx/compose.yml: Владелец —root, режим —0644. -
/data/nginx/user_conf.d/: Владелец —root(наследуется от родителя или явно задается в контексте монтирования).
Расположение файлов конфигурации и данных¶
Следующие пути содержат критически важные файлы конфигурации и хранилища данных:
| Компонент | Путь к файлу/директории | Описание |
|---|---|---|
| Данные OpenSearch | /home/<user>/opensearch-project/opensearch-data | Постоянное хранилище для индексов OpenSearch. |
| Конфигурация OpenSearch | /home/<user>/opensearch-project/docker-compose.yml | Определение Docker Compose для стека поиска. |
| Конфигурация прокси | /data/nginx/user_conf.d/opensearch<Server ID>.hostkey.in.conf | Конфигурация серверного блока Nginx. |
| Определение прокси | /root/nginx/compose.yml | Определение Docker Compose для стека прокси-сервера. |
| Сертификаты SSL | /etc/letsencrypt (монтированный том) | Хранилище сертификатов Let's Encrypt. |
Доступные порты для подключения¶
Следующие порты настроены для взаимодействия служб и внешнего доступа:
-
Порт 443: Внешний доступ по HTTPS к веб-интерфейсу OpenSearch Dashboards через обратный прокси-сервер Nginx.
-
Порт 5601: Внутренний интерфейс OpenSearch Dashboards (связан с
127.0.0.1прокси-сервером). -
Порт 9200: Внутренняя конечная точка REST API OpenSearch.
-
Порт 9600: Внутренняя конечная точка мониторинга OpenSearch.
Запуск, остановка и обновление¶
Управление службами осуществляется через команды Docker Compose, выполняемые из соответствующих директорий.
Службы OpenSearch
-
Запуск/Перезапуск: Выполнить
docker-compose up -dиз директории/home/<user>/opensearch-project. -
Остановка: Выполнить
docker-compose downиз директории/home/<user>/opensearch-project. -
Обновление: Изменить файл
docker-compose.ymlдля смены образов или конфигураций, затем запуститьdocker-compose up -d.
Службы прокси-сервера
-
Запуск/Перезапуск: Выполнить
docker compose up -dиз директории/root/nginx. -
Остановка: Выполнить
docker compose downиз директории/root/nginx.