Еще одна краткая опорная инструкция — установка Apache Superset. Вариант с развертыванием через Docker и Docker Compose.
Используемые версии ПО
Версия Linux — Rocky Linux release 9.7 (Blue Onyx).
Аппаратные характеристики сервера
Для установки рекомендуется сервер с объемом оперативной памяти 8 ГБ. На сервере с 4 ГБ оперативной памяти сборка контейнеров не завершалаусь успешно.
Аппаратные характеристики тестового сервера:
| Параметр | Значение |
| Количество vCPU | 4 |
| Объем оперативной памяти, ГБ | 8 |
| Объем системного диска, ГБ | 40 |
| Тип системного диска | SSD |
Предварительная настройка сервера
Сначала установим необходимые предварительные компоненты — Docker и утилиты (git. mc, nano).
Установка Docker
Первым шагом установим Docker:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
Проверяем статус службы:
sudo systemctl status docker

Установка утилит
Выполнил установку необходимых утилит:
sudo dnf install -y nano mc git
Отключение SELinux
Отключаем SELinux:
nano /etc/selinux/config
Меняет значение параметра SELINUX на «disabled»:
SELINUX=disabled

Сохраняем изменения и перезагружаем сервер.
Установка Apache Superset
Переходим к установке Apache Superset:
1. Я буду хранить все файлы в директории /opt.
cd /opt
2. Клонируем репозиторий:
git clone https://github.com/apache/superset
cd superset
3. Запускаем контейнеры:
docker compose -f docker-compose-non-dev.yml build
docker compose -f docker-compose-non-dev.yml up -d
4. Проверяем статус контейнеров. Все контейнеры должны быть запущены:
docker compose -f docker-compose-non-dev.yml ps
[root@CHGA superset]# docker compose -f docker-compose-non-dev.yml ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
superset_app superset-superset "/app/docker/docker-…" superset 13 minutes ago Up About a minute (healthy) 0.0.0.0:8088->8088/tcp, [::]:8088->8088/tcp
superset_cache redis:7 "docker-entrypoint.s…" redis 13 minutes ago Up 13 minutes 6379/tcp
superset_db postgres:17 "docker-entrypoint.s…" db 13 minutes ago Up 13 minutes 5432/tcp
superset_worker superset-superset-worker "/app/docker/docker-…" superset-worker 13 minutes ago Up About a minute (healthy) 8088/tcp
superset_worker_beat superset-superset-worker-beat "/app/docker/docker-…" superset-worker-beat 13 minutes ago Up About a minute 8088/tcp
[root@CHGA superset]#

Веб интерфейс Superset будет доступен по HTTP с IP-адреса сервера:
http://192.168.56.161:8088

login: admin
password: admin
Настройка HTTPS для Apache Superset
Для настройки HTTPS глобально нужно выполнить две веши:
- Настроить прослушивание контейнера с Superset только на локальном адресе (127.0.0.1), чтобы исключить любые обращени к нему по незащищенному соединению.
- Настроить веб сервер (например, nginx) и создать публикацию ресурса.
Приступим:
1. Первым шагом установим nginx.
sudo dnf install -y nginx
2. Настроим автоматически запуск nginx:
sudo systemctl enable --now nginx
3. Проверяем статус службы:
sudo systemctl status nginx
4. Скорректируем файл для Docker Compose, чтобы настроить прослушивание только на адресе локального хоста:
cd /opt/superset
nano docker-compose-non-dev.yml
5. Для сервиса superset необходимо указать следующие параметры публикации портов:
ports:
- 127.0.0.1:8088:8088

6. Сохраняем изменения и перезапускаем контейнеры:
cd /opt/superset
docker compose -f docker-compose-non-dev.yml down
docker compose -f docker-compose-non-dev.yml up -d
7. Проверяем, что конейнер Superset прослушивает только локальные подключения:
ss -tulpn | grep 8088
[root@CHGA superset]# ss -tulpn | grep 8088
tcp LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:* users:(("docker-proxy",pid=12932,fd=8))
[root@CHGA superset]#

8. Создаем правило публикации на nginx:
nano /etc/nginx/superset.conf
9. Конфигурация публикации:
server {
listen 80;
server_name superset.itproblog.ru;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
return 301 https://superset.itproblog.ru$request_uri;
}
server {
listen 443 ssl;
server_name superset.itproblog.ru;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
ssl_certificate /etc/nginx/ssl/itproblog.crt;
ssl_certificate_key /etc/nginx/ssl/itproblog.key;
location / {
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8088/;
}
}
9. Проверяем конфигурацию:
nginx -t
[root@CHGA superset]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@CHGA superset]#

10. Перезагружаем конфигурацию nginx:
systemctl reload nginx
11. Проверяем доступность веб интерфейса Superset по HTTPS.
Пример подключения Apache Superset к ClickHouse
Apache Superset поддерживает СУБД ClickHouse. Однако, из коробки поддержки нет. Необходим ряд дополнительных действий:
1. Останавливает текущие контейнеры:
docker compose -f docker-compose-non-dev.yml down
2. Добавляем пакеты для поддержки ClickHouse:
cd /opt/superset
echo "clickhouse-connect>=0.13.0" >> ./docker/requirements-local.txt
3. Пересобираем контейнеры:
docker compose -f docker-compose-non-dev.yml build
4. Запускаем контейнеры:
docker compose -f docker-compose-non-dev.yml build
5. Подключаемся по веб интерфейсу администрирования Superset и перейти в раздел подключения дополнительных источников.

6. Подключаем дополнительный источник данных:

7. Теперь в списке поддерживаемых источников данных должен появиться ClickHouse:

8. Указываем параметры подключения к ClickHouse. В моем случае сервер ClickHouse развернут на том же хосте, что и Superset.

9. В списке источников данных должна появиться новая строка:

Подключение Apache Superset к ClickHouse завершено.
