Перейти к основному содержимому

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:

  1. Установка пакета метаданных при работающем экземпляре БД выполнит донастройку конфигурационных файлов и создаст БД для системы 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, указывающая на нестандартное расположение файлов БД.

  1. Выполнить в ручном режиме, используя поставляемый с пакетом luxmsbi-pg скрипт:
su - postgres -c '/usr/share/luxmsbi-pg/luxmsbi-setupdb.sh /usr/share/luxmsbi-pg/luxmsbi-dump.sql.gz'
  1. Корректировка ограничений подключения к БД выполняется при установке 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.

  1. Установка:

Для RPM-based ОС:

sudo dnf -y install keydb

Для DEB-based ОС:

sudo apt -y install keydb-server

Для Alt Linux:

sudo apt-get -y install keydb
  1. При установке компонентов 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'
  1. Необходима настройка автоматического запуска сервера.

Для 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

Для установки необходимо выполнить следующую последовательность действий:

  1. Установить пакет 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
  1. Откорректировать конфигурационные файлы приложений:

Для 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.
}
  1. Еще один ключевой файл конфигурации 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 на едином хосте, устанавливаемая по умолчанию.
В случае более сложной инфраструктуры, с разнесением сервисов по выделенным хостам, этот конфигурационный файл должен быть откорректирован.

  1. При использовании 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;
}
  1. При использовании нескольких инстансов компонентов, без регистрации сервисов в 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;
}
  1. Выполнить настройку автоматического запуска 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.

  1. Установка 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
  1. Настройки источников событий, используемых для трансляции в браузер пользователя, производятся в конфигурационном файле /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"
}
  1. Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxmsbi-bins --now

Установка NATS-Server

Компонент NATS-Server предоставляет распределенное объектное хранилище для компонентов Luxms BI.

  1. При установке одно-узлового 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
  1. При установке создается конфигурационный файл по умолчанию /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

  1. И выполнить настройку автоматического запуска 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 версии:

JRE/JDK 17 на текущий момент поставляются только со следующими ОС:

  • Astra Linux Special edition 1.8
  • RedOS 8
  • Rocky 8
  • Rocky 9.

Для отечественных ОС, выпущенных ранее, существуют несколько других вариантов.

  1. Мы предоставляем свою сборку OpenJDK 17 JRE, доступные в наших репозиториях для ОС RedOS7 и Astra Linux SE 1.7:
  • не требует отдельной установки, автоматически устанавливается как зависимость;
  • не требует настройка конфигурации Java-компонентов Luxms BI.
к сведению

Наша сборка включает в себя ограниченный состав модулей, достаточный для работы приложения.
Но не позволяющий проводить отладку и разработку.
Наша сборка выполнена на основе Oracle JDK 17 с использованием стандартной утилиты jlink.

  1. Oracle JDK 17
  • требует отдельной установки;
  • после установки требуется настройка конфигурации Java-компонентов Luxms BI.
  1. 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.
  1. Установка 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
  1. Настройка используемого 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

  1. Параметры приложения настраиваются в конфигурационном файле /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
  1. Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxmsbi-appserver --now
  1. Для работы функционала генерации отчетов в 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
  1. При установке консолидированного luxmsbi-appserver из пакета luxmsbi-appserver-mono необходимо внести корректировку в конфигурацию системы, через Web-приложение:
  • параметер datagate.url.prefix
datagate-url-prefix.png

Установка 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.
  1. Установка приложения:

Для 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
  1. Настройка используемого 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

  1. Параметры приложения настраиваются в конфигурационном файле /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
  1. При развертывании компонента на выделенном узле необходимо обеспечить сетевую доступность:

Для RPM-based ОС:

sudo firewall-cmd --add-service=luxmsbi-datagate
sudo firewall-cmd --runtime-to-permanent

Для DEB-based ОС:

sudo ufw allow Luxmsbi-Datagate
  1. Выполнить настройку автоматического запуска 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.
  1. Установка приложения:

Для 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
  1. Настройка используемого 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"
  1. Параметры приложения настраиваются в конфигурационном файле /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
  1. При развертывании компонента на выделенном узле необходимо обеспечить сетевую доступность:

Для RPM-based ОС:

sudo firewall-cmd --add-service=luxmsbi-importer
sudo firewall-cmd --runtime-to-permanent

Для DEB-based ОС:

sudo ufw allow Luxmsbi-Importer
  1. Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxmsbi-importer --now

Установка Luxms Databoring

Компонент luxms-databoring требует взаимодействия с:

  • Luxmsbi-Datagate компонентом;
  • Luxmsbi-Importer компонентом.
  1. Установка приложения:

Для 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
  1. Параметры приложения настраиваются в конфигурационном файле сервиса:
  • Для 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

Экран API токены
  1. При развертывании компонента на выделенном узле необходимо обеспечить сетевую доступность:

Для RPM-based ОС:

sudo firewall-cmd --add-port=1880/tcp
sudo firewall-cmd --runtime-to-permanent

Для DEB-based ОС:

sudo ufw allow 1880/tcp
  1. Выполнить настройку автоматического запуска systemd сервиса:
sudo systemctl enable luxms-databoring --now
  1. В состав пакета входит конфигурационный файл 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