Запуск GlarusBI на Debian как сервис с nginx¶
Для тех случаев, когда невозможно использовать Docker в своей инфраструктуре, по-прежнему может потребоваться возможность настроить и запустить GlarusBI в рабочей среде. В системах на основе Debian это означает регистрацию GlarusBI в качестве службы, которую можно запустить/остановить/удалить.
Примечание. Это всего лишь базовый рецепт для быстрого старта. По вашему желанию вы можете произвести дополнительную настройку вашей среды для ваших требований.
Предположения¶
Основные предположения:
Вы запускаете GlarusBI используя файл
glarusBI.jar
У вас установлены
nginx
иpostgres
(или любая другая поддерживаемая база данных)Вы будете использовать переменные среды для настройки GlarusBI.
У вас есть
sudo
доступ на вашем сервере
Создайте непривилегированного пользователя для запуска GlarusBI и предоставьте ему доступ к приложению и журналам.¶
Создайте непривилегированного пользователя для запуска GlarusBI и предоставьте ему доступ к приложению и журналам.
Из соображений безопасности мы рекомендуем, чтобы GlarusBI запускалась от имени непривилегированного пользователя. Для него можно выбрать простое имя, например «metabase». Так же мы создадим файлы, которые нам понадобятся позже для логирования и настройки GlarusBI, и применим необходимые настройки безопасности для нашего непривилегированного пользователя.
sudo groupadd -r metabase
sudo useradd -r -s /bin/false -g metabase metabase
sudo chown -R metabase:metabase </your/path/to/metabase/directory>
sudo touch /var/log/metabase.log
sudo chown syslog:adm /var/log/metabase.log
sudo touch /etc/default/metabase
sudo chmod 640 /etc/default/metabase
Создание службы GlarusBI¶
Каждому сервису нужен скрипт, который сообщает systemd, как им управлять и какие возможности он поддерживает. Службы обычно регистрируются в /etc/systemd/system/<servicename>
. Таким образом, служба GlarusBI должна находиться в /etc/systemd/system/metabase.service
.
Служебный файл GlarusBI¶
Создайте служебный файл /etc/systemd/system/metabase.service
и откройте его в своем редакторе:
sudo touch /etc/systemd/system/metabase.service
sudo <your-editor> /etc/systemd/system/metabase.service
В файле /etc/systemd/system/metabase.service
замените настраиваемые элементы (они выглядят как <some-var-name>
) значениями, подходящими для вашей системы. В приведенном ниже сценарии GlarusBI есть дополнительные комментарии.
[Unit]
Description=GlarusBI server
After=syslog.target
After=network.target
[Service]
WorkingDirectory=</your/path/to/metabase/directory/>
ExecStart=/usr/bin/java -jar </your/path/to/metabase/directory/>glarusBI.jar
EnvironmentFile=/etc/default/metabase
User=metabase
Type=simple
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=metabase
SuccessExitStatus=143
TimeoutStopSec=120
Restart=always
[Install]
WantedBy=multi-user.target
Создание syslog conf¶
Далее нам нужно создать конфигурацию системного журнала, чтобы убедиться, что systemd может правильно обрабатывать логи.
sudo touch /etc/rsyslog.d/metabase.conf
sudo <your-editor> /etc/rsyslog.d/metabase.conf
if $programname == 'metabase' then /var/log/metabase.log
& stop
Перезапустите службу системного журнала для загрузки новой конфигурации.
sudo systemctl restart rsyslog.service
Переменные окружения для GlarusBI¶
Обычно переменные окружения дают возможность гибкой настройки вашего экземпляра GlarusBI. В системах Debian службы обычно предполагают наличие сопутствующих конфигураций внутри etc/default/<service-name>
.
Конфигурационный файл GlarusBI¶
Откройте файл конфигурации среды /etc/default/metabase
в вашем редакторе:
sudo <your-editor> /etc/default/metabase
В /etc/default/metabase
замените настраиваемые элементы (они выглядят как <some-var-name>
) значениями, подходящими для вашей системы. Конфигурации GlarusBI параметризуются переменными, некоторые из которых показаны ниже, они разделенны символами |
:
MB_PASSWORD_COMPLEXITY=<weak|normal|strong>
MB_PASSWORD_LENGTH=<10>
MB_JETTY_HOST=<0.0.0.0>
MB_JETTY_PORT=<12345>
MB_DB_TYPE=<postgres|mysql|h2>
MB_DB_DBNAME=<your_metabase_db_name>
MB_DB_PORT=<5432>
MB_DB_USER=<your_metabase_db_user>
MB_DB_PASS=<ssshhhh>
MB_DB_HOST=<localhost>
MB_EMOJI_IN_LOGS=<true|false>
# any other env vars you want available to GlarusBI
Финальные шаги¶
Одно из гарантируемых преимущества запуска GlarusBI в качестве службы Debian — это уверенность в том, что эта служба будет запускаться при каждой загрузке системы. Для завершения этого процесса осталось всего несколько шагов.
Убедитесь что ваша база данных готова и доступна¶
Если вы используете postgres
или какую-либо другую базу данных, вам необходимо убедиться, что вы уже создали базу данных, схему, а также пользователя, который может получить доступ к этой базе. Эти значения должны совпадать с тем, что вы установили в конфигурации GlarusBI для переменных окружения MB_DB_TYPE
, MB_DB_DBNAME
, MB_DB_USER
и MB_DB_PASS
. Если ваша база данных не настроена должным образом, GlarusBI не сможет запуститься.
Убедитесь, что nginx
настроен для проксирования запросов к GlarusBI¶
В данном руководстве мы не будем перечислять все конфигурационные возможности nginx
, но на примере следущего файла nginx.conf
вы сможете запустить ваше сервер.
Примечание. Приведенный ниже nginx.conf
описывает прием входящего трафика через порт 80 и проксирует запросы к GlarusBI, при этом ваш экземпляр GlarusBI настроен для работы на localhost
через порт 3000
. Есть несколько директив прокси, которые могут вас заинтересовать, поэтому рекомендуем вам ознакомиться с ними в Официальной документации nginx
.
# sample nginx.conf
# proxy requests to GlarusBI instance
server {
listen 80;
listen [::]:80;
server_name your.domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
Зарегистрируйте службу GlarusBI¶
Теперь пришло время зарегистрировать нашу службу GlarusBI в systemd
, чтобы она запускалась при каждом запуске системы. Мы также позаботимся о том, чтобы журнал был создан и принадлежал непривилегированному пользователю, под которым наша служба запускает glarusBI.jar
.
sudo systemctl daemon-reload
sudo systemctl start metabase.service
sudo systemctl status metabase.service
Разрешите запуск службы во время загрузки:
sudo systemctl enable metabase.service
Готово!¶
Теперь всякий раз, когда вам нужно запустить, остановить или перезапустить GlarusBI, вы можете сделать это следующими командами:
sudo systemctl start metabase.service
sudo systemctl stop metabase.service
sudo systemctl restart metabase.service