07 Установка Luxms BI
Для установки компонентов Luxms BI необходимо подключение дополнительных репозиториев, в зависимости от ОС узла и компонента, устанавливаемого на хост.
Ниже для каждого компонента Luxms BI будет дополнительно указано:
- какие дополнительные репозитории должны быть подключены
- какие дополнительные пакеты нужно установить
Развертывание БД Luxms BI
При установке пакета производится проверка существующих БД, при обнаружении существующей БД Luxms BI изменения данных БД не происходит.
Компоненты Luxms BI используют парольную аутентификацию для подключения к БД. Это защищает данные приложения от несанкционированного доступа.
Единственным исключением является настройка peer аутентификации для суперпользователя БД - postgres. Это позволяет обеспечить установку обновлений и работу внутренней бизнес-логики БД.
При установке доступ к базе данных Luxms BI (mi) настроен для пользователя bi с паролем по умолчанию. Обязательно измените его после установки.
База данных Luxms BI может устанавливаться в автоматизированном режиме либо в ручном.
Минимум условий для автоматизированной установки - запущенный экземпляр БД, до установки пакета с метаданными.
Установка в “ручном” режиме - развертывание/перезапись метаданных после установки пакета luxms-pg/luxmsbi-pgpro и настройка ограничений на подключение к БД - pg_hba.conf
.
Наименование пакетов, развертывающих БД Luxms BI, могут отличатся. На текущий момент имена пакетов могут выглядеть следующим образом:
- luxmsbi-pg или luxmsbi-pg13 или luxmsbi-pg15
- luxmsbi-pgpro или luxmsbi-pgpro13 или luxmsbi-pgpro15
- luxmsbi-jatoba4
Зависят от ОС и используемой редакции PostgreSQL. В ранних релизах имя пакетов не содержало мажорную версию редакции PostgreSQL. На текущий момент мы работаем на приведении имен пакетов к общему стандарту.
Автоматизированная установка БД LuxmsBI
Для установки БД Luxms BI требуется установка пакета luxmsbi-pg/luxmsbi-pgpro:
- Установка пакета метаданных при работающем экземпляре БД выполнит донастройку конфигурационных файлов и создаст БД для системы Luxms BI. Для установки пакета необходимо выполнить команду:
Для RPM-based ОС:
sudo dnf -y install luxmsbi-pg15
Для DEB-based ОС:
sudo apt -y install luxmsbi-pgpro15
Для Alt Linux:
sudo apt-get -y install luxmsbi-pg15
Автоматическая установка БД из пакета включает в себя:
- корректировку конфигурации подключения к БД - вносит изменения в конфигурационный файл
pg_hba.conf
с сохранением оригинальной конфигурации; - развертывание инициирующего дампа конфигурации системы Luxms BI.
Но только при условии использования базой данных стандартного порта и стандартного расположения файлов БД. При нестандартных параметрах необходимо до установки настроить переменные окружения в профиле сервисной учетной записи postgres
, минимально достаточно добавить переменную PGPORT
.
Ручная установка базы
Ручная установка базы данных Luxms BI необходима в ситуации, когда при установке пакета БД была не доступна или не определена переменная окружения PGDATA
, указывающая на нестандартное расположение файлов БД.
- Выполнить в ручном режиме, используя поставляемый с пакетом luxmsbi-pg скрипт:
su - postgres -c '/usr/share/luxmsbi-pg/luxmsbi-setupdb.sh /usr/share/luxmsbi-pg/luxmsbi-dump.sql.gz'
- Корректировка ограничений подключения к БД выполняется при установке RPM-пакета. При ручной установке дампа БД необходимо проверить настройки файла pg_hba.conf (при необходимости изменить):
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local bi all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
При необходимости обеспечения доступа к БД с других хостов, при разнесении компонентов системы между разными узлами, необходимо добавить разрешения для подключения в соответствии с документацией PostgreSQL сервера:
# Allow external connection
host mi bi 0.0.0.0/0 md5
Установка KeyDB сервера
Взаимодействия между компонентами Luxms BI построено с использованием быстрой in-memory database KeyDB. С помощью KeyDB реализован дополнительный функционал по ограничениям безопасности и контроля за пользовательскими сессиями.
Установка KeyDB производится в большинстве случаев совместно с компонентом luxmsbi-web
.
- Установка:
Для RPM-based ОС:
sudo dnf -y install keydb
Для DEB-based ОС:
sudo apt -y install keydb-server
Для Alt Linux:
sudo apt-get -y install keydb
- При установке компонентов Luxms BI на нескольких узлах необходимо обеспечить сетевую доступность:
Для RPM-based ОС:
sudo firewall-cmd --add-service=redis
sudo firewall-cmd --runtime-to-permanent
Для DEB-based ОС:
sudo ufw allow 6379/tcp comment 'KeyDB server'
- Необходима настройка автоматического запуска сервера.
Для RPM-based ОС:
sudo systemctl enable keydb --now
Для DEB-based ОС:
sudo systemctl enable keydb-server --now
Для Alt Linux:
sudo systemctl enable keydb --now
Обеспечение доступа по сети
При разнесении на разные хосты БД и KeyDB-сервера, необходимо настроить доступность API и БД для организации доступа к сервису.
Для настройки доступности сервиса с других хостов нужно изменить параметры стандартной конфигурации в файле /etc/keydb/keydb.conf
. Закомментируйте и измените параметры:
# bind 127.0.0.1 ::1
protected-mode no
Необходим перезапуск сервиса.
Для RPM-based ОС:
sudo systemctl restart keydb
Для DEB-based ОС:
sudo systemctl restart keydb-server
Резервирование(кластеризация) KeyDB
При развертывании нескольких экземпляров KeyDB необходимо настроить репликацию данных. В конфигурационном файле /etc/keydb/keydb.conf
необходимо установить следующие параметры:
active-replica yes
replicaof [IP-адрес соседа] 6379
replica-readonly no
Необходим перезапуск сервиса.
Для RPM-based ОС:
sudo systemctl restart keydb
Для DEB-based ОС:
sudo systemctl restart keydb-server
Для Alt Linux:
sudo systemctl restart keydb
Развертывание Web приложения
Web-приложение Luxms BI, luxmsbi-web
, базируется на HTTP сервере NGinx и требует взаимодействия с:
- KeyDB сервером;
- Java-приложением
luxmsbi-appserver
; - Java-приложением
luxmsbi-datagate
; - Java-приложением
luxmsbi-importer
; - БД Luxms BI.
Устанавливаемые компоненты не вносят изменения в стандартную конфигурацию NGinx, а создают отдельную папку с конфигурацией /opt/luxmsbi/conf/nginx и собственный systemd сервис для запуска - luxmsbi-web.service
.
Установка пакета Nginx производится как зависимость от пакета luxmsbi-web
и, в большинстве случаев, использует самую последнюю версию, доступную в пакетных репозиториях ОС.
Исключение!
Установка пакета на ОС CentOS7 или EL8(Rocky Linux 8, Oracle Linux 8 …).
Поддержка ОС CentOS7 завершается 30 июня 2024 года.
Настоятельно рекомендуется миграция на другую ОС.
Поставляемый в EL8 дистрибутивах пакет NGinx
собран с устаревшей версией OpenSSL
. Поэтому мы рекомендуем использовать пакет из официального репозитория NGinx с версией 1.25.4. Или получить копию пакета из нашего репозитория
До установки пакета на ОС, базирующихся на EL8, необходимо ОТключить виртуальные репозитории:
sudo dnf module disable nginx php
До установки пакета на ОС, базирующихся на EL9, необходимо ПОДключить виртуальные репозиторий:
sudo dnf module enable nginx:1.24
Для установки необходимо выполнить следующую последовательность действий:
- Установить пакет
luxmsbi-web
:
При установке пакета на RPM-based ОС автоматически производится настройка политики Selinux.
Можно отключить SELinux, но рекомендуем не отказываться от дополнительной защиты ОС.
Для RPM-based ОС:
sudo dnf -y install luxmsbi-web
Для DEB-based ОС:
В связи с нестандартной политикой ГК Астра по обновлению пакетов в репозиториях, может потребоваться дополнительная настройка репозиториев ОС.
Описано в разделе “Особые настройки для репозиториев ОС” Использование пакетных репозиториев
Использование пакетных репозиториев
До установки пакета на Astra Linux SE 1.7 необходимо установить приоритет для пакета фиксированной версии NGinx. На момент выхода БЮЛЛЕТЕНЬ № 2024-0830SE17 (оперативное обновление 1.7.6) необходимо создать файл /etc/apt/preferences.d/nginx
со следующим содержимым:
Package: nginx
Pin: version 1.22.1*
Pin-Priority: 1001
И только после этого выполнять установку:
sudo apt -y install luxmsbi-web
Для Alt Linux:
sudo apt-get -y install luxmsbi-web
- Откорректировать конфигурационные файлы приложений:
Для LUA-скриптов, используемых в NGinx, необходимо настроить данные учетной записи для подключения к БД и KeyDB-сервера, конфигурационный файл /opt/luxmsbi/conf/nginx/lua/bicfg.lua
:
return {
dbhost="127.0.0.1",
dbport=5432,
dbname="mi",
dbpool="pg-mi-4.0",
dbuser="bi",
dbpass="bi",
dbcompact=false,
dbpool_size=10, -- FIXME: NOT YET propogated default is 30 https://github.com/openresty/lua-nginx-module#lua_socket_pool_size
kdbhost = "127.0.0.1",
kdbport = 6379,
debug = false,
rpmlimit = 0, -- no limit
max_login_attempts = 0, -- no checks
login_attempts_ttl = 60, --seconds to make a continious session
extra_headers = false, --add debug headers about pool usage, version and execution time.
}
- Еще один ключевой файл конфигурации Web-приложения
/opt/luxmsbi/conf/nginx/conf.d/upstreams.conf
. Играет важную роль в интеграции Web-приложения и бизнес-логики БД Luxms BI/
# Define upstream_cookie for hash upstreams
map $http_cookie $upstream_cookie {
default "";
"~*LuxmsBI-User-Session=(.*?)($|;.*)" "$1";
}
# Defined upstreams
upstream binserver {
server 127.0.0.1:8888;
}
upstream appserver {
hash $upstream_cookie consistent;
server 127.0.0.1:8080;
}
upstream datagate {
hash $upstream_cookie consistent;
server 127.0.0.1:8080;
}
upstream importer {
hash $upstream_cookie consistent;
server 127.0.0.1:8192;
}
upstream gateway {
hash $upstream_cookie consistent;
server 127.0.0.1:8889;
}
upstream lua-webapi {
server 127.0.0.1:8282;
keepalive 8;
}
Выше показана конфигурация файла для установки Luxms BI на едином хосте, устанавливаемая по умолчанию.
В случае более сложной инфраструктуры, с разнесением сервисов по выделенным хостам, этот конфигурационный файл должен быть откорректирован.
- При использовании DCS Consul, откорректированная конфигурация должна содержать DNS-имена зарегистрированных сервисов, например:
При использовании параметра resolve
необходимо убедиться в наличии определения для директивы resolver 127.0.0.1;
в секции http
конфигурации nginx /opt/luxmsbi/conf/nginx/nginx.conf
# Define upstream_cookie for hash upstreams
map $http_cookie $upstream_cookie {
default "";
"~*LuxmsBI-User-Session=(.*?)($|;.*)" "$1";
}
# Defined upstreams
upstream binserver {
server 127.0.0.1:8888;
}
upstream appserver {
hash $upstream_cookie consistent;
server luxmsbi-appserver.service.consul:8080 resolve;
}
upstream datagate {
hash $upstream_cookie consistent;
server luxmsbi-datagate.service.consul:8080 resolve;
}
upstream importer {
hash $upstream_cookie consistent;
server luxmsbi-importer.service.consul:8192 resolve;
}
upstream gateway {
hash $upstream_cookie consistent;
server luxmsbi-gateway.service.consul:8889 resolve;
}
upstream lua-webapi {
server 127.0.0.1:8282;
keepalive 8;
}
- При использовании нескольких инстансов компонентов, без регистрации сервисов в Consul, необходимо прописать IP-адреса сервисов, например:
За более подробной инструкцией по настройке обратитесь к документации по модулю NGinx ngx_http_upstream_module
# Defined upstreams
upstream binserver {
server 127.0.0.1:8888;
}
upstream appserver {
hash $upstream_cookie consistent;
server 127.0.0.1:8888;
}
upstream datagate {
hash $upstream_cookie consistent;
server 10.0.0.5:8080;
server 10.0.0.6:8080;
}
upstream importer {
hash $upstream_cookie consistent;
server 10.0.0.5:8080;
server 10.0.0.6:8080;
}
upstream gateway {
server 127.0.0.1:8889;
}
upstream lua-webapi {
server 127.0.0.1:8282;
keepalive 8;
}
- Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable --now luxmsbi-web
Настройка безопасности Web-приложения
Конфигурационный файл /opt/luxmsbi/conf/nginx/lua/bicfg.lua
включает в себя параметры подключения к базе Метаданных Luxms BI и настройки безопасности, связанные с защитой Web-приложения.
Для ограничения количества попыток подключения, защиты ПО от подбора пароля, необходимо установить параметры:
- max_login_attempts - количество неудачных попыток подключения за период, определяемый параметром login_attempts_ttl
- login_attempts_ttl - период времени, за который суммируются неудачные попытки подключения
По умолчанию ограничение количества неудачных входов отключено.
Для того, чтобы работало ограничение неудачных попыток входа в Luxms BI, необходимо настроить подключение к KeyDB.
Для ограничения количества API-запросов с одного и того же клиента/IP-адреса необходимо настроить параметр:
- rpmlimit - определяет максимальное количество API-запросов c одного клиента в течение минуты
По умолчанию ограничение количества API-запросов отключено.
Для того, чтобы работало ограничение количества API-запросов, необходимо настроить подключение к KeyDB.
Если для Вашей инсталляции необходима настройка SSO-авторизации, ознакомьтесь с разделом Приложение #4
Для высоконагруженных инсталяций Luxms BI мы НЕ РЕКОМЕНДУЕМ настройку HTTPS на Web-серверах Luxms BI.
Рекомендуем для этого функционала использовать аппаратные балансировщики нагрузки или выделенные сервера балансировки.
В случае необходимости настроить доступ к приложению по HTTPS и невозможности использования/отсутствия систем балансировки нагрузки, ознакомьтесь с Приложением #5
Развертывание BINS
Компонент luxmsbi-bins
требует взаимодействия с:
- KeyDB сервером.
- БД Luxms BI.
Установка luxmsbi-bins
производится совместно с компонентом luxmsbi-web
и требует установки NodeJS версии 16, который устанавливается как зависимость из репозитория Luxms.
- Установка BINS:
Для RPM-based ОС:
До установки пакета на ОС, базирующихся на EL8 и выше, необходимо подключить виртуальный репозиторий nodejs, соответсвующей версии:
sudo dnf -y module enable nodejs:20
и установить пакет:
sudo dnf -y install luxmsbi-bins
Для DEB-based ОС:
sudo apt -y install luxmsbi-bins
Для Alt Linux:
sudo apt-get -y install luxmsbi-bins
- Настройки источников событий, используемых для трансляции в браузер пользователя, производятся в конфигурационном файле
/opt/luxmsbi/conf/bins.json
. В зависимости от схемы инсталяции, может потребоваться корректировка строки подключения:
{
// Get changes from database
"db": "postgres://bi:bi@127.0.0.1/mi",
// Subscribe to changes channel on Redis-server
"db.rt": "redis://127.0.0.1"
}
- Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxmsbi-bins --now
Установка NATS-Server
Компонент NATS-Server
предоставляет распределенное объектное хранилище для компонентов Luxms BI.
- При установке одно-узлового Luxms BI необходимо выполнить команды::
Для RPM-based ОС:
sudo dnf -y install nats-server
Для DEB-based ОС:
sudo apt -y install nats-server
Для Alt Linux:
sudo apt-get -y install nats-server
- При установке создается конфигурационный файл по умолчанию
/opt/nats/nats-server.conf
:
# Example config file
server_name: change_me-please
port: 4222
monitor_port: 8222
accounts: {
SYS: {
users: [
{ user: "x", pass: "y" }
]
},
}
system_account: SYS
#cluster {
# name: nats-cluster
# port: 6222
# Routes are actively solicited and connected to from this server.
# routes = ["nats://nats-seed:6222","nats://nats-server-1:6223","nats://nats-server-2:6224"]
#}
max_payload: 16MB
jetstream: enabled
jetstream {
store_dir: /opt/nats
max_mem: 1G
}
Конфигурационный файл требует изменений:
- server_name - уникальный идентификатор, нужно установить значение. Например - имя хоста;
- accounts.SYS.users - аутентификационные данные для управления системными параметрами. Необходимо установить безопасные значения для атрибутов
user
иpassword
.
При развертывании продуктовых, много-хостовых решений необходимо провести планирование инфраструктуры и выполнить развертывание кластерного решения в соответсвии с Приложением G
- И выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable nats-server --now
Установка Java Runtime
Начиная с 10 версии Luxms BI Java-компоненты не поддерживают работу под JDK/JRE 11 версии.
Установка Java Runtime 17
В связи с возрастающим количеством уязвимостей безопасности и окончанием поддержки JDK 11, Luxms BI с версии 10 требует Java Runtime 17 версии:
- Oracle JDK 11, бесплатная поддержка закончилась в сентябре 2023 года;
- OpenJDK 11 от RHEL, бесплатная поддержка заканчивается в октябре 2024 года;
- по Российским ОС сведениями о сроке поддержки не обладаем.
JRE/JDK 17 на текущий момент поставляются только со следующими ОС:
- Astra Linux Special edition 1.8
- RedOS 8
- Rocky 8
- Rocky 9.
Для отечественных ОС, выпущенных ранее, существуют несколько других вариантов.
- Мы предоставляем свою сборку OpenJDK 17 JRE, доступные в наших репозиториях для ОС RedOS7 и Astra Linux SE 1.7:
- не требует отдельной установки, автоматически устанавливается как зависимость;
- не требует настройка конфигурации Java-компонентов Luxms BI.
Наша сборка включает в себя ограниченный состав модулей, достаточный для работы приложения.
Но не позволяющий проводить отладку и разработку.
Наша сборка выполнена на основе Oracle JDK 17 с использованием стандартной утилиты jlink.
- требует отдельной установки;
- после установки требуется настройка конфигурации Java-компонентов Luxms BI.
- Axiom JDK Pro/Certified - Российская компания ООО «БЕЛЛСОФТ»
- требует приобретения лицензии;
- предоставляется платная поддержка;
- требует отдельной установки;
- после установки требуется настройка конфигурации Java-компонентов Luxms BI.
После установки JRE/JDK, отличного от поставляемых с ОС, необходимо исправить конфигурационные файлы Java-компонентов, указать корректное значения для JAVA_HOME.
Для DEB-based ОС, в конфигурационных файлах:
- /etc/default/luxmsbi-appserver
- /etc/default/luxmsbi-datagate
- /etc/default/luxmsbi-importer
Для RPM-based ОС, в конфигурационных файлах:
- /etc/sysconfig/luxmsbi-appserver
- /etc/sysconfig/luxmsbi-datagate
- /etc/sysconfig/luxmsbi-importer
Установка Luxms BI Appserver
Компонент luxmsbi-appserver
поставляется в двух вариантах, пакеты:
- luxmsbi-appserver-mono, предпочтительный, консолидированный функционал;
- luxmsbi-appserver, без функционала интеграции с Источниками данных.
Если Вы не знаете какой выбрать, выбирайте консолидированный пакет luxmsbi-appserver-mono. И у Вас отпадет необходимость устанавливать дополнительные Java-компоненты.
Требует взаимодействия с:
- NATS сервером;
- БД Luxms BI.
- Установка
luxmsbi-appserver
производится в большинстве случаев совместно с компонентомluxmsbi-web
:
Для RPM-based ОС:
sudo dnf -y install luxmsbi-appserver-mono
Для DEB-based ОС:
sudo apt -y install luxmsbi-appserver-mono
Для Alt Linux:
sudo apt-get -y install luxmsbi-appserver-mono
- Настройка используемого Java
В файле конфигурации переменных окружения для systemd unit-а необходимо указать или раскомментировать определение переменной JAVA_HOME:
# Enviroment variables
JAVA_HOME=${_java_home}
PATH=/usr/bin:\$JAVA_HOME/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
# Options for JVM
# To increase HEAP memory add Xmx option, for example " -Xmx8g"
JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true -XX:+ExitOnOutOfMemoryError"
# Options for ExecStart
OPTIONS="--spring.config.additional-location=/opt/luxmsbi/conf/${_compName}/application.properties"
При работе в ОС ALSE с уровнем безопасности выше “Базового” необходимо добавить
в переменную среды JAVA_TOOL_OPTIONS, через пробел, запрет использования Native-транспорта
для Netty:
-Dio.netty.transport.noNative=true
- Параметры приложения настраиваются в конфигурационном файле
/opt/luxmsbi/conf/appserver/application.properties
и имеют комментарии, кратко описывающие их назначение.
Необходимо настроить подключение к БД и серверу NATS в конфигурационном файле:
# LuxmsBI database properties
luxmsbi.datasource.url=jdbc:postgresql://127.0.0.1:5432/mi
luxmsbi.datasource.username=bi
luxmsbi.datasource.password=bi
luxmsbi.nats.servers=nats://localhost:4222
- Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxmsbi-appserver --now
- Для работы функционала генерации отчетов в PDF-формате из табличных(XLSX) отчетов, дополнительно, необходима установка LibreOffice Calc:
Для RPM-based ОС:
sudo dnf -y install libreoffice-calc
Для DEB-based ОС:
sudo apt -y install libreoffice-calc
Для Alt Linux:
sudo apt-get -y install libreoffice-calc
- При установке консолидированного
luxmsbi-appserver
из пакета luxmsbi-appserver-mono необходимо внести корректировку в конфигурацию системы, через Web-приложение:
- параметер
datagate.url.prefix
Установка Luxms BI Datagate
При установленном пакете luxmsbi-appserver-mono устанавливать компонент luxmsbi-datagate не требуется! Пакет luxmsbi-datagate требуется устанавливать только при установленном пакете luxmsbi-appserver
В версиях Luxms BI начиная с 9 рекомендуется использование пакета luxmsbi-appserver-mono, который содержит в себе два сервиса сразу: Appserver и Datagate.
Компонент luxmsbi-datagate
используется как выделенный сервис для взаимодействия с Источниками данных с использованием JDBC.
Требует взаимодействия с:
- NATS сервером;
- Компонентом
luxmsbi-appserver
; - БД Luxms BI.
- Установка приложения:
Для RPM-based ОС:
sudo dnf -y install luxmsbi-datagate
Для DEB-based ОС:
sudo apt -y install luxmsbi-datagate
Для Alt Linux:
sudo apt-get -y install luxmsbi-datagate
- Настройка используемого Java
В файле конфигурации переменных окружения для systemd unit-а необходимо указать или раскомментировать определение переменной JAVA_HOME:
# Enviroment variables
JAVA_HOME=${_java_home}
PATH=/usr/bin:\$JAVA_HOME/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
# Options for JVM
# To increase HEAP memory add Xmx option, for example " -Xmx8g"
JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true -XX:+ExitOnOutOfMemoryError"
# Options for ExecStart
OPTIONS="--spring.config.additional-location=/opt/luxmsbi/conf/${_compName}/application.properties"
При работе в ОС ALSE с уровнем безопасности выше “Базового” необходимо добавить
в переменную среды JAVA_TOOL_OPTIONS, через пробел, запрет использования Native-транспорта
для Netty:
-Dio.netty.transport.noNative=true
- Параметры приложения настраиваются в конфигурационном файле
/opt/luxmsbi/conf/datagate/application.properties
и имеют комментарии, кратко описывающие их назначение.
Необходимо настроить подключение к БД и серверу NATS в конфигурационном файле:
luxmsbi.datasource.url=jdbc:postgresql://127.0.0.1:5432/mi
luxmsbi.datasource.username=bi
luxmsbi.datasource.password=bi
luxmsbi.nats.servers=nats://localhost:4222
- При развертывании компонента на выделенном узле необходимо обеспечить сетевую доступность:
Для RPM-based ОС:
sudo firewall-cmd --add-service=luxmsbi-datagate
sudo firewall-cmd --runtime-to-permanent
Для DEB-based ОС:
sudo ufw allow Luxmsbi-Datagate
- Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxmsbi-datagate --now
Драйвера JDBC для доступа к данным
Драйвера устанавливаются как зависимость при установке Java-компонентов.
На текущий момент Luxms BI поставляется со следующим набором JDBC для доступа к Источникам данных
:
- PostgreSQL, v42.5.1
- Clickhouse, v0.4.6
- SQLserver, v7.0.0
- MSAccess, v5.0.1
- Oracle, v19.16.0.0
- Mysql, v8.0.33
- MariaDB, v3.0.4
- Linter, v1.8
- SQLite, v3.20.1
- Olap4j, v1.1.0
- Teradata, v16.20.0.13
Список драйверов может быть расширен и версии драйверов могут быть обновлены в дальнейшем. Для уточнения используемых в Вашей инсталляции драйверов необходима проверка установленных драйверов. Ниже описана настройка и месторасположение в файловой системе, которое подлежит проверке.
Подключение дополнительных драйверов
Драйвера JDBC используются компонентами luxmsbi-importer
и luxmsbi-datagate
. Расположение драйверов JDBC в папках файловой системы, определяется параметром конфигурации компонента(/opt/luxmsbi/config/[Имя Компонента]/application.properties):
luxmsbi.drivers-config.location=/opt/luxmsbi/lib/jdbc
Требования к настройке драйверов JDBC:
1) Имя папок должно соответствовать следующим правилам: [Vendor name]_[Major version]_[Minor version],
где Vendor name
- должно совпадать с именем используемым в url, для подключения к источнику данных ‘jdbc:<vendor>://
’
Например: /opt/luxmsbi/lib/jdbc/mysql_5_1/
2) Каждая папка драйвера должна содержать:
- набор JAR-файлов драйвера;
- файл описания
info.json
, в формате JSON.
3) Формат файла описания info.json
, например для MariaDB:
{"vendor":"mysql","majorVersion":5,"minorVersion":1,"className":"com.mysql.jdbc.Driver","config":{}}
Элемент “config” может содержать перечень свойств, поддерживаемых конкретным драйвером. Полный перечень параметров корректнее искать в документации по драйверу.
4) Владелец и права на папку драйвера, содержащиеся в ней файлы, должны быть следующие:
[root@host ~]# ls -la /opt/luxmsbi/lib/jdbc/mysql_5_1/
total 1004
drwxrwx---. 2 bi bi 62 Jun 2 04:00 .
drwxrwx---. 11 bi bi 12288 Jun 1 11:05 ..
-rw-r-----. 1 bi bi 100 Jun 1 11:04 info.json
-rw-r-----. 1 bi bi 1007502 Jun 1 11:04 mysql-connector-java-5.1.47.jar
Добавление драйверов требует перезапуска компонентов:
sudo systemctl restart luxmsbi-datagate luxmsbi-importer
Установка Luxms BI Importer
Luxms BI Importer - поддерживаемый, но устаревший компонент интеграции с внешними Источниками данных. Начиная с версии Luxms BI 9 не требуется, но может быть установлен для поддержки старых проектов.
Компонент luxmsbi-importer
требует взаимодействия с:
- NATS сервером;
- БД Luxms BI;
- Компонентом
luxmsbi-appserver
; - Компонентом
luxmsbi-datagate
.
- Установка приложения:
Для RPM-based ОС:
sudo dnf -y install luxmsbi-importer
Для DEB-based ОС:
sudo apt -y install luxmsbi-importer
Для Alt Linux:
sudo apt-get -y install luxmsbi-importer
- Настройка используемого Java
В файле конфигурации переменных окружения для systemd unit-а необходимо указать или раскомментировать определение переменной JAVA_HOME:
# Enviroment variables
JAVA_HOME=${_java_home}
PATH=/usr/bin:\$JAVA_HOME/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
# Options for JVM
# To increase HEAP memory add Xmx option, for example " -Xmx8g"
JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true -XX:+ExitOnOutOfMemoryError"
# Options for ExecStart
OPTIONS="--spring.config.additional-location=/opt/luxmsbi/conf/${_compName}/application.properties"
- Параметры приложения настраиваются в конфигурационном файле
/opt/luxmsbi/conf/importer/application.properties
и имеют комментарии, кратко описывающие их назначение.
Необходимо настроить подключение к БД и серверу NATS в конфигурационном файле:
luxmsbi.datasource.url=jdbc:postgresql://127.0.0.1:5432/mi
luxmsbi.datasource.username=bi
luxmsbi.datasource.password=bi
luxmsbi.nats.servers=nats://localhost:4222
- При развертывании компонента на выделенном узле необходимо обеспечить сетевую доступность:
Для RPM-based ОС:
sudo firewall-cmd --add-service=luxmsbi-importer
sudo firewall-cmd --runtime-to-permanent
Для DEB-based ОС:
sudo ufw allow Luxmsbi-Importer
- Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxmsbi-importer --now
Установка Luxms Databoring
Компонент luxms-databoring
требует взаимодействия с:
- Luxmsbi-Datagate компонентом;
- Luxmsbi-Importer компонентом.
- Установка приложения:
Для RPM-based ОС:
До установки пакета на ОС, базирующихся на EL8 и выше, необходимо подключить виртуальный репозиторий nodejs, соответсвующей версии:
sudo dnf -y module enable nodejs:20
и установить пакет:
sudo dnf -y install luxms-databoring
Для DEB-based ОС:
sudo apt -y install luxms-databoring
Для Alt Linux:
sudo apt-get -y install luxms-databoring
- Параметры приложения настраиваются в конфигурационном файле сервиса:
- Для RPM-based -
/etc/sysconfig/luxms-databoring
, - Для DEB-based ОС -
/etc/default/luxms-databoring
Конфигурационные файлы имеют комментарии, кратко описывающие их назначение. В случае размещения компонентов luxmsbi-datagate
и/или luxmsbi-importer
и/или luxmsbi-web
не на том же хосте, где располагается компонент luxms-databoring
необходимо указать IP-адрес или DNS-имя для соответствующего компонента.
# RSocket endpoint of Datagate service. In format [IP|DNS]:[PORT].
# If empty set default to "127.0.0.1:7200"
DATAGATE_HOST="127.0.0.1:7200"
# RSocket endpoint of Importer service. In format [IP|DNS]:[PORT].
# If empty set default to "127.0.0.1:7192"
IMPORTER_HOST="127.0.0.1:7192"
# Luxms BI API HTTP Proxy In format [IP|DNS]:[PORT].
# If empty set defualt to "http://127.0.0.1/"
LUXMSBI_HTTP_API_URL="http://127.0.0.1/"
# Master JWT for access to DB API
# Must be defined
DATABORING_MASTER_JWT=
# Setting to enable or disable thread logging.
# Possible values: true or false. false - by default
#DATABORING_LOGGING=false
# Setting to enable or disable the MULTITENANT mode for running separate instances for each user.
# Possible values: true or false. true - by default
#DATABORING_MULTITENANT=true
# Nats server for using in cluster mode.
# Example: DATABORING_NATS_SERVER=127.0.0.1:4222 Empty by default
#DATABORING_NATS_SERVER=
# Minimum free OS memory in MB to run a new instance for a new Data Boring user if DATABORING_MULTITENANT=true.
# Default is 300 MB
#DATABORING_MIN_MEMORY_NEW_INSTANCE=300
NODE_OPTIONS=""
До запуска сервиса luxms-databoryng.service
необходимо определить в этом файле переменную окружения DATABORING_MASTER_JWT.
Значение токена можно получить в разделе “Административание” - “API токены” Web-приложения Luxms BI.
Название токена, значение которого нужно использовать, DataBoring Master JWT
- При развертывании компонента на выделенном узле необходимо обеспечить сетевую доступность:
Для RPM-based ОС:
sudo firewall-cmd --add-port=1880/tcp
sudo firewall-cmd --runtime-to-permanent
Для DEB-based ОС:
sudo ufw allow 1880/tcp
- Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxms-databoring --now
- В состав пакета входит конфигурационный файл Web-сервера NGinx
/opt/luxmsbi/conf/nginx/conf.d/luxms-databoring.location
:
location /databoring/ {
#access_log /var/log/luxmsbi/nginx/boring.access.log;
error_log /var/log/luxmsbi/nginx/boring.error.log;
proxy_http_version 1.1;
proxy_send_timeout 300s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:1880/;
}
Конфигурационный файл создается как symlink с поставляемого с пакетом файла /usr/share/luxms-databoring/luxms-databoring.location
.
В случае размещения luxms-databoring
на выделенном хосте необходимо перенести этот конфигурационный файл на хост с установленным компонентом luxmsbi-web
и заменить IP-адрес в директиве proxy_pass.
Установка пакета с Документацией
Настоящая документация поставляется в виде пакета luxmsbi-docs
для его установки необходимо выполнить команду:
Для RPM-based ОС:
sudo dnf -y install luxmsbi-docs
Для DEB-based ОС:
sudo apt -y install luxmsbi-docs
Для Alt Linux:
sudo apt-get -y install luxmsbi-docs
Пакет поставляет дополнительный конфигурационный файл для Web-приложения Luxms BI. После первичной установки пакета, необходимо выполнить перезапуск сервиса^
systemctl restart luxmsbi-web
После выполнения этих действий Вы можете найти документацию по ссылке:
http(s)://<DNS-имя/IP-адрес Вашего сервера>/docs/
Проверка корректности установки и настройки
Для проверки корректности установки компонентов и их параметров рекомендуем следующий набор команд:
1) Проверка работоспособности сервисов - позволит Вам увидеть проблемный сервис
systemctl list-units | grep 'nats\|luxms\|keydb\|postgres'
2) Проверка ошибки конкретного сервиса journalctl -u <имя сервиса>
journalctl -u luxmsbi-appserver.service
Aug 03 05:24:25 bi9-el8.ci-test.luxms.com systemd[1]: Started LuxmsBI AppServer.
Aug 03 05:24:25 bi9-el8.ci-test.luxms.com luxmsbi-appserver[19579]: Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true
Aug 03 05:24:26 bi9-el8.ci-test.luxms.com luxmsbi-appserver[19579]: Exception in thread "main" java.lang.Error: java.io.FileNotFoundException: /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-2.el8.x86_64/lib/tzdb.dat (No such file or directory)
Настройка параметров компонентов с учетом ресурсов
Настройка параметров компонентов зависит от ресурсов аппаратных или виртуальных хостов.
Настройка Java-Heap
При работе с большим объемом при загрузке данных, через ETL или с использованием импорта файла, есть необходимость в увеличении объема оперативной памяти для обработки данных.
Этот выставляется в виде параметра JVM для пакетов luxmsbi-appserver-mono и luxmsbi-datagate, в зависимости от используемого пакета.
В этом случае производится настройка одного из двух конфигурационных файлов:
/etc/{sysconfig,default}/luxmsbi-appserver
/etc/{sysconfig,default}/luxmsbi-datagate
# Options for JVM
JAVA_TOOL_OPTIONS="-Djava.net.preferIPv4Stack=true -Xmx16G"
Настройка параметров соединения с БД-метаданных
База метаданных не самый нагруженный компонент Luxms BI, если она не используется для хранения данных визуализации. Но при большом количестве пользователей возникает необходимость увеличения количества соединений для БД.
Главное обеспечить количество входящих соединение в БД Метаданных не выше количества соединений, предоставляемых Базой данных. Учитывайте также соединения служб мониторинга.
В первую очередь производится тюнинг параметров БД, исходя из ожидаемой нагрузки. Для продуктовой схемы с вышеуказанными параметрами предлагается установка следующих параметров:
1) Установите параметр max_connections в значение 400. Для изменения параметра необходимо использование команды:
patronictl -c /etc/patroni/patroni.yml edit-config
2) После установки параметра необходимо перезапустить узлы БД командой:
patronictl -c /etc/patroni/patroni.yml restart
Во вторую очередь производится тюнинг параметров Web-приложения luxmsbi-web:
1) В конфигурационном файле /opt/luxmsbi/conf/nginx/nginx.conf
worker_processes 8;
2) В конфигурационном файле /opt/luxmsbi/conf/nginx/lua/bicfg.lua
dbpool_size=20,
В третью очередь определяются размеры пула соединений к БД из Java-приложений.
Например:
1) В конфигурационном файле /opt/luxmsbi/conf/appserver/application.properties
luxmsbi.datasource.max-pool-size=10
3) В конфигурационном файле /opt/luxmsbi/conf/datagate/application.properties
luxmsbi.datasource.max-pool-size=25
4) В конфигурационном файле /opt/luxmsbi/conf/importer/application.properties
luxmsbi.datasource.max-pool-size=5