Доступ к кластеру 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:

  1. Получите сертификат сервера, выполнив команду:
  2. В выводе найдите блок с сертификатом (между -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----). Скопируйте его в отдельный файл, например clickhouse.crt.

  3. Выполните запрос с использованием сертификата, например:

    где:
    • <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
      • на вкладке Ноды в конфигурации Cluster;
      • на вкладке Информация в конфигурации Standalone;
    • <database> имя базы данных, к которой нужно подключиться;
    • <username>  логин пользователя, созданного на вкладке Пользователи;
    • <password>  пароль пользователя.

Решение проблем с проверкой TLS-сертификата

При подключении к кластеру ClickHouse по протоколу TCP или HTTPS может возникать ошибка проверки TLS-сертификата.

Пример ошибки:

Способ 1. Настройка корневого сертификата (рекомендуемый)

Для безопасного подключения настройте клиент на использование правильного корневого сертификата:

  1. Получите сертификат сервера, выполнив команду:

    где:
    • <host> — IP-адрес ноды, к которой нужно подключиться. Если нужно подключиться к ноде из внутренней сети, используйте внутренний IP-адрес ноды. Если нужно подключиться к ноде через Интернет, используйте публичный IP-адрес ноды. IP-адреса ноды отображаются:
      • на вкладке Ноды в конфигурации Cluster;
      • на вкладке Информация в конфигурации Standalone;
    • <port> — порт подключения:
      • 9440 — по протоколу TCP;
      • 8443 — по протоколу HTTPS. 
  2. В выводе найдите блок с сертификатом (между -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----). Скопируйте его в отдельный файл, например clickhouse.crt.

  3. Создайте конфигурационный файл для clickhouse-client, например, clickhouse-client.yaml:
  4. Подключитесь с использованием конфигурационного файла:

    где:

    • <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>  пароль пользователя.