Эти настройки относятся к серверу ClickHouse и автоматически сгенерированы на основе исходного кода ClickHouse.
interserver_http_credentials
Имя пользователя и пароль, используемые для подключения к другим серверам во время репликации. Кроме того, сервер аутентифицирует другие реплики по этим учетным данным.
Поэтому значения interserver_http_credentials должны совпадать у всех реплик в кластере.
Следующие настройки можно задать с помощью под-тегов:
user— Имя пользователя.password— Пароль.allow_empty— Еслиtrue, другим репликам разрешено подключаться без аутентификации, даже если учетные данные заданы. Еслиfalse, подключения без аутентификации отклоняются. Значение по умолчанию:false.old— Содержит прежниеuserиpassword, используемые при ротации учетных данных. Можно указать несколько разделовold.
Ротация учетных данных
ClickHouse поддерживает динамическую ротацию межсерверных учетных данных без необходимости одновременно останавливать все реплики для обновления их конфигурации. Учетные данные можно менять в несколько этапов.
Чтобы включить аутентификацию, установите interserver_http_credentials.allow_empty в значение true и добавьте учетные данные. Это разрешит подключения как с аутентификацией, так и без нее.
<interserver_http_credentials>
<user>admin</user>
<password>111</password>
<allow_empty>true</allow_empty>
</interserver_http_credentials>После настройки всех реплик установите для allow_empty значение false или удалите этот параметр. Это сделает аутентификацию с новыми учетными данными обязательной.
Чтобы изменить существующие учетные данные, переместите имя пользователя и пароль в раздел interserver_http_credentials.old и обновите user и password, указав новые значения. На этом этапе сервер использует новые учетные данные для подключения к другим репликам и принимает подключения как с новыми, так и со старыми учетными данными.
<interserver_http_credentials>
<user>admin</user>
<password>222</password>
<old>
<user>admin</user>
<password>111</password>
</old>
<old>
<user>temp</user>
<password>000</password>
</old>
</interserver_http_credentials>После применения новых учётных данных на всех репликах старые можно удалить.
interserver_http_host
Имя хоста, которое другие серверы могут использовать для доступа к этому серверу.
Если параметр не указан, оно определяется так же, как командой <hostname -f>.
Полезно, если нужно отвязаться от конкретного сетевого интерфейса.
Пример
<interserver_http_host>example.clickhouse.com</interserver_http_host>interserver_http_port
Порт для обмена данными между серверами ClickHouse.
Пример
<interserver_http_port>9009</interserver_http_port>