Перейти к содержанию

Обзор развертывания 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. Он определяет две основные службы:

  1. opensearch-node1: Настроен как одноузловой кластер с включенной блокировкой памяти и размером кучи Java, установленным в 512 МБ.

  2. 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.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×