Установка и удаление БД ClickHouse
Для установки аналитической СУБД «ClickHouse» необходим сервер под управлением ОС семейства Linux с возможностью установки ПО «Docker» версии 17.06 или выше. Системные требования к серверу зависят от:
- количества сотрудников, по которым проводится мониторинг;
- сложности аналитических отчетов;
- объема дополнительно загружаемых данных для аналитики.
С рекомендациями по системным требованиям вы можете ознакомиться в разделе Технические требования к серверному и аппаратному оборудованию.
Подготовка сертификата и закрытого ключа для сервера с СУБД «ClickHouse»
Для того, чтобы передача данных между приложением и СУБД «ClickHouse» происходила по защищенному протоколу HTTPS, подготовьте SSL-сертификат и закрытый ключ для сервера, где будет установлена СУБД. Файл сертификата должен быть с расширением «.cer». Ключ – файл с расширением «.key».
Для получения сертификата обратитесь к администраторам инфраструктуры открытых ключей (PKI) в вашей организации.
Возможно также использование самоподписанного сертификата. Ниже приведен пример команды для его генерации при помощи OpenSSL в ОС семейства Linux:
openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout key.key -out cert.crt
Запуск Docker службы c СУБД «ClickHouse»
Дистрибутив СУБД «ClickHouse» предоставляется в виде образа контейнера для системы контейнерной виртуализации Docker. Для установки контейнера с СУБД на сервере под управлением OC семейства Linux выполните следующие действия:
- Установите на сервер ПО «Docker»: https://docs.docker.com/engine/install/;
- Загрузите переданный архив с образом контейнера на сервер;
- Распакуйте архив и выполните загрузку образа в локальное хранилище Docker:
- gunzip infomaximum-clickhouse-20.4.5.36p4.tar.gz
- docker load < infomaximum-clickhouse-20.4.5.36p4.tar.gz
- Выполните команду для запуска Docker Swarm (необходим для использования секретов):
docker swarm init --advertise-addr 127.0.0.1:2377 --listen-addr 127.0.0.1:2377
- Создайте секреты 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 -
- создайте секреты с данными пользователя администратора СУБД «ClickHouse»:
- Создайте тома (volume) Docker. Они служат для постоянного хранения данных работы контейнера:
docker volume create infomaximum-clickhouse
docker volume create infomaximum-clickhouse-log
- Создайте службу (service) командой Docker:
docker service create --name infomaximum-clickhouse \ --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" \ --no-resolve-image \ infomaximum/infomaximum-clickhouse:20.4.5.36p4
Если служба удачно запущена, результатом выполнения команды должно быть сообщение: “verify: Service converged”.
С этого момента служба с контейнером должна начать работать. Чтобы убедиться, что СУБД работает нормально, перейдите в браузере на страницу «адрес сервера:8123/». Если всё настроено верно, в браузере появится сообщение: «ОК».
Если служба не была запущена, выполните её удаление командой:
docker service rm infomaximum-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 можно в официальной документации: https://docs.docker.com/engine/install/.