Доступ к кластеру ClickHouse
Важно
Перед подключением убедитесь, что в группе безопасности кластера есть правило, разрешающее входящий трафик по порту:
- 9000 — для подключения к кластеру без TLS по протоколу TCP;
- 9440 — для подключения к кластеру по TLS по протоколу TCP;
- 8443 — для подключения к кластеру по протоколу HTTPS (через API-интерфейс);
- 8123 — для подключения к кластеру по протоколу HTTP (через API-интерфейс).
Если в группе безопасности кластера нет такого правила, добавьте его.
Если при создании кластера был активирован переключатель Разрешить только TLS подключения, порты 9000 и 8123, которые используются для подключения без TLS, будут недоступны.
Подключиться к ноде ClickHouse можно через:
- clickhouse-client (клиента командной строки ClickHouse) по протоколу TCP. Подробнее о клиенте командной строки см. в документации ClickHouse;
- API-интерфейс по протоколу HTTP/HTTPS.
Подключение без TLS
Подключение без TLS возможно, если при создании кластера не был активирован переключатель Разрешить только TLS подключения.
Подключение по протоколу TCP
Чтобы подключиться к кластеру ClickHouse, в командной строке введите:
где:
- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
- на вкладке Ноды в конфигурации Cluster;
- на вкладке Информация в конфигурации Standalone;
- <database> — имя базы данных, к которой нужно подключиться;
- <username> — логин пользователя, созданного на вкладке Пользователи;
- <password> — пароль пользователя.
Подключение по протоколу HTTP (через API-интерфейс)
Чтобы подключиться к кластеру ClickHouse через API-интерфейс, выполните запрос:
где:
- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
- на вкладке Ноды в конфигурации Cluster;
- на вкладке Информация в конфигурации Standalone;
- <database> — имя базы данных, к которой нужно подключиться;
- <username> — логин пользователя, созданного на вкладке Пользователи;
- <password> — пароль пользователя.
Подключение по TLS
Подключение по протоколу TCP
Чтобы подключиться к кластеру ClickHouse по TLS, в командной строке введите:
где:
- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
- на вкладке Ноды в конфигурации Cluster;
- на вкладке Информация в конфигурации Standalone;
- <database> — имя базы данных, к которой нужно подключиться;
- <username> — логин пользователя, созданного на вкладке Пользователи;
- <password> — пароль пользователя.
Подключение по протоколу HTTPS (через API-интерфейс)
Чтобы подключиться к кластеру ClickHouse по протоколу HTTPS:
- Получите сертификат сервера, выполнив команду:
В выводе найдите блок с сертификатом (между -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----). Скопируйте его в отдельный файл, например clickhouse.crt.
Выполните запрос с использованием сертификата, например:
где:- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
- на вкладке Ноды в конфигурации Cluster;
- на вкладке Информация в конфигурации Standalone;
- <database> — имя базы данных, к которой нужно подключиться;
- <username> — логин пользователя, созданного на вкладке Пользователи;
- <password> — пароль пользователя.
- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
Решение проблем с проверкой TLS-сертификата
При подключении к кластеру ClickHouse по протоколу TCP или HTTPS может возникать ошибка проверки TLS-сертификата.
Пример ошибки:
Способ 1. Настройка корневого сертификата (рекомендуемый)
Для безопасного подключения настройте клиент на использование правильного корневого сертификата:
Получите сертификат сервера, выполнив команду:
где:- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
- на вкладке Ноды в конфигурации Cluster;
- на вкладке Информация в конфигурации Standalone;
- <port> — порт подключения:
- 9440 — по протоколу TCP;
- 8443 — по протоколу HTTPS.
- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
В выводе найдите блок с сертификатом (между -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----). Скопируйте его в отдельный файл, например clickhouse.crt.
- Создайте конфигурационный файл для clickhouse-client, например, clickhouse-client.yaml:
- Подключитесь с использованием конфигурационного файла:
где:
<host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
на вкладке Ноды в конфигурации Cluster;
на вкладке Информация в конфигурации Standalone;
<port> — порт подключения:
9440 — по протоколу TCP;
8443 — по протоколу HTTPS;
<database> — имя базы данных, к которой нужно подключиться;
<username> — логин пользователя, созданного на вкладке Пользователи;
<password> — пароль пользователя.
Способ 2. Игнорирование ошибки сертификата
При подключении по протоколу TCP
Для быстрого подключения в тестовых целях можно использовать --accept-invalid-certificate для игнорирования ошибки сертификата:
где:
- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
- на вкладке Ноды в конфигурации Cluster;
- на вкладке Информация в конфигурации Standalone;
- <database> — имя базы данных, к которой нужно подключиться;
- <username> — логин пользователя, созданного на вкладке Пользователи;
- <password> — пароль пользователя.
При подключении по протоколу HTTPS
Для быстрого подключения в тестовых целях можно использовать --insecure или -k для игнорирования ошибки сертификата:
где:
- <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
- на вкладке Ноды в конфигурации Cluster;
- на вкладке Информация в конфигурации Standalone;
- <database> — имя базы данных, к которой нужно подключиться;
- <username> — логин пользователя, созданного на вкладке Пользователи;
- <password> — пароль пользователя.
