5.4 KiB
toc_priority | toc_title |
---|---|
50 | Конфигурационные файлы |
Конфигурационные файлы
Основной конфигурационный файл сервера - config.xml
. Он расположен в директории /etc/clickhouse-server/
.
Отдельные настройки могут быть переопределены в файлах *.xml
и *.conf
из директории config.d
рядом с конфигом.
У элементов этих конфигурационных файлов могут быть указаны атрибуты replace
или remove
.
Если ни один не указан - объединить содержимое элементов рекурсивно с заменой значений совпадающих детей.
Если указано replace
- заменить весь элемент на указанный.
Если указано remove
- удалить элемент.
Также в конфиге могут быть указаны «подстановки». Если у элемента присутствует атрибут incl
, то в качестве значения будет использована соответствующая подстановка из файла. По умолчанию, путь к файлу с подстановками - /etc/metrika.xml
. Он может быть изменён в конфигурации сервера в элементе include_from. Значения подстановок указываются в элементах /yandex/имя_подстановки
этого файла. Если подстановка, заданная в incl
отсутствует, то в лог попадает соответствующая запись. Чтобы ClickHouse не писал в лог об отсутствии подстановки, необходимо указать атрибут optional="true"
(например, настройка macros).
Подстановки могут также выполняться из ZooKeeper. Для этого укажите у элемента атрибут from_zk = "/path/to/node"
. Значение элемента заменится на содержимое узла /path/to/node
в ZooKeeper. В ZooKeeper-узел также можно положить целое XML-поддерево, оно будет целиком вставлено в исходный элемент.
В элементе users_config
файла config.xml
можно указать относительный путь к конфигурационному файлу с настройками пользователей, профилей и квот. Значение users_config
по умолчанию — users.xml
. Если users_config
не указан, то настройки пользователей, профилей и квот можно задать непосредственно в config.xml
.
Настройки пользователя могут быть разделены в несколько отдельных файлов аналогичных config.xml
и config.d\
. Имя директории задаётся также как users_config
.
Имя директории задаётся так же, как имя файла в users_config
, с подстановкой .d
вместо .xml
.
Директория users.d
используется по умолчанию, также как users.xml
используется для users_config
.
Например, можно иметь по отдельному конфигурационному файлу для каждого пользователя:
$ cat /etc/clickhouse-server/users.d/alice.xml
<yandex>
<users>
<alice>
<profile>analytics</profile>
<networks>
<ip>::/0</ip>
</networks>
<password_sha256_hex>...</password_sha256_hex>
<quota>analytics</quota>
</alice>
</users>
</yandex>
Для каждого конфигурационного файла, сервер при запуске генерирует также файлы file-preprocessed.xml
. Эти файлы содержат все выполненные подстановки и переопределения, и предназначены для информационных целей. Если в конфигурационных файлах были использованы ZooKeeper-подстановки, но при старте сервера ZooKeeper недоступен, то сервер загрузит конфигурацию из preprocessed-файла.
Сервер следит за изменениями конфигурационных файлов, а также файлов и ZooKeeper-узлов, которые были использованы при выполнении подстановок и переопределений, и перезагружает настройки пользователей и кластеров на лету. То есть, можно изменять кластера, пользователей и их настройки без перезапуска сервера.