Подключиться к кластеру OpenSearch
Чтобы подключиться к кластеру OpenSearch, подключитесь к нодам группы с ролью Manager, Data или Dashboard. Выбор ноды для подключения зависит от цели подключения — например, если необходим доступ к дашборду кластера, то подключаться нужно к ноде из группы с ролью Dashboard. Подробнее о группах нод и их ролях в инструкции Группы нод.
Вы можете:
- подключиться к нодам группы с ролью Manager и Data — через программный код с SSL;
- подключиться к ноде группы с ролью Dashboard — через веб-интерфейс OpenSearch Dashboards или OpenSearch API.
TLS(SSL)-шифрование поддерживается только при подключении по приватному IP-адресу.
При подключении укажите порт и адрес.
Порты для подключения
Для подключения к нодам кластера используйте порт 9200.
Адреса для подключения
Адрес для подключения зависит от того, откуда вы подключаетесь. Вы можете выбрать адрес в зависимости от одного из сценариев:

Подключение к кластеру из приватной подсети
Если вы подключаетесь к кластеру из приватной подсети, используйте приватный IP-адрес.
Чтобы подключиться из другой приватной подсети, сначала подключите обе приватные подсети к облачному роутеру.
Вы можете посмотреть адрес для подключения в панели управления.
Подключение к кластеру из интернета
Если вы подключаетесь к кластеру из интернета, используйте публичный IP-адрес. Приватная подсеть должна соответствовать требованиям. Если подсеть не соответствует требованиям, подготовьте ее для подключения публичного IP-адреса.
Вы можете посмотреть адрес для подключения в панели управления.
Посмотреть адрес для подключения
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
- Откройте вкладку Активные.
- Откройте страницу кластера баз данных → вкладка Подключение.
- В блоке Адреса для подключения откройте вкладку группы нод, адреса которой хотите посмотреть.
Подключиться к нодам группы с ролью Manager и Data
К нодам группы с ролью Manager и Data можно подключиться с SSL только по приватному IP-адресу. Подключение с использованием TLS(SSL)-шифрования обеспечивает безопасное соединение между вашим сервером и кластером баз данных.
Bash
Python
Go
Node.js
-
Скачайте корневой сертификат и поместите его в папку
~/.opensearch/:mkdir -p ~/.opensearch/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.opensearch/root.crt
chmod 0600 ~/.opensearch/root.crt -
Подключитесь к ноде:
curl -XGET -u 'admin:<password>' --cacert ~/.opensearch/root.crt 'https://<ip_address>:<port>/'Укажите:
<password>— пароль пользователя-администратора;<ip_address>— IP-адрес ноды;<port>— порт для подключения.
-
Скачайте корневой сертификат и поместите его в папку
~/.opensearch/:mkdir -p ~/.opensearch/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.opensearch/root.crt
chmod 0600 ~/.opensearch/root.crt -
Установите библиотеку opensearch-py:
pip3 install opensearch-py -
Подключитесь к ноде:
from opensearchpy import OpenSearch
hosts = ['<host_1>',
'<host_2>']
auth = ('admin', '<password>')
ca_certs_path = '~/.opensearch/root.crt'
client = OpenSearch(
hosts,
http_auth = auth,
use_ssl = True,
verify_certs = True,
ssl_assert_hostname = False,
ssl_show_warn = False,
ca_certs = ca_certs_path
)
print(client.info())Укажите:
<host_1>и<host_2>— IP-адреса нод;<password>— пароль пользователя -администратора.
-
Скачайте корневой сертификат и поместите его в папку
~/.opensearch/:mkdir -p ~/.opensearch/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.opensearch/root.crt
chmod 0600 ~/.opensearch/root.crt -
Используйте пример подключения:
package main
import (
"crypto/tls"
"crypto/x509"
"fmt"
"io/ioutil"
"github.com/opensearch-project/opensearch-go"
"net/http"
"os"
)
func main() {
caCert, err := ioutil.ReadFile("<path>")
if err != nil {
fmt.Println("failed to read CA certificate: %w", err)
os.Exit(1)
}
caCertPool := x509.NewCertPool()
if ok := caCertPool.AppendCertsFromPEM(caCert); !ok {
fmt.Println("failed to append CA certificate")
}
client, err := opensearch.NewClient(opensearch.Config{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{RootCAs: caCertPool},
},
Addresses: []string{
"https://<host_1>:<port>",
"https://<host_2>:<port>"
},
Username: "admin",
Password: "<password>",
})
if err != nil {
fmt.Println("cannot initialize", err)
os.Exit(1)
} else {
fmt.Println(client.Info())
}
}Укажите:
<path>— полный путь до корневого сертификата;<host_1>и<host_2>— IP-адреса нод;<port>— порт для подключения;<password>— пароль пользователя.
-
Скачайте корневой сертификат и поместите его в папку
~/.opensearch/:mkdir -p ~/.opensearch/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.opensearch/root.crt
chmod 0600 ~/.opensearch/root.crt -
Установите зависимости:
npm install @opensearch-project/opensearch -
Используйте пример подключения:
import { readFileSync } from 'fs';
import { Client } from '@opensearch-project/opensearch';
const hosts = [
"https://<host_1>:<port>",
"https://<host_2>:<port>"
];
const username = "admin";
const password = "<password>";
const caCertsPath = "<path>";
const client = new Client({
nodes: hosts,
ssl: {
ca: readFileSync(caCertsPath),
},
auth: {
username,
password
}
});
const getClusterInfo = async () => {
try {
const response = await client.cluster.health();
console.log('Cluster Info:', response.body);
} catch (error) {
console.error('Error fetching cluster info:', error);
}
};
getClusterInfo();Укажите:
<host_1>и<host_2>— IP-адреса нод;<port>— порт для подключения;<password>— пароль пользователя-администратора;<path>— полный путь до корневого сертификата.
Подключиться к ноде группы с ролью Dashboard
OpenSearch Dashboards
OpenSearch API
К ноде группы с ролью Dashboard можно подключиться через веб-интерфейс OpenSearch Dashboards.
-
Откройте в браузере страницу:
https://<ip_address>Укажите
<ip_address>— IP-адрес ноды группы с ролью Dashboard. -
Введите логин —
admin. -
Введите пароль — задается при создании кластера. После создания пароль нельзя посмотреть в панели управления, но можно изменить.
-
Чтобы проверить подключение, в консоли Dev Tools выполните тестовый запрос — например, посмотрите статус кластера:
GET _cluster/healthВ ответе появится информация о статусе кластера.
Подключитесь к ноде группы с ролью Dashboard и проверьте подключение, выполните тестовый запрос — например, посмотрите статус кластера:
curl -u 'admin:<password>' -X GET "https://<ip_address>/api/status"
Укажите:
<password>— задается при создании кластера. После создания пароль нельзя посмотреть в панели управления, но можно изменить;<ip_address>— IP-адрес ноды группы с ролью Dashboard.
В ответе появится информация о статусе кластера.