Проксирование
Для балансировки нагрузки и распределения доступа к базе данных ADQM можно использовать Chproxy — HTTP-прокси, который может обеспечить:
-
равномерное распределение запросов между всеми узлами кластера ADQM (предполагается, что все узлы в кластере равноценны);
-
проверку работоспособности узлов кластера и предотвращение отправки запросов на недоступные узлы;
-
ограничение доступа по HTTP списком разрешенных IP-адресов/IP-масок;
-
безопасную авторизацию пользователей — Chproxy может сопоставлять пользователей, отправляющих запросы, с пользователями кластера ADQM, не раскрывая реальные имена пользователей и пароли, используемые в ADQM.
Установка Chproxy
Chproxy входит в список сервисов ADQM версии Enterprise (начиная с версии 22.3.7.28.1.b1) и может быть установлен в кластер ADQM через интерфейс ADCM, как другие сервисы. Для этого необходимо:
Конфигурация Chproxy через ADCM
Конфигурационные параметры сервиса Chproxy могут быть настроены в соответствующем окне интерфейса ADCM. Статья Настройка сервисов содержит подробные инструкции как перейти к окну конфигурации сервиса.
Для сервиса Chproxy доступны следующие параметры:
-
Network configuration:
-
Enable HTTP — прослушивание HTTP-запросов (по умолчанию включено);
-
HTTP listen port — порт, на котором сервер слушает HTTP-запросы (по умолчанию
9090); -
HTTP allowed networks — список сетей, из которых разрешен доступ по HTTP (можно указать IP-адрес или маску подсети, по умолчанию добавлено значение
127.0.0.1); -
Enable HTTPS — прослушивание HTTPS-запросов (по умолчанию выключено);
-
HTTPS listen port — порт, на котором сервер слушает HTTPS-запросы (по умолчанию
8543); -
HTTPS allowed networks — список сетей, из которых разрешен доступ по HTTPS (можно указать IP-адрес или маску подсети, по умолчанию добавлено значение
127.0.0.1); -
Certificate file — путь к файлу серверного SSL-сертификата;
-
Private key file — путь к файлу закрытого ключа серверного SSL-сертификата.
-
-
Proxy users configuration:
-
Clickhouse Proxy Users — конфигурации пользователей, запросы которых будут проксироваться в ADQM. С помощью параметров в этой секции для каждого пользователя можно настроить ограничение доступа по списку IP-адресов или масок подсетей, запретить или разрешить подключения по HTTP и HTTPS, включить кеширование ответов, установить ограничение продолжительности и частоты запросов, а также количества одновременно выполняемых запросов.
Для сопоставления нескольких различных входящих пользователей с одним пользователем ADQM можно создать конфигурацию wildcarded-пользователя. Для этого необходимо включить опцию wildcarded_user, в качестве значения параметра user_name указать шаблон имени пользователя Chproxy вида<prefix>*или*<suffix>и в поле clickhouse_target_user указать пользователя ADQM. Например, еслиuser_name = dba_*иclickhouse_target_user = db_admin(при этомdb_admin— существующий пользователь ADQM), то любой пользователь с именем, соответствующим этому шаблону (например,dba_johnиdba_mary), будет авторизован в ADQM какdb_admin. -
Users/password map — пароли пользователей Clickhouse Proxy Users.
-
-
Connection pool configuration:
-
Max idle connections — максимальное количество неиспользуемых соединений в пуле;
-
Max idle connections per host — максимальное количество неиспользуемых соединений на хост.
-
-
ADQM cluster configuration:
-
Interval — интервал проверки всех узлов кластера на доступность (по умолчанию
5s); -
Timeout — время ожидания ответа от узлов кластера (по умолчанию
5s).
Эти параметры используются для проверки работоспособности узлов кластера. Запрос на проверку работоспособности отправляется компонентами сервиса Chproxy всем узлам кластера ADQM с периодичностью, которую определяет параметр Interval. Если на такой запрос не получен ответ от какого-то узла кластера в течение времени, заданного параметром Timeout, Chproxy прекратит отправку запросов на этот узел.
-