Запуск Glarus BI на Debian как сервиса с nginx¶
Для тех случаев, когда невозможно использовать Docker в своей инфраструктуре, по-прежнему может потребоваться возможность настроить и запустить Glarus BI в рабочей среде. В системах на основе Debian это означает регистрацию Glarus BI в качестве службы, которую можно запустить/остановить/удалить.
Примечание. Это всего лишь базовый «рецепт» для быстрого старта. По вашему желанию вы можете произвести дополнительную настройку вашей среды для ваших требований.
Предварительные условия¶
Основные предварительные условия:
вы запускаете Glarus BI, используя файл
glarusBI.jar
;у вас установлены
nginx
иpostgres
(или любая другая поддерживаемая система управления базами данных);вы будете использовать переменные среды для настройки Glarus BI;
у вас есть
sudo
доступ на вашем сервере.
Создайте непривилегированного пользователя для запуска Glarus BI и предоставьте ему доступ к приложению и журналам¶
Из соображений безопасности мы рекомендуем, чтобы Glarus BI запускалась от имени непривилегированного пользователя. Для него можно выбрать простое имя, например «metabase». Также мы создадим файлы, которые понадобятся позже для логирования и настройки Glarus BI, и применим необходимые настройки безопасности для нашего непривилегированного пользователя.
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
Создание службы Glarus BI¶
Каждому сервису нужен скрипт, который сообщает systemd, как им управлять и какие возможности он поддерживает. Службы обычно регистрируются в /etc/systemd/system/<servicename>
. Таким образом, служба Glarus BI должна находиться в /etc/systemd/system/metabase.service
.
Файл службы Glarus BI¶
Создайте служебный файл /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>
) значениями, подходящими для вашей системы. В приведённом ниже сценарии Glarus BI есть дополнительные комментарии.
[Unit]
Description=Glarus BI 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
Переменные окружения для Glarus BI¶
Обычно переменные окружения дают возможность гибкой настройки вашего экземпляра Glarus BI. В системах Debian службы обычно предполагают наличие сопутствующих конфигураций внутри etc/default/<service-name>
.
Конфигурационный файл Glarus BI¶
Откройте файл конфигурации среды /etc/default/metabase
в вашем редакторе:
sudo <your-editor> /etc/default/metabase
В /etc/default/metabase
замените настраиваемые элементы (они выглядят как <some-var-name>
) значениями, подходящими для вашей системы. Конфигурации Glarus BI параметризируются переменными, некоторые из которых показаны ниже, они разделены символами |
:
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 Glarus BI
Финальные шаги¶
Одно из гарантируемых преимуществ запуска Glarus BI в качестве службы Debian — это уверенность в том, что эта служба будет запускаться при каждой загрузке системы. Для завершения этого процесса осталось всего несколько шагов.
Убедитесь, что ваша база данных готова и доступна¶
Если вы используете postgres
или какую-либо другую базу данных, вам необходимо убедиться, что вы уже создали базу данных, схему, а также пользователя, который может получить доступ к этой базе. Эти значения должны совпадать с теми, что вы установили в конфигурации 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
.
# sample nginx.conf
# proxy requests to Glarus BI instance
server {
listen 80;
listen [::]:80;
server_name your.domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
Зарегистрируйте службу Glarus BI¶
Теперь пришло время зарегистрировать нашу службу Glarus BI в systemd
, чтобы она запускалась при каждом запуске системы. Мы также позаботимся о том, чтобы журнал был создан и принадлежал непривилегированному пользователю, под которым наша служба запускает glarusBI.jar
.
sudo systemctl daemon-reload
sudo systemctl start metabase.service
sudo systemctl status metabase.service
Разрешите запуск службы во время загрузки:
sudo systemctl enable metabase.service
Готово!¶
Теперь всякий раз, когда вам нужно запустить, остановить или перезапустить Glarus BI, вы можете сделать это следующими командами:
sudo systemctl start metabase.service
sudo systemctl stop metabase.service
sudo systemctl restart metabase.service