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

Обзор развертывания OpenSearch на сервере

Предпосылки и предварительные требования

Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. На сервере должны быть установлены следующие компоненты: - Docker Engine - Docker Compose

Приложение требует прав доступа пользователя для создания директорий проекта и запуска контейнеров. Для работы веб-интерфейса и прокси-сервера должны быть открыты соответствующие порты в брандмауэре.

Структура файлов и каталогов

Конфигурация и данные приложения распределены по следующим каталогам: - /home/{{ ansible_user }}/opensearch-project — основной каталог проекта OpenSearch, содержащий файл конфигурации Docker Compose. - ./opensearch-data — директория внутри проекта, используемая для хранения данных базы данных OpenSearch. - /root/nginx — каталог для конфигурации прокси-сервера Nginx и Certbot. - /data/nginx/user_conf.d — директория для пользовательских конфигурационных файлов Nginx. - /data/nginx/nginx-certbot.env — файл переменных окружения для настройки Certbot.

Процесс установки приложения

Установка выполняется путем развертывания контейнеров через Docker Compose. Процесс включает два этапа: запуск базы данных и веб-интерфейса, а затем настройку прокси-сервера.

Развертывание OpenSearch и OpenSearch Dashboards

  1. Создается каталог проекта /home/{{ ansible_user }}/opensearch-project.
  2. В этом каталоге размещается файл docker-compose.yml с конфигурацией сервисов.
  3. Запускаются контейнеры с помощью команды docker-compose up -d.

Используемые версии образов: - opensearchproject/opensearch:2.17.0 - opensearchproject/opensearch-dashboards:2.17.0

Настройка прокси-сервера

  1. Создается каталог /root/nginx.
  2. Генерируется файл compose.yml в директории /root/nginx.
  3. Обновляется конфигурационный файл Nginx в пути /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf для добавления правила проксирования.
  4. Запускается контейнер прокси-сервера с помощью команды docker compose up -d в директории /root/nginx.

Контейнеры Docker и их запуск

Приложение состоит из трех основных контейнеров, управляемых через Docker Compose.

Контейнер OpenSearch Node

  • Имя контейнера: 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)
  • Ограничения памяти:
  • memlock: soft и hard установлены в -1
  • Монтирование томов:
  • ./opensearch-data:/usr/share/opensearch/data
  • Открытые порты:
  • 9200:9200
  • 9600:9600
  • Сеть: opensearch-net

Контейнер OpenSearch Dashboards

  • Имя контейнера: opensearch-dashboards
  • Образ: opensearchproject/opensearch-dashboards:2.17.0
  • Параметры окружения:
  • OPENSEARCH_HOSTS: ["https://opensearch-node1:9200"]
  • Открытые порты:
  • 5601:5601
  • Сеть: opensearch-net

Контейнер Nginx с Certbot

  • Образ: jonasal/nginx-certbot:latest
  • Политика перезапуска: unless-stopped
  • Параметры окружения:
  • CERTBOT_EMAIL=hkadm@hostkey.com
  • Файл переменных окружения: /data/nginx/nginx-certbot.env
  • Режим сети: host
  • Монтирование томов:
  • nginx_secrets:/etc/letsencrypt
  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d

Базы данных

База данных OpenSearch работает в режиме одиночного узла (single-node). Данные хранятся в томе, смонтированном в директорию ./opensearch-data внутри каталога проекта. Подключение к базе данных осуществляется по адресу https://opensearch-node1:9200 изнутри сети Docker.

Прокси серверы

Для обработки входящего трафика и управления SSL-сертификатами используется контейнер Nginx с Certbot.

  • Домен и сертификаты: Сертификаты хранятся в томе nginx_secrets, смонтированном в /etc/letsencrypt.
  • Конфигурация: Пользовательские конфигурационные файлы размещаются в /data/nginx/user_conf.d.
  • Маршрутизация: В конфигурационный файл добавляется правило proxy_pass http://127.0.0.1:5601; для перенаправления трафика на OpenSearch Dashboards.
  • Запуск: Контейнер запускается в режиме host для прямого доступа к портам.

Права доступа и безопасность

  • Каталог проекта OpenSearch принадлежит пользователю, от имени которого выполняется развертывание.
  • Файл docker-compose.yml имеет права доступа 0666.
  • Каталог /root/nginx и файл compose.yml внутри него принадлежат пользователю root с правами 0755 и 0644 соответственно.
  • Для работы OpenSearch включена блокировка памяти (bootstrap.memory_lock=true), что требует соответствующих прав пользователя или настройки ulimits.

Запуск, остановка и обновление

Управление сервисами осуществляется через команды Docker Compose в соответствующих директориях.

Запуск OpenSearch и Dashboards

Выполните команду в директории проекта:

cd /home/{{ ansible_user }}/opensearch-project
docker-compose up -d

Запуск прокси-сервера

Выполните команду в директории конфигурации Nginx:

cd /root/nginx
docker compose up -d

Обновление конфигурации

Для применения изменений в конфигурации Nginx необходимо перезапустить контейнер прокси-сервера после обновления файла compose.yml или конфигурационных файлов в /data/nginx/user_conf.d.

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