В этой статье:
Шаг 1. Проверьте системные требования
Шаг 2. Подготовьте серверную часть СУБД
Шаг 3. Установите клиентскую часть СУБД
Шаг 6. Создайте репозиторий метаданных
Шаг 7. Создайте служебного пользователя подсистемы безопасности
Шаг 8. Установите серверную часть веб-приложения
Шаг 9. Настройте конфигурацию веб-приложения на веб-сервере
Шаг 10. Проверьте работу BI-сервера
Шаг 11. Запустите веб-приложение
Для работы с веб-приложением должна быть сформирована система с использованием программного обеспечения «Форсайт. Аналитическая платформа», которая предполагает наличие:
клиентских компьютеров с доступом к сети, в которой расположен веб-сервер;
веб-сервера, на котором установлена серверная часть веб-приложения;
BI-сервера, на котором установлен веб-сервис PP.SOM;
сервера лицензий, используемого для активации продукта «Форсайт. Аналитическая платформа» сетевой лицензией и контроля количества одновременно работающих пользователей;
сервера приложений, используемого для выполнения отложенных задач;
сервера баз данных, на котором установлена одна из поддерживаемых версий СУБД PostgreSQL.
Примечание. BI-сервер, сервер приложений и веб-приложение могут располагаться на одном физическом сервере. При выполнении ресурсоёмких задач располагайте сервер приложений и BI-сервер на различных физических серверах.
В руководстве представлена установка веб-приложения «Форсайт. Аналитическая платформа» с использованием СУБД PostgreSQL для следующих версий ОС семейства Linux:
Astra Linux SE 1.7;
Ubuntu 18.04;
CentOS 7;
РЕД ОС 7.3;
Rocky Linux 8;
ALT Linux 10.
Информацию по установке на другие операционные системы можно найти в справочной системе.
В процессе установки BI-сервера (шаг 4) и серверной части веб-приложения (шаг 8) используются дистрибутивы, входящие в комплект поставки продукта «Форсайт. Аналитическая платформа»:
Версия ОС семейства Linux | Дистрибутивы для установки BI-сервера | Дистрибутивы для установки веб-сервера |
Astra Linux SE 1.7 | foresight-fp10.x-biserver_10.1.<номер сборки>~astra~1.7_amd64.deb | foresight-fp10.x-webserver_10.1.<номер сборки>~astra~1.7_all.deb |
Ubuntu 18.04 | foresight-fp10.x-biserver_10.1.<номер сборки>~ubuntu~18.04_amd64.deb | foresight-fp10.x-webserver_10.1.<номер сборки>~ubuntu~18.04_all.deb |
CentOS 7 | foresight-fp10.x-biserver_10.1.<номер сборки>.el7.x86_64.rpm | foresight-fp10.x-webserver_10.1.<номер сборки>.el7.noarch.rpm |
РЕД ОС 7.3 | foresight-fp10.x-biserver_10.1.<номер сборки>.redos7.3.x86_64.rpm | foresight-fp10.x-webserver_10.1.<номер сборки>.redos7.3.noarch.rpm |
Rocky Linux 8 | foresight-fp10.x-biserver_10.1.<номер сборки>.rocky8.x86_64.rpm | foresight-fp10.x-webserver_10.1.<номер сборки>.rocky8.noarch.rpm |
ALT Linux 10 | foresight-fp10.x-biserver_10.1.<номер сборки>.alt10.x86_64.rpm | foresight-fp10.x-webserver_10.1.<номер сборки>.alt10.noarch.rpm |
После установки веб-приложения будут созданы следующие каталоги:
для BI-cервера:
/opt/foresight/fp10.x-biserver. Основные файлы BI-сервера;
/etc/opt/foresight/fp10.x-biserver. Дополнительный конфигурационный файл экземпляра BI-сервера envvars для задания переменных окружения Apache HTTP Server;
/etc/apache2-fp10.x. Конфигурационные файлы экземпляра Apache HTTP Server с BI-сервером для Astra Linux, Ubuntu;
/etc/httpd-fp10.x. Конфигурационные файлы экземпляра Apache HTTP Server с BI-сервером для CentOS, РЕД ОС, Rocky Linux;
/etc/httpd2-fp10.x. Конфигурационные файлы экземпляра Apache HTTP Server с BI-сервером для ALT Linux;
для веб-сервера:
/opt/foresight/fp10.x-webserver. Основные файлы веб-сервера;
/etc/opt/foresight/fp10.x-webserver. Дополнительный конфигурационный файл экземпляра веб-сервера envvars для задания переменных окружения Apache HTTP Server;
/etc/apache2-fp10.x-web. Конфигурационные файлы экземпляра Apache HTTP Server с веб-сервером для Astra Linux, Ubuntu;
/etc/httpd-fp10.x-web. Конфигурационные файлы экземпляра Apache HTTP Server с веб-сервером для CentOS, РЕД ОС, Rocky Linux;
/etc/httpd2-fp10.x-web. Конфигурационные файлы экземпляра Apache HTTP Server с веб-сервером для ALT Linux.
Убедитесь в соблюдении системных требований для:
Также ознакомьтесь с требованиями к настройкам операционной системы и поддерживаемыми версиями СУБД PostgreSQL.
Подготовка заключается в создании отдельной базы данных и пользователя, который будет являться администратором этой базы данных.
После выполнения всех действий по подготовке СУБД рекомендуется проверить подключение пользователя к созданной базе данных средствами самой СУБД. Если в дальнейшем возникнут проблемы подключения к репозиторию, то также может потребоваться проверка прав пользователя и дополнительная настройка на уровне СУБД.
Процедура подготовки сервера PostgreSQL производится администратором СУБД.
Важно. Для обеспечения безопасности системы перед подготовкой сервера PostgreSQL проверьте настройки параметра lc_messages в конфигурационном файле postgresql.conf. Язык сообщений PostgreSQL должен совпадать с языковыми настройками операционной системы.
Для подготовки сервера PostgreSQL выполните скрипты любым из доступных способов, например, с помощью приложения pgAdmin или консоли psql. При выполнении скриптов учитывайте следующие особенности:
параметры USER_NAME, DATABASE_NAME и SCHEMA_NAME должны быть прописаны в верхнем регистре;
наименования параметров регистрозависимые и должны быть указаны в кавычках. Если кавычки пропущены, то при выполнении скрипта в СУБД наименования параметров будут преобразованы к нижнему регистру;
выполнение скриптов должно производиться администратором СУБД с привилегией SUPERUSER, если при подготовке сервера PostgreSQL используется консоль.
Для создания пользователя базы данных выполните скрипт:
CREATE ROLE "USER_NAME" LOGIN ENCRYPTED PASSWORD 'USER_PASSWORD' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
Где:
USER_NAME. Имя создаваемого пользователя;
USER_PASSWORD. Пароль создаваемого пользователя.
Для создания базы данных выполните скрипт:
CREATE DATABASE "DATABASE_NAME"
WITH OWNER = "USER_NAME"
ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = default
LC_CTYPE = default CONNECTION LIMIT = -1;
ALTER DATABASE "DATABASE_NAME"
SET lo_compat_privileges = 'on';
GRANT ALL ON DATABASE "DATABASE_NAME"
TO "USER_NAME";
Где:
USER_NAME. Имя пользователя, созданного ранее;
DATABASE_NAME. Идентификатор создаваемой базы данных.
По умолчанию используется схема public. При работе со схемой public учитывайте особенности, приведенные в разделе «Особенности работы с СУБД PostgreSQL».
Для создания пользовательской схемы в текущей базе данных выполните скрипт:
CREATE SCHEMA "SCHEMA_NAME" AUTHORIZATION "USER_NAME"
Где:
USER_NAME. Имя пользователя, созданного ранее;
SCHEMA_NAME. Идентификатор пользовательской схемы.
После выполнения действий будет создана пользовательская схема. Созданный на первом этапе пользователь будет являться владельцем схемы.
Для использования пользовательской схемы в качестве схемы по умолчанию выполните скрипт:
SET search_path TO "SCHEMA_NAME";
После выполнения действий вместо схемы public по умолчанию будет использоваться пользовательская схема.
Примечание. Для получения подробной информации о работе с пользовательскими схемами обратитесь к документации PostgreSQL.
Для хранения многобайтовой информации в PostgreSQL используется тип данных Lo. По умолчанию, после создания базы данных, поддержка работы с данным типом отключена. Для включения поддержки типа данных Lo выполните скрипт:
CREATE FUNCTION loin (cstring) RETURNS lo AS
'oidin' LANGUAGE internal IMMUTABLE STRICT;
CREATE FUNCTION loout (lo) RETURNS cstring AS 'oidout' LANGUAGE internal
IMMUTABLE STRICT;
CREATE FUNCTION lorecv (internal) RETURNS lo AS 'oidrecv' LANGUAGE
internal IMMUTABLE STRICT;
CREATE FUNCTION losend (lo) RETURNS bytea AS 'oidsend' LANGUAGE internal
IMMUTABLE STRICT;
CREATE TYPE lo (INPUT = loin, OUTPUT = loout, RECEIVE = lorecv, SEND
= losend, INTERNALLENGTH = 4, PASSEDBYVALUE);
CREATE CAST (lo AS oid) WITHOUT FUNCTION AS IMPLICIT;
CREATE CAST (oid AS lo) WITHOUT FUNCTION AS IMPLICIT;
CREATE OR REPLACE FUNCTION lo_manage() RETURNS pg_catalog.trigger AS
'$libdir/lo' LANGUAGE C;
При добавлении доменных групп в менеджере безопасности подготовьте сервер PostgreSQL для их поддержки.
Примечание. Поддержка доменных групп в PostgreSQL доступна, если на уровне СУБД содержатся группы в виде ролей и пользователи, входящие в эти роли.
Для поддержки доменных групп в PostgreSQL:
Соберите скрипт синхронизации пользователей и групп из Active Directory или Astra Linux Directory с помощью системы управления версиями Git.
Запустите командную строку и выполните команды:
Astra Linux, Ubuntu:
apt-get install ruby libpq-dev git make gcc libffi-dev
git clone https://github.com/afsight/pg-ldap-sync.git
cd pg-ldap-sync
gem install bundler -v 1.16
bundle _1.16_ install
bundle install
bundle exec rake install
CentOS, РЕД ОС, Rocky Linux:
dnf install ruby libpq-devel git make gcc libffi-devel ruby-devel redhat-rpm-config
git clone https://github.com/afsight/pg-ldap-sync.git
cd pg-ldap-sync
gem install bundler -v 1.16
bundle _1.16_ install
bundle install
bundle exec rake install
ALT Linux:
apt-get install ruby libpq-devel git make gcc5 libffi-devel ruby-tools postgresql-devel libruby-devel
git clone https://github.com/afsight/pg-ldap-sync.git
cd pg-ldap-sync
gem install bundler -v 1.16
bundle _1.16_ install
bundle install
bundle exec rake install
После выполнения действий будет добавлена папка pg-ldap-sync с последними исходными файлами скрипта из Git и выполнена сборка скрипта.
Создайте файл конфигурации lsync.yml с настройками, указанными в примере:
# With this sample
config the distinction between LDAP-synchronized
# groups/users from is done by the membership to ldap_user and
# ldap_group. These two roles has to be defined manally before
# pg_ldap_sync can run.
# Параметры соединения с сервером LDAP на примере AD. В username пользователь
у которого есть права на подключение (практически любой доменный пользователь
и пароль)
# see also: http://net-ldap.rubyforge.org/Net/LDAP.html#method-c-new
ldap_connection:
host: domain-controller.domain.com
port: 389
auth:
method: :simple
username: username@domain.com
password: password
# encryption:
# method: :simple_tls
# Настройки поиска пользователей, в данном случае пользователи берутся
из раздела OU=Users, DC=domain, DC=com
ldap_users:
base: OU=users,DC=domain,DC=com
# LDAP filter (according to RFC 2254)
# defines to users in LDAP to be synchronized
# далее идет фильтр вхождений в раздел, ищутся только
собственно пользователи по классам объектов,также можно указать выборку
по другим атрибутам
filter: (&(objectClass=person)(objectClass=organizationalPerson)(givenName=*)(sn=*)(sAMAccountName=*))
# this attribute is used as PG role name
# задается атрибут из которого будет формироваться
имя пользователя в Postgres обычно sAMAccountName
name_attribute: sn
# lowercase name for use as PG role name
# настройка перевода имени пользователя в нижний
регистр
lowercase_name: false
# uppercase name for use as PG role name
# настройка перевода имени пользователя в верхний
регистр (предпочтительно для нормальной работы с платформой)
uppercase_name: false
# Search parameters for LDAP groups which should be synchronized
# Всё то же самое для групп
ldap_groups:
base: OU=users,DC=domain,DC=com
filter: (cn=domain.*)
# this attribute is used as PG role name
name_attribute: cn
# lowercase name for use as PG role name
lowercase_name: false
# uppercase name for use as PG role name
uppercase_name: false
# this attribute must reference to all member
DN's of the given group
member_attribute: member
# True if use Astra Linux Domain
ald_domain: false
# Connection parameters to PostgreSQL server
# Параметры подключения к серверу PostgreSQL
# see also: http://rubydoc.info/gems/pg/PG/Connection#initialize-instance_method
pg_connection:
host: database_host
dbname: postgres
user: postgres
password: postgres
pg_users:
# Filter for identifying LDAP generated users
in the database.
# Фильтр пользователей для создания и проверки,
нужна отдельная роль, в данном случае ldap_users,пользователи в ней
будут сравниваться с тем что пришло поиском и удаляться или добавляться
в случае различий
# It's the WHERE-condition to "SELECT
rolname, oid FROM pg_roles"
filter: oid IN (SELECT pam.member FROM pg_auth_members
pam JOIN pg_roles pr ON pr.oid=pam.roleid WHERE pr.rolname='ldap_users')
# Options for CREATE RULE statements
create_options: LOGIN IN ROLE ldap_users
pg_groups:
# Filter for identifying LDAP generated groups
in the database.
# То же самое для групп
# It's the WHERE-condition to "SELECT
rolname, oid FROM pg_roles"
filter: oid IN (SELECT pam.member FROM pg_auth_members
pam JOIN pg_roles pr ON pr.oid=pam.roleid WHERE pr.rolname='ldap_groups')
# Options for CREATE RULE statements
create_options: NOLOGIN IN ROLE ldap_groups
grant_options:
Примечание. Параметр ald_domain используется для поддержки доменных групп в Astra Linux Directory.
Проверьте валидность созданного файла lsync.yml.
Выполните скрипт:
для одноразовой синхронизации пользователей и групп выполните скрипт с помощью команды:
/usr/local/bin/pg_ldap_sync -c <полный путь до файла конфигурации>/lsync.yml
После выполнения действия скрипт будет запущен и синхронизация выполнится один раз.
для периодической синхронизации пользователей и групп настройте автоматический запуск скрипта с помощью утилиты Cron (Command Run ON) - система для автоматического запуска программ и скриптов на сервере в определённое время:
Выполните команду для открытия и редактирования текстового редактора, в котором содержится список выполняемых команд:
crontab -e
Выполните команду для добавления строки в текстовый редактор, при выполнении которой будет загружаться файл конфигурации lsync.yml:
*/<количество минут> * * * * /usr/local/bin/pg_ldap_sync -c <полный путь до файла конфигурации>/lsync.yml
Дополнительно добавьте пустую строку.
Сохраните изменения в текстовом редакторе.
После выполнения действий скрипт будет запускаться с указанной периодичностью, например, каждые 5 минут.
Распределите привилегии между доменными группами в менеджере безопасности. После чего для пользователей соответствующих групп будут раздаваться гранты на таблицы репозитория.
После выполнения действий для пользователей, входящих в добавленные доменные группы, будет доступно подключение и работа с репозиторием.
В Prognoz Platform версии 8.1 был исправлен скрипт, связанный с регистрацией типа данных Lo. Если репозиторий на базе СУБД PostgreSQL (версии 9.3 или выше) был создан в более ранних версиях Prognoz Platform, то его необходимо обновить, выполнив следующий скрипт:
CREATE OR REPLACE FUNCTION losend (lo) RETURNS bytea AS 'oidsend' LANGUAGE internal IMMUTABLE STRICT;
Если при работе используется схема по умолчанию public, то у всех пользователей репозитория будет возможность создания таблиц. Это может привести к проблемам обновления пользователей и разграничению прав доступа у пользователей, которые являются администраторами репозитория. Для избежания возможных ошибок необходимо создавать все объекты только под пользователем, который создан на первом шаге и является владельцем и администратором схемы - ADMIN.
Конфигурация по умолчанию для серверов PostgreSQL включает в себя функцию автоочистки - освобождение пространства, занимаемого удалёнными из таблиц данными, с помощью SQL-команды VACUUM. Также производится обновление статистики, которая используется планировщиком для выбора способа выполнения запросов. Если предполагается интенсивная работа по изменению данных в таблицах, то рекомендуется настроить конфигурацию таким образом, чтобы автоочистка производилась в периоды малых нагрузок на сервер (ночью, в выходные). Настройку можно производить в соответствии с документацией, доступной на сайте разработчика.
Для установки клиентской части СУБД PostgreSQL выполните команду:
Astra Linux, Ubuntu:
sudo apt-get install postgresql-client
CentOS, Rocky Linux:
sudo yum install postgresql postgresql-libs
РЕД ОС:
sudo dnf install postgresql postgresql-libs
ALT Linux:
sudo apt-get install postgresql14
После выполнения действия будет установлен драйвер PostgreSQL, с помощью которого «Форсайт. Аналитическая платформа» взаимодействует с сервером баз данных.
Альтернативным вариантом является установка клиента Postgres Pro. Инструкция по установке доступна на сайте производителя.
Если осуществляется ручная установка BI-сервера из архива или установка клиентской части СУБД выполнена после установки BI-сервера, то создайте символьную ссылку с помощью команды:
Astra Linux, Ubuntu:
sudo ln -s /usr/lib/x86_64-linux-gnu/libpq.so.5 /usr/lib/x86_64-linux-gnu/libpq.so
CentOS, РЕД ОС, Rocky Linux, ALT Linux:
sudo ln -s /usr/lib64/libpq.so.5 /usr/lib64/libpq.so
Для установки BI-сервера:
Убедитесь, что доступна сеть Интернет.
Обновите информацию о пакетах:
Astra Linux, Ubuntu, ALT Linux:
sudo apt-get update
CentOS, РЕД ОС, Rocky Linux:
sudo yum update
Скопируйте дистрибутив foresight-fp10.x-biserver*.deb/rpm из комплекта поставки в домашнюю директорию /home/<имя пользователя>. Наименование дистрибутива зависит от версии OC Linux.
При необходимости определите пользователя, от имени которого будет установлен BI-сервер:
whoami
Установите скопированный дистрибутив BI-сервера:
Astra Linux, Ubuntu:
sudo dpkg -i foresight-fp10.x-biserver*.deb
CentOS, Rocky Linux:
sudo yum localinstall foresight-fp10.x-biserver*.rpm
РЕД ОС:
sudo dnf install foresight-fp10.x-biserver*.rpm
ALT Linux:
sudo apt-get install -y foresight-fp10.x-biserver*.rpm
Установите недостающие зависимости для Astra Linux, Ubuntu:
sudo apt-get -f install
При необходимости повторно обновите информацию о пакетах.
Для корректной работы используйте актуальные библиотеки из системных репозиториев.
Примечание. Необходимые библиотеки содержатся в дистрибутиве BI-сервера и не требуют дополнительной установки. При установке недостающих библиотек отображается соответствующее сообщение.
Список библиотек для пакета fp10.x-biserver
В процессе установки будет:
создан новый экземпляр конфигурации Apache2;
включен MPM worker;
включен модуль fp10.x-biserver для загрузки mod_axis2;
созданы ссылки вида apachectl-fp10.x в директории /usr/sbin для управления экземпляром;
зарегистрирован и добавлен в автозагрузку сервис apache2-fp10.x для Astra Linux, Ubuntu, сервис httpd-fp10.x для CentOS, РЕД ОС, Rocky Linux, сервис httpd2-fp10.x для ALT Linux;
установлены файлы BI-сервера;
зарегистрирован и добавлен в автозагрузку сервис foresight-xvfb для запуска виртуального графического дисплея под номером 987. Сервис foresight-xvfb будет запущен автоматически.
Примечание. Для изменения версии BI-сервера достаточно установить поверх другую версию пакета. Файлы конфигурации будут сохранены, если в пакете не будет обновлена их версия.
В шагах 9 и 10 используются подстановки:
<BI-сервер>. IP-адрес или DNS-имя сервера, на котором установлен BI-сервер;
<номер порта>. Номер порта, по которому доступен BI-сервер. По умолчанию используется порт 8810.
Для просмотра необходимых портов используйте:
файл /etc/apache2-fp10.x/ports.conf для Astra Linux, Ubuntu;
файл /etc/httpd-fp10.x/conf/httpd-fp10.x.conf для CentOS, РЕД ОС, Rocky Linux;
файл /etc/httpd2-fp10.x/conf/ports-enabled/http-fp10.x.conf для ALT Linux.
Для определения IP-адреса сервера выполните команду:
ip address
Для определения DNS-имени сервера выполните команду:
hostname
Для отслеживания работы BI-сервера и фиксирования различных ошибок включите логирование системных сообщений при необходимости. Для этого в файле /etc/opt/foresight/fp10.x-biserver/envvars добавьте следующие строки:
PP_LOG=1
PP_LOGTIME=1
По умолчанию системные сообщения записываются:
в файл /var/log/apache2-fp10.x/error.log для Astra Linux, Ubuntu;
в файл /var/log/httpd/error-fp10.x.log для CentOS, РЕД ОС, Rocky Linux;
в файл /var/log/httpd2/error-fp10.x.log для ALT Linux.
Для настройки BI-сервера:
Отключите режим AstraMode для экземпляра apache2-fp10.x в Astra Linux. Для этого замените строку «#AstraMode on» в конфигурационном файле /etc/apache2-fp10.x/apache2.conf на указанную:
AstraMode off
Запустите веб-сервер Apache2:
Astra Linux, Ubuntu:
sudo systemctl start apache2-fp10.x
CentOS, РЕД ОС, Rocky Linux:
sudo systemctl start httpd-fp10.x
ALT Linux:
sudo systemctl start httpd2-fp10.x
Создайте файл Metabases.xml для настройки подключения к репозиторию:
sudo nano /opt/foresight/fp10.x-biserver/bin/Metabases.xml
Заполните файл Metabases.xml:
<PP>
<Metabases>
<REPOSITORY_ID
Name="REPOSITORY_ID" Authentication="1" Driver="DRIVER_ID"
Package="STANDARDSECURITYPACKAGE" DebugMode="1">
<LogonData
DATABASE="DATABASE_NAME" SERVER="SERVER_DATABASE"/>
<Credentials
Authentication="1"/>
</REPOSITORY_ID>
</Metabases>
</PP>
Где:
REPOSITORY_ID. Уникальный идентификатор репозитория;
DRIVER_ID. Идентификатор драйвера СУБД у репозитория. Для PostgreSQL – POSTGRES;
DATABASE_NAME. Идентификатор базы данных, созданной при подготовке серверной части СУБД в шаге 2. Если репозиторий метаданных был создан на пользовательской схеме, то укажите идентификатор пользовательской схемы через точку после идентификатора базы данных. Например: DATABASE_NAME.SCHEMA_NAME;
SERVER_DATABASE. IP-адрес или DNS-имя, под которым зарегистрирован сервер базы данных.
В зависимости от настроек подключения к репозиторию формируется список репозиториев в окне регистрации для входа в систему.
При необходимости скачайте и распакуйте архив Metabases.zip с примером заполнения файла Metabases.xml.
Активируйте лицензию. Для этого в конце файла переменных окружения /etc/opt/foresight/fp10.x-biserver/envvars вставьте строку:
при использовании сетевой лицензии:
LSFORCEHOST=<имя сервера>
при использовании автономной лицензии:
LSFORCEHOST=NO-NET
Раздайте права доступа для пользователя Apache2 на папку с установленным BI-сервером:
Astra Linux, Ubuntu:
sudo chown -R www-data:www-data /opt/foresight/fp10.x-biserver
CentOS, РЕД ОС, Rocky Linux:
sudo chown -R apache:apache /opt/foresight/fp10.x-biserver
ALT Linux:
sudo chown -R apache2:apache2 /opt/foresight/fp10.x-biserver
Перезапустите сервис BI-сервера:
Astra Linux, Ubuntu:
sudo systemctl restart apache2-fp10.x
CentOS, РЕД ОС, Rocky Linux:
sudo systemctl restart httpd-fp10.x
ALT Linux:
sudo systemctl restart httpd2-fp10.x
Установленный BI-сервер будет работать в фоновом режиме как отдельный сервис Linux. Экземпляр Apache2 с BI-сервером по умолчанию будет запускаться на порту 8810. Для просмотра необходимых портов используйте:
файл /etc/apache2-fp10.x/ports.conf для Astra Linux, Ubuntu;
файл /etc/httpd-fp10.x/conf/httpd-fp10.x.conf для CentOS, РЕД ОС, Rocky Linux;
файл /etc/httpd2-fp10.x/conf/ports-enabled/http-fp10.x.conf для ALT Linux.
Для создания репозитория метаданных на сервере PostgreSQL:
Измените текущий каталог на папку установки BI-сервера:
cd /opt/foresight/fp10.x-biserver/bin
Установите дополнительный пакет xvfb-run в ALT Linux:
sudo apt-get install xvfb-run
Запустите консольное приложение RepoManager с помощью скрипта RepoManager_start.sh с указанными параметрами:
./RepoManager_start.sh -ocreate-repo -tpostgres -sSERVER_DATABASE -pPORT -uUSER_NAME -wUSER_PASSWORD -dDATABASE_NAME -fresource
Где:
SERVER_DATABASE. IP-адрес или DNS-имя, под которым зарегистрирован сервер базы данных, указанный в шаге 5;
PORT. Порт сервера СУБД. Параметр является необязательным, если сервер СУБД доступен через порт 5432, используемый по умолчанию. Если порт по умолчанию был изменён, то укажите актуальный номер порта;
USER_NAME. Имя пользователя, созданного при подготовке серверной части СУБД в шаге 2;
USER_PASSWORD. Пароль пользователя, созданного при подготовке серверной части СУБД в шаге 2;
DATABASE_NAME. Идентификатор базы данных, созданной при подготовке серверной части СУБД в шаге 2.
После выполнения действия будет создан репозиторий метаданных в указанной СУБД на схеме по умолчанию public без учёта регистра.
Для создания репозитория на пользовательской схеме дополнительно используйте параметр –mSCHEMA_NAME, где SCHEMA_NAME – это идентификатор пользовательской схемы, созданной при подготовке серверной части СУБД в шаге 2.
Служебный пользователь подсистемы безопасности обеспечивает:
вход в систему;
корректную работу аудита и блокировку пользователей;
использование роли приложения при работе с СУБД;
использование функции хэширования паролей.
Для создания служебного пользователя подсистемы безопасности:
Важно. Создание служебного пользователя подсистемы безопасности выполняется только один раз. Если на сервере базы данных уже содержатся учётные данные служебного пользователя, то пропустите данный шаг.
Сохраните созданные учётные данные служебного пользователя на компьютере с установленным BI-сервером.
После выполнения действий будет создан служебный пользователь подсистемы безопасности на сервере базы данных и сохранён в соответствии с выбранным способом на компьютере с установленным BI-сервером.
Совет. Настоятельно рекомендуется отключить политику обязательной периодической смены пароля для учётной записи служебного пользователя подсистемы безопасности в СУБД.
Для создания учётных данных служебного пользователя запустите приложение PP.Util, которое расположено в папке установки BI-сервера /opt/foresight/fp10.x-biserver/bin, со следующими параметрами:
sudo /opt/Foresight/fp10.x-biserver/bin/PP.Util_start.sh /create_audit_user metabase_id login password audit_login audit_password db_login db_password
Где:
metabase_id. Идентификатор репозитория, указанный в шаге 5. Обязательный параметр;
login. Имя владельца схемы ADMIN для подключения к репозиторию. Обязательный параметр;
password. Пароль владельца схемы ADMIN для подключения к репозиторию. Обязательный параметр;
audit_login. Имя создаваемого служебного пользователя. Обязательный параметр;
Примечание. Имя служебного пользователя P4AUDIT недоступно для использования.
audit_password. Пароль создаваемого служебного пользователя. Обязательный параметр;
db_login. Имя пользователя базы данных, у которого есть привилегии на создание пользователей в СУБД. Необязательный параметр. Если имя пользователя не указано, то оно будет запрошено в интерактивном режиме;
db_password. Пароль пользователя базы данных, у которого есть привилегии на создание пользователей в СУБД. Необязательный параметр. Если пароль не указан, то он будет запрошен в интерактивном режиме.
Для сохранения созданных учётных данных служебного пользователя на компьютере с установленным BI-сервером:
Выполните предварительные действия для раздачи прав доступа к файлу settings.xml, в котором будут храниться учётные данные служебного пользователя. Файл добавляется автоматически после сохранения учётных данных служебного пользователя с помощью приложения PP.Util в созданный каталог /opt/foresight/fp10.x-cfg/.config/Foresight/Foresight Analytics Platform.
Запустите приложение PP.Util, которое расположено в папке установки BI-сервера /opt/foresight/fp10.x-biserver/bin, со следующими параметрами:
sudo /opt/Foresight/fp10.x-biserver/bin/PP.Util_start.sh /save_audit_creds /ALG enc_alg realm|/DC login password
Где:
enc_alg. Алгоритм шифрования, который будет применяться при шифровании учётных данных:
gos. По умолчанию. Используется шифрование алгоритмом GOST R 34.11-2012;
sim. Учётные данные сохраняются в открытом виде.
Важно. Для обеспечения безопасности в промышленной эксплуатации продукта «Форсайт. Аналитическая платформа» используйте значение gos.
Необязательный параметр. Если параметр не задан, то используется значение по умолчанию;
realm|/DC. Область действия учётных данных служебного пользователя. Выберите один из способов:
realm. Если в файле Metabases.xml, созданном в шаге 5, указано более одного сервера базы данных и учётные данные служебного пользователя должны отличаться для каждого из них, то задайте идентификатор вида «SERVER_DATABASE|TYPE» для конкретного сервера, где:
SERVER_DATABASE. IP-адрес или DNS-имя, под которым зарегистрирован сервер базы данных, указанный в шаге 5;
TYPE. Тип используемого драйвера - POSTGRES.
Например: "127.0.0.1|POSTGRES".
Примечание. Для избежания синтаксических ошибок значение задаётся в верхних кавычках.
/DC. Если в файле Metabases.xml, созданном в шаге 5, указан один или более серверов баз данных, но учётные данные служебного пользователя должны быть одинаковыми для всех серверов, то используйте данный параметр без указания дополнительных настроек.
Обязательный параметр;
login. Имя существующего служебного пользователя. Обязательный параметр;
password. Пароль существующего служебного пользователя. Необязательный параметр. Если пароль не указан, то он будет запрошен в интерактивном режиме.
После выполнения действий учётные данные служебного пользователя будут сохранены на компьютере с BI-сервером в файле settings.xml, расположенном по пути /opt/foresight/fp10.x-cfg/.config/Foresight/Foresight Analytics Platform.
Примеры использования команды:
sudo /opt/Foresight/fp10.x-biserver/bin/PP.Util_start.sh /save_audit_creds "10.30.210.10|POSTGRES" SERVICE_USER_NAME SERVICE_USER_PASSWORD
sudo /opt/Foresight/fp10.x-biserver/bin/PP.Util_start.sh /save_audit_creds /DC SERVICE_USER_NAME SERVICE_USER_PASSWORD
При сохранении созданных учётных данных служебного пользователя в файл settings.xml выполните предварительные действия для раздачи прав доступа к файлу:
Задайте переменную HOME в конце файла:
/etc/apache2-fp10.x/envvars для Debian-подобных дистрибутивов:
export HOME=/opt/foresight/fp10.x-cfg
/etc/sysconfig/httpd-fp10.x для RedHat-подобных дистрибутивов или /etc/sysconfig/httpd2-fp10.x для ALT Linux:
HOME=/opt/foresight/fp10.x-cfg
Создайте каталог для хранения учётных данных служебного пользователя с помощью команды:
sudo mkdir -p "/opt/foresight/fp10.x-cfg/.config/Foresight/Foresight Analytics Platform"
Назначьте владельцем каталога пользователя www-data с помощью команды:
sudo chown -R www-data:www-data "/opt/foresight/fp10.x-cfg/.config/Foresight/Foresight Analytics Platform"
Указанный пример применим для раздачи прав в Debian-подобных дистрибутивах. При работе в других дистрибутивах ОС Linux замените «www-data:www-data» на «apache:apache» для RedHat-подобных дистрибутивов или на «apache2:apache2» для ALT Linux.
Запустите утилиту PP.Util от имени пользователя www-data, apache или apache2, и сохраните учётные данные служебного пользователя. Пример команды:
sudo -u <имя пользователя> /opt/Foresight/fp10.x-biserver/bin/PP.Util_start.sh /sac "SERVER_DATABASE|POSTGRES" SERVICE_USER_NAME SERVICE_USER_PASSWORD
Где:
SERVER_DATABASE. IP-адрес или псевдоним, под которым зарегистрирован сервер базы данных;
SERVICE_USER_NAME. Имя служебного пользователя;
SERVICE_USER_PASSWORD. Пароль служебного пользователя.
Перезапустите сервер Apache2 в зависимости от операционной системы:
для Debian-подобных дистрибутивов:
sudo systemctl restart apache2-fp10.x
для RedHat-подобных дистрибутивов:
sudo systemctl restart httpd-fp10.x
для ALT Linux:
sudo systemctl restart httpd2-fp10.x
Для установки серверной части веб-приложения:
Убедитесь, что доступна сеть Интернет.
Скопируйте дистрибутив foresight-fp10.x-webserver*.deb/rpm из комплекта поставки в домашнюю директорию /home/<имя пользователя>. Наименование дистрибутива зависит от версии ОС Linux.
Установите скопированный дистрибутив веб-сервера:
Astra Linux, Ubuntu:
sudo dpkg -i foresight-fp10.x-webserver*.deb
CentOS, Rocky Linux:
sudo yum localinstall foresight-fp10.x-webserver*.rpm
РЕД ОС:
sudo dnf install foresight-fp10.x-webserver*.rpm
ALT Linux:
sudo apt-get install -y foresight-fp10.x-webserver*.rpm
Отключите режим AstraMode для экземпляра apache2-fp10.x-web в Astra Linux. Для этого замените строку «#AstraMode on» в конфигурационном файле /etc/apache2-fp10.x-web/apache2.conf на указанную:
AstraMode off
Список зависимостей для пакета fp10.x-webserver
Серверная часть веб-приложения будет установлена в папку /opt/foresight/fp10.x-webserver. При установке будет создан и настроен новый экземпляр apache2-fp10.x-web для Astra Linux, Ubuntu, httpd-fp10.x-web для CentOS, РЕД ОС, Rocky Linux, httpd2-fp10.x-web для ALT Linux. Веб-приложение будет настроено на работу с локальным BI-сервером по порту 8810. Адрес BI-сервера можно изменить в файле /opt/foresight/fp10.x-webserver/config/PP.xml. Само веб-приложение будет доступно на порте 8110.
В шагах 9 и 10 используется подстановка:
<веб-сервер>. IP-адрес или DNS-имя сервера, на котором установлена серверная часть веб-приложения.
Для определения IP-адреса сервера выполните команду:
ip address
Для определения DNS-имени сервера выполните команду:
hostname
Для настройки конфигурации веб-приложения используйте файлы:
PP.xml. Предназначен для настройки подключения к BI-серверу и указания параметров веб-приложения. Файл расположен в папке /opt/foresight/fp10.x-webserver/config;
config.json. Предназначен для открытия инструментов и объектов репозитория в веб-приложении. Файл расположен в папке /opt/foresight/fp10.x-webserver/r/config.
Для настройки подключения к BI-серверу и указания параметров веб-приложения:
Откройте файл PP.xml. По умолчанию в файле содержится следующая структура:
<?xml version="1.0"
encoding="utf-8"?>
<pp>
<proxy url="http://<текущий
IP-адрес>:8810/fpBI_App_v10.x/axis2/services/PP.SOM.Som"/>
<metabase id="" />
<serviceCM ParamsUrl="http://<текущий IP-адрес>:8110/fp10.x/r/#/settings"/>
<modules commonModulesUrl="http://<текущий IP-адрес>:8110/fp10.x/r/#">
</modules>
</pp>
Задайте параметры подключения к BI-серверу:
proxy/service. Укажите путь, по которому располагается BI-сервер, в качестве значения атрибута url:
http://<BI-сервер>:<номер порта>/fpBI_App_v10.x/axis2/services/PP.SOM.Som
Примечание. При использовании раздела <proxy> выполнение запросов будет происходить через серверную часть веб-приложения - PPService.axd. При использовании раздела <service> выполнение запросов будет происходить из браузера напрямую, в обход серверной части веб-приложения.
При использовании раздела <proxy> значение атрибута url не учитывается. Параметры подключения к BI-серверу содержатся в следующих файлах:
/etc/opt/foresight/fp10.x-webserver/envvars. В переменной PP_SOM автоматически задаётся путь, по которому располагается BI-сервер по умолчанию, при установке серверной части веб-приложения:
PP_SOM=http://localhost:8810/fpBI_App_v10.x/axis2/services/PP.SOM.Som
/etc/apache2-fp10.x-web/sites-available/webserver.conf в Astra Linux, Ubuntu, /etc/httpd-fp10.x-web/conf.d/00-virtualhost.conf в CentOS, РЕД ОС, Rocky Linux, /etc/httpd2-fp10.x-web/conf/sites-available/default.conf в ALT Linux. В параметре ProxyPass используется переменная PP_SOM и задан путь до PPService.axd:
ProxyPass /fp10.x/app/PPService.axd ${PP_SOM} retry=1 acquire=3000 timeout=6000 Keepalive=On
metabase. Укажите идентификатор репозитория, заданный в шаге 5, в качестве значения атрибута id;
serviceCM. Укажите адрес параметров репозитория в качестве значения атрибута ParamsUrl в формате:
http://<веб-сервер>:8110/fp10.x/r/#/settings
modules. Укажите адрес настроек веб-приложения, которые позволяют открывать инструменты и объекты репозитория, в качестве значения атрибута commonModulesUrl в формате:
http://<веб-сервер>:8110/fp10.x/r/#
Перезапустите веб-сервер:
Astra Linux, Ubuntu:
sudo
systemctl restart apache2-fp10.x
sudo systemctl restart apache2-fp10.x-web
CentOS, РЕД ОС, Rocky Linux:
sudo
systemctl restart httpd-fp10.x
sudo systemctl restart httpd-fp10.x-web
ALT Linux:
sudo
systemctl restart httpd2-fp10.x
sudo systemctl restart httpd2-fp10.x-web
Пример файла PP.xml:
<?xml version="1.0" encoding="utf-8"
?>
<pp>
<service url="http://10.7.0.100:8810/fpBI_App_v10.x/axis2/services/PP.SOM.Som"/>
<metabase id="WAREHOUSE" />
<serviceCM ParamsUrl="http://10.7.0.100:8110/fp10.x/r/#/settings"/>
<modules commonModulesUrl="http://10.7.0.100:8110/fp10.x/r/#">
</modules>
</pp>
Для открытия инструментов и объектов репозитория в веб-приложении:
Откройте файл config.json. По умолчанию в файле содержится следующая структура:
{
"targetRepo": "",
"serviceUrl": "http://<текущий
IP-адрес>:8110/fp10.x/app/PPService.axd",
"locale": "ru",
"locales": ["ru"],
"title": "FAP10",
"baseUrl": "http://<текущий
IP-адрес>:8110/fp10.x/"
}
Задайте поля в формате JSON:
targetRepo. Укажите идентификатор репозитория, заданный в шаге 5;
Примечание. Идентификатор репозитория, заданный в качестве атрибута id в разделе <metabase> файла PP.xml, должен совпадать с идентификатором репозитория, заданным в поле targetRepo.
serviceUrl. Укажите адрес веб-сервиса продукта «Форсайт. Аналитическая платформа»:
http://<веб-сервер>:8110/fp10.x/app/PPService.axd
locale. Укажите двухбуквенный код языка, который будет использоваться по умолчанию, если указан массив для переключения языка интерфейса;
locales. Укажите массив, содержащий двухбуквенные коды языков, на которые может быть переключён интерфейс:
ru. Русский язык;
en. Английский язык.
По умолчанию в массив включён только один элемент, соответствующий русскому языку. Если в массив добавить английский язык, то на стартовой странице, где осуществляется авторизация в репозитории, в нижней части будут доступны гиперссылки для переключения языка интерфейса;
title. Укажите заголовок веб-приложения при необходимости. По умолчанию поле принимает значение «FAP10»;
baseUrl. Укажите адрес веб-приложения:
http://<текущий IP-адрес>:8110/fp10.x/
Перезапустите веб-сервер:
Astra Linux, Ubuntu:
sudo
systemctl restart apache2-fp10.x
sudo systemctl restart apache2-fp10.x-web
CentOS, РЕД ОС, Rocky Linux:
sudo
systemctl restart httpd-fp10.x
sudo systemctl restart httpd-fp10.x-web
ALT Linux:
sudo
systemctl restart httpd2-fp10.x
sudo systemctl restart httpd2-fp10.x-web
Пример файла config.json:
{
"targetRepo": "WAREHOUSE",
"serviceUrl": "http://10.7.0.100:8110/fp10.x/app/PPService.axd",
"locale": "ru",
"locales": ["ru"],
"title": "Форсайт",
"baseUrl": "http://10.7.0.100:8110/fp10.x/"
}
Для проверки работы BI-сервера:
Скопируйте URL BI-сервера:
http://<BI-сервер>:<номер порта>/fpBI_App_v10.x/axis2/services/PP.SOM.Som
Где:
<BI-сервер>. IP-адрес или DNS-имя сервера, указанное в шаге 9;
<номер порта>. Номер порта, указанного в шаге 9. По умолчанию используется порт 8810.
Создайте две ссылки и откройте их в браузере:
добавьте к адресу «?wsdl», например:
http://localhost:8810/fpBI_App_v10.x/axis2/services/PP.SOM.Som?wsdl
удалите из адреса «PP.SOM.Som», например:
http://localhost:8810/fpBI_App_v10.x/axis2/services
Если в браузере отображается ошибка, то проверьте настройки BI-сервера и перезапустите его.
Если BI-сервер работает корректно, то будет открыт набор доступных операций для работы с веб-сервисом по первой ссылке в виде XML, по второй – в виде списка.
Для запуска веб-приложения откройте веб-браузер и в адресной строке укажите путь к веб-приложению:
http://<веб-сервер>:8110/fp10.x/r/#
После выполнения действия будет отображено окно регистрации. По умолчанию выполняется подключение к репозиторию, указанному в файле PP.xml в шаге 9. Для подключения к другому репозиторию укажите его идентификатор в адресной строке:
http://<веб-сервер>:8110/fp10.x/r/#/login?repo=<идентификатор репозитория>
Список доступных репозиториев формируется в файле Metabases.xml, созданном в шаге 5.
Примечание. При авторизации в веб-приложении могут возникнуть ошибки, связанные с ограничениями политики CORS.
Для решения проблемы и повышения безопасности системы при обмене данными между разными доменами настройте механизм CORS:
Откройте файл:
/etc/apache2-fp10.x/apache2.conf в Astra Linux, Ubuntu;
/etc/httpd-fp10.x/conf/httpd-fp10.x.conf в CentOS, РЕД ОС, Rocky Linux;
/etc/httpd2-fp10.x/conf/httpd2-fp10.x.conf в ALT Linux.
Задайте заголовки Origin, Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers:
<IfModule mod_headers.c>
SetEnvIf Origin ^(<разрешённый домен>)$ CORS_ALLOW_ORIGIN=$1
Header always set Access-Control-Allow-Origin %{CORS_ALLOW_ORIGIN}e env=CORS_ALLOW_ORIGIN
Header merge Vary "Origin"
Header always set Access-Control-Allow-Methods "POST, OPTIONS, <методы HTTP-запросов>"
Header always set Access-Control-Allow-Headers "get-ppbi-time, content-type, soapaction, accept-language, cache-control, Authorization, <заголовки HTTP-запросов>"
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
В подстановках:
<разрешённый домен>. Укажите домен, для которого будет разрешено получение запросов, в виде регулярного выражения. Например, регулярное выражение для домена example.com:
https?://(?:.+\.)?example\.com(?::\d{1,5})?
Данная настройка включает использование механизма CORS на родительском и дочерних ему доменах, а также динамически устанавливается на текущий протокол, домен, порт без использования правил перезаписи;
<методы HTTP-запросов>. Укажите дополнительные методы для доступа к ресурсу. Методы POST, OPTIONS являются обязательными;
<заголовки HTTP-запросов>. Укажите заголовки, которые используются ресурсом. Заголовки get-ppbi-time,content-type, soapaction, accept-language, cache-control, Authorization являются обязательными.
Примечание. Убедитесь, что указанные параметры механизма CORS соответствуют требованиям используемого ресурса.
Подключите модули headers, rewrite в Astra Linux, Ubuntu:
sudo a2enmod-fp10.x headers rewrite
Перезапустите сервис BI-сервера:
Astra Linux, Ubuntu:
sudo systemctl restart apache2-fp10.x
CentOS, РЕД ОС, Rocky Linux:
sudo systemctl restart httpd-fp10.x
ALT Linux:
sudo systemctl restart httpd2-fp10.x
В примере содержатся все части выделенных скриптов для СУБД PostgreSQL, приведённые в шагах 2, 6, 7:
скачайте и распакуйте архив Script_example_public.zip, если используется схема public;
скачайте и распакуйте архив Script_example_custom_scheme.zip, если используется пользовательская схема.
Для удаления файлов BI-сервера без удаления конфигурационных файлов выполните команду:
Astra Linux, Ubuntu, ALT Linux:
sudo apt-get remove fp10.x-biserver
CentOS, РЕД ОС, Rocky Linux:
sudo yum remove fp10.x-biserver
После выполнения действия будут удалены файлы BI-сервера. Файлы конфигурации, содержащиеся в папках /etc/apache2-fp10.x и /etc/opt/foresight/fp10.x-biserver, а также новые файлы, не входящие в пакет установки, в этих папках и /opt/foresight/fp10.x-biserver будут сохранены и могут использоваться при следующей установке дистрибутива.
Для полного удаления BI-сервера вместе с файлами конфигурации выполните команду:
Astra Linux, Ubuntu:
sudo apt-get purge fp10.x-biserver
CentOS, РЕД ОС, Rocky Linux:
sudo yum purge fp10.x-biserver
ALT Linux:
sudo apt-get remove --purge fp10.x-biserver
После выполнения действия будет полностью удалён BI-сервер вместе с файлами конфигурации. При этом новые файлы, не входящие в пакет установки, будут сохранены.
Для удаления файлов веб-сервера без удаления конфигурационных файлов выполните команду:
Astra Linux, Ubuntu, ALT Linux:
sudo apt-get remove fp10.x-webserver
CentOS, РЕД ОС, Rocky Linux:
sudo yum remove fp10.x-webserver
После выполнения действия будут удалены файлы веб-сервера. Файлы конфигурации, содержащиеся в папках /etc/apache2-fp10.x-web и /etc/opt/foresight/fp10.x-webserver, а также новые файлы, не входящие в пакет установки, в этих папках и /opt/foresight/fp10.x-webserver будут сохранены и могут использоваться при следующей установке дистрибутива.
Для полного удаления веб-сервера вместе с файлами конфигурации выполните команду:
Astra Linux, Ubuntu:
sudo apt-get purge fp10.x-webserver
CentOS, РЕД ОС, Rocky Linux:
sudo yum purge fp10.x-webserver
ALT Linux:
sudo apt-get remove --purge fp10.x-webserver
После выполнения действия будет полностью удалён веб-сервер вместе с файлами конфигурации. При этом новые файлы, не входящие в пакет установки, будут сохранены.
См. также:
Установка и настройка продукта «Форсайт. Аналитическая платформа»