Подключиться к кластеру OpenSearch
Чтобы подключиться к кластеру OpenSearch, подключитесь к нодам группы с ролью Manager, Data или Dashboard. Выбор ноды для подключения зависит от цели подключения — например, если необходим доступ к дашборду кластера, то подключаться нужно к ноде из группы с ролью Dashboard. Подробнее о группах нод и их ролях в инструкции Группы нод.
К нодам можно подключиться по IP-адресу: приватному или публичному. Если вам нужно настроить доступ к ноде из интернета, подключите публичный IP-адрес.
Порты
Для подключения к нодам кластера используйте порт 9200.
Способы подключения
Способ подключения к нодам кластера облачных баз данных OpenSearch зависит от роли группы нод — подробнее о ролях в инструкции Группы нод. Вы можете:
- подключиться к нодам группы с ролью Manager и Data — из программного кода с SSL;
- подключиться к ноде группы с ролью Dashboard — через веб-интерфейс OpenSearch Dashboards или OpenSearch API.
Посмотреть адрес для подключения
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
- Откройте вкладку Активные.
- Откройте страницу кластера баз данных → вкладка Подключение.
- В блоке Адреса для подключения откройте вкладку группы нод, адреса которой хотите посмотреть.
Подключиться к нодам группы с ролью Manager и Data
К нодам группы с ролью Manager и Data можно подключиться из программного кода с SSL. Подключение с использованием 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>:9200/"
Укажите:
<password>
— пароль пользователя-администратора;<ip_address>
— IP-адрес ноды.
-
Скачайте корневой сертификат и поместите его в папку
~/.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>:9200",
"https://<host_2>:9200"
},
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-адреса нод;<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>:9200",
"https://<host_2>:9200"
];
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-адреса нод;<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.
В ответе появится информация о статусе кластера.