Подключение к кластеру OpenSearch из приложений
В этом разделе представлены настройки для подключения к хостам кластера Managed Service for OpenSearch с помощью инструментов командной строки, OpenSearch Dashboards и из Docker-контейнера. О подключении из кода вашего приложения см. Примеры кода.
Инструменты командной строки
Примеры кода с заполненным FQDN хоста доступны в консоли управления
Linux (Bash)
curl \
--user admin:<пароль> \
--cacert ~/.opensearch/root.crt \
--request GET 'https://<FQDN_хоста_OpenSearch_с_ролью_DATA>:9200/'
О том, как получить FQDN хоста, см. инструкцию.
Windows (PowerShell)
curl `
-Certificate <абсолютный_путь_к_файлу_сертификата> `
-Uri https://<FQDN_хоста_OpenSearch_с_ролью_DATA>:9200 `
-Credential admin
О том, как получить FQDN хоста, см. инструкцию.
Подключение к OpenSearch Dashboards
Вы можете подключиться к OpenSearch Dashboards:
- Через интернет, если для хоста с ролью
DASHBOARDSвключен публичный доступ. - Через виртуальную машину в Yandex Cloud, если публичный доступ не включен ни для какого из хостов с ролью
DASHBOARDS.
-
Установите SSL-сертификат в хранилище доверенных корневых сертификатов браузера (инструкция
для Mozilla Firefox). -
На странице кластера в консоли управления нажмите кнопку OpenSearch Dashboards или перейдите в браузере по адресу
https://c-<идентификатор_кластера>.rw.mdb.yandexcloud.net.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Введите имя пользователя
adminи пароль, который был задан при создании кластера.
-
Создайте виртуальную машину на основе Linux в той же виртуальной сети, что и кластер.
-
Подключитесь к виртуальной машине по SSH.
-
Установите зависимости:
sudo apt update && \ sudo apt install --yes nginx ssl-cert -
Скопируйте загруженный SSL-сертификат в директорию
/etc/nginx/:sudo cp ~/.opensearch/root.crt /etc/nginx/root.crt -
Измените файл конфигурации по умолчанию для NGINX, например, так:
/etc/nginx/sites-available/defaultupstream os-dashboards-nodes { server <FQDN_хоста_1_с_ролью_DASHBOARDS>:443; ... server <FQDN_хоста_N_с_ролью_DASHBOARDS>:443; } server { listen 443 ssl; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; server_name _; location / { proxy_pass https://os-dashboards-nodes; proxy_ssl_trusted_certificate /etc/nginx/root.crt; proxy_ssl_session_reuse on; } }Важно
В этом примере конфигурационного файла используется самоподписанный сертификат
snakeoilиз пакетаssl-cert. Использовать этот сертификат в реальном кластере небезопасно. Вместо самоподписанного сертификата укажите путь к вашим публичным и приватным ключам SSL-сертификата в директивахssl_certificateиssl_certificate_key. -
Перезапустите NGINX:
sudo systemctl restart nginx -
Добавьте сертификат, указанный в директиве
ssl_certificate, в хранилище доверенных корневых сертификатов браузера (инструкция для Mozilla Firefox). -
Перейдите в браузере по адресу
https://<публичный_IP-адрес_ВМ>. -
Введите имя пользователя
adminи пароль.
Примечание
При использовании API OpenSearch Dashboards:
- Для отправки запросов используйте порт
443вместо штатного5601. - Добавьте путь к SSL-сертификату в конфигурацию вашего приложения для работы с API.
Подготовка к подключению из Docker-контейнера
Чтобы подключаться к кластеру Managed Service for OpenSearch из Docker-контейнера, добавьте в Dockerfile строки:
RUN apt-get update && \
apt-get install curl --yes
RUN apt-get update && \
apt-get install wget curl --yes && \
mkdir --parents ~/.opensearch && \
wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \
--output-document ~/.opensearch/root.crt && \
chmod 0600 ~/.opensearch/root.crt