Top.Mail.Ru
Установка и удаление БД ClickHouse
8 800 555-89-02
Документация
CTRL+K
Standalone2402
SaaS

Установка и удаление БД ClickHouse

В этой статье

Для установки аналитической СУБД «ClickHouse» необходим сервер под управлением ОС семейства Linux с возможностью установки ПО «Docker» версии 17.06 или выше. Также у сервера (-ов) под управлением Linux, где будет установлена СУБД ClickHouse, должна быть версия ядра:

  • 3.15 и выше при использовании файловой системы EXT4
  • 4.0 и выше при использовании файловой системы XFS

Если версия ядра ОС не соответствует указанным требованиям, многие функции системы могут быть недоступны или работать не стабильно.

Системные требования к серверу зависят от:

  • количества сотрудников, по которым проводится мониторинг
  • сложности аналитических отчетов
  • объема дополнительно загружаемых данных для аналитики

С рекомендациями по системным требованиям вы можете ознакомиться в разделе Технические требования к серверному и аппаратному оборудованию.

Подготовка сертификата и закрытого ключа для сервера с СУБД «ClickHouse»

Для того, чтобы передача данных между приложением и СУБД «ClickHouse» происходила по защищенному протоколу HTTPS, подготовьте SSL-сертификат и закрытый ключ для сервера, где будет установлена СУБД. Файл сертификата должен быть с расширением «.cer». Ключ – файл с расширением «.key».

Для получения сертификата обратитесь к администраторам инфраструктуры открытых ключей (PKI) в вашей организации.

Возможно также использование самоподписанного сертификата. Ниже приведен пример команды для его генерации при помощи OpenSSL в ОС семейства Linux:

# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout key.key -out cert.crt
-subj "/C=RU/ST=./L=./O=./OU=./CN=server-name.domain.com/emailAddress=." \
-addext "subjectAltName = IP:1.1.1.1,DNS:server-name.domain.com"

Запуск Docker службы c СУБД «ClickHouse»

Дистрибутив СУБД «ClickHouse» предоставляется в виде образа контейнера для системы контейнерной виртуализации Docker. Для установки контейнера с СУБД на сервере под управлением OC семейства Linux выполните следующие действия:

  1. Установите на сервер ПО «Docker».
  2. Загрузите переданный архив с образом контейнера на сервер.
  3. Распакуйте архив и выполните загрузку образа в локальное хранилище Docker:
    # gunzip infomaximum-clickhouse-23.3.2.37.tar.gz
    
    # docker load < infomaximum-clickhouse-23.3.2.37.tar.gz
    
  4. Выполните команду для запуска Docker Swarm (необходим для использования секретов):
    # docker swarm init --advertise-addr 127.0.0.1:2377 --listen-addr 127.0.0.1:2377
    
  5. Создайте секреты Docker, которые предназначены для защищенного хранения чувствительных данных:
    • создайте секреты с данными пользователя (логин и пароль) администратора СУБД «ClickHouse»:
      # echo -n "infomaximum_user" | docker secret create infomaximum_app_user
      
      # echo -n "b5w4GDSg36" | sha256sum | awk '{print $1}' | docker secret create infomaximum_app_user_password_hash -
      
    • создайте секреты с данными (логин и пароль) рядового пользователя СУБД «ClickHouse» (с правами только на чтение):
      # echo -n "infomaximum_read_user" | docker secret create infomaximum_external_user
      
      # echo -n "m26dhdhFdgj" | sha256sum | awk '{print $1}' | docker secret create infomaximum_external_user_password_hash -
      
    • создайте секреты с SSL-сертификатом и ключом:
      # docker secret create infomaximum_clickhouse.crt cert.crt
      
      # docker secret create infomaximum_clickhouse.key key.key
      
      # openssl dhparam 4096 - | docker secret create infomaximum_clickhouse_dhparam.pem -
      
  6. Создайте тома (volume) Docker. Они служат для постоянного хранения данных работы контейнера:
    # docker volume create infomaximum-clickhouse
    
    # docker volume create infomaximum-clickhouse-log
    
  7. Создайте службу (service) командой Docker:
    # docker service create
    --secret infomaximum_app_user \
    --secret infomaximum_app_user_password_hash \
    --secret infomaximum_external_user \
    --secret infomaximum_external_user_password_hash \
    --secret infomaximum_clickhouse_dhparam.pem \
    --secret infomaximum_clickhouse.crt \
    --secret infomaximum_clickhouse.key \
    --publish published=8123,target=8123,mode=host \
    --mount type=volume,src=infomaximum-clickhouse,target=/var/lib/clickhouse/ \
    --mount type=volume,src=infomaximum-clickhouse-log,target=/var/log/clickhouse-server \
    --restart-max-attempts 5 \
    --restart-condition "on-failure" \
    infomaximum/infomaximum-clickhouse:23.3.2.37
    

Если служба удачно запущена, результатом выполнения команды должно быть сообщение: “verify: Service converged”.

С этого момента служба с контейнером должна начать работать. Чтобы убедиться, что СУБД работает нормально, перейдите в браузере на страницу https://<адрес сервера>:8123/ping или используйте команду:

# curl https://<адрес сервера>:8123/ping

Если всё настроено верно, в браузере появится сообщение: «ОК».

Если сообщение не появляется:

  • проверьте, что контейнер работает, выполнив команду:
    # docker ps
    
  • обратитесь к логам приложения, выполнив команду:
    # docker service logs -f infomaximum-clickhouse
    
  • убедитесь, что открыты сетевые проходы до сервера

Проверьте, не была ли допущена ошибка в шагах запуска, и попробуйте повторить создание службы.

Для удаления нерабочей службы используйте команду:

# docker service rm infomaximum-clickhouse

Переменные окружения

При запуске контейнера можно передавать переменные окружения, которые модифицируют конфигурационные файлы приложения. Доступные параметры представлены в таблице.

ПараметрЗначениеОписание
APP_USER_ACCESS_MANAGEMENT0 или 1
По умолчанию — 0
Запрещает/разрешает от имени администратора СУБД ClickHouse создавать дополнительных пользователей и регламентировать права доступа через SQL-запросы
LIMIT_MEMORYПо умолчанию — 0.9 (90%)Коэффициент максимального потребления оперативной памяти сервером для обработки всех SQL-запросов
PROMETHEUStrue или false
По умолчанию — false
Включает передачу метрик для Prometheus

Для корректной работы необходимо открыть порт 9363 в контейнере. Для этого в команду запуска службы добавьте:
--publish published=9363,target=9363

Подробнее о Prometheus в документации ClickHouse.

Удаление СУБД ClickHouse

Для удаления СУБД ClickHouse выполните следующие команды на сервере, где она установлена:

# docker service rm infomaximum-clickhouse
# docker secret rm infomaximum_app_user infomaximum_app_user_password_hash infomaximum_clickhouse.crt infomaximum_clickhouse.key  infomaximum_clickhouse_dhparam.pem infomaximum_external_user infomaximum_external_user_password_hash
# docker volume rm infomaximum-clickhouse infomaximum-clickhouse-log
# docker swarm leave –force

Найти команды для удаления Docker для конкретного дистрибутива Linux можно в официальной документации.

Была ли статья полезна?

Да
Нет
Предыдущая
Различия системы Proceset на операционных системах Linux и Windows
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com
Для бизнеса
© 20102024. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.