Запуск Glarus BI как сервиса systemd¶
Если вы не используете (или не можете использовать) Docker в своей инфраструктуре, вы можете зарегистрировать Glarus BI как сервис systemd, который можно запускать, останавливать, удалять.
В качестве примера в этом руководстве используется Debian, но шаги подойдут для большинства Linux‑дистрибутивов, использующих systemd. Это_минимальное рабочее решение. Дальше вы сможете адаптировать его под свои требования и следовать лучшим практикам по настройке и защите остальной части сервера.
Предварительные условия¶
Основные предварительные условия:
- У вас установлен пакет Java Runtime Environment (JRE).
- Вы будете запускать Glarus BI из файла
metabase.jar. - На сервере уже работает Nginx.
- Вы будете использовать переменные окружения для настройки экземпляра Glarus BI.
- У вас есть root‑доступ к серверу.
- Вы получили jar-файл в технической поддержке Glarus Digital.
Для окружений уровня промышленной эксплуатации обязательно настройте базу метаданных приложения на PostgreSQL или MySQL/MariaDB.
Создайте непривилегированного пользователя для запуска Glarus BI¶
По соображениям безопасности лучше запускать Glarus BI от непривилегированного пользователя. Если такого пользователя ещё нет, создайте пользователя metabase:
# Create a "metabase" group
sudo groupadd -r metabase
# Create a "metabase" user, with a home directory at /home/metabase
sudo useradd -m -r -s /bin/false -g metabase metabase
Скачайте JAR‑файл Glarus BI¶
JAR‑файл Glarus BI можно хранить в любом месте, откуда пользователь metabase сможет его читать.
Удобный вариант — домашний каталог пользователя: /home/metabase.
Если вы хотите хранить JAR‑файл в другом месте, не забудьте обновить все ссылки на /home/metabase/metabase.jar в последующих шагах этого руководства.
Для получения файла обратитесь в службу поддержки Glarus Digital.
Переменные окружения для Glarus BI¶
Переменные окружения позволяют настраивать экземпляр Glarus BI.
Рекомендуем создать файл для хранения этих переменных окружения, который затем использовать при создании systemd‑сервиса для Glarus BI.
Эта команда создаст файл переменных окружения /home/metabase/.env, который нужно обновить так, чтобы он указывал на вашу БД метаданных приложения в PostgreSQL:
sudo -u metabase cat << EOF > /home/metabase/.env
MB_JETTY_HOST=127.0.0.1
MB_JETTY_PORT=3000
# Раскомментируйте и обновите переменные для подключения к БД метаданных в Postgres
# Если не заданы, Glarus BI будет использовать встроенную ненадёжную БД H2
# MB_DB_TYPE=postgres
# MB_DB_HOST=your_metabase_db_hostname
# MB_DB_PORT=5432
# MB_DB_DBNAME=your_metabase_db_name
# MB_DB_USER=your_metabase_db_user
# MB_DB_PASS=your_metabase_db_password
EOF
Создайте сервис Glarus BI¶
Каждому сервису нужен конфигурационный файл, который указывает systemd, как им управлять и какие возможности он поддерживает. Сервисы уровня системы обычно регистрируются в /etc/systemd/system/<servicename>. Соответственно, сервис glarusbi должен находиться в /etc/systemd/system/glarusbi.service.
Файл сервиса Glarus BI¶
Следующая команда создаст файл /etc/systemd/system/glarusbi.service с простым systemd‑описанием сервиса для запуска Glarus BI:
sudo cat << EOF > /etc/systemd/system/glarusbi.service
[Unit]
Description=Glarus BI server
After=network.target
[Service]
WorkingDirectory=~
ExecStart=/usr/bin/java --add-opens java.base/java.nio=ALL-UNNAMED -jar /home/metabase/metabase.jar
EnvironmentFile=/home/metabase/.env
User=metabase
Type=simple
SuccessExitStatus=143
TimeoutStopSec=120
Restart=always
[Install]
WantedBy=multi-user.target
EOF
Плюс запуска Glarus BI как systemd‑сервиса в том, что он стартует при каждой загрузке системы и автоматически перезапускается в случае сбоя. Осталось зарегистрировать сервис и запустить Glarus BI.
Убедитесь, что база данных готова¶
Если вы используете PostgreSQL как БД метаданных приложения, убедитесь, что вы создали базу данных для Glarus BI и пользователя, который имеет доступ к этой базе. Эти значения должны совпадать с тем, что вы указали в конфигурации Glarus BI в переменных MB_DB_TYPE, MB_DB_DBNAME, MB_DB_USER и MB_DB_PASS. Если база данных настроена неправильно, Glarus BI не сможет запуститься.
Убедитесь, что Nginx проксирует запросы в Glarus BI¶
Подробная настройка Nginx выходит за рамки этого руководства, но ниже — пример nginx.conf, который позволит быстро запуститься.
Примечание
В nginx.conf ниже предполагается, что вы принимаете входящий трафик на порт 80 и хотите проксировать запросы в Glarus BI, и что ваш экземпляр Glarus BI настроен на работу на localhost, порт 3000. У Nginx есть несколько proxy‑директив, которые могут быть важны — см. официальную документацию Nginx.
# sample nginx.conf
# proxy requests to Metabase instance
server {
listen 80;
listen [::]:80;
server_name yourdomain.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
Зарегистрируйте сервис Glarus BI¶
Теперь можно зарегистрировать сервис Glarus BI в systemd, чтобы он стартовал при загрузке системы:
sudo systemctl daemon-reload
sudo systemctl start glarusbi.service
sudo systemctl status glarusbi.service
Чтобы посмотреть журнал сервиса Glarus BI, выполните:
Если всё в порядке, включите сервис, чтобы он стартовал при загрузке:
Запуск, остановка и перезапуск Glarus BI¶
Теперь, чтобы перезапустить, остановить или запустить Glarus BI, достаточно выполнить: