Открытый контур на ALT Linux 10¶
Внимание
Дисклеймер.
Инструкция содержит примерный порядок действий по установке. Инструкция призвана описать логику действий по установке на простом, абстрактном примере. В зависимости от инфраструктуры сервера (кластера) и его конфигурации, вам могут понадобиться дополнительные или иные шаги.
Эта инструкция не должна восприниматься буквально, а использоваться в качестве основы действий.
Примечание
Ниже приведен пример установки системы на ALT Linux 10 в конфигурации "Сервер".
Предупреждение
Инструкция актуальна для установки Юниверс MDM версии 6.9 и старше, так как система перешла с Elasticsearch на Opensearch.
Предупреждение
В Юниверс MDM версии 6.11 было осуществлено обновление PostgreSQL до версии 16.3, в связи с этим теперь требуется обязательная установка расширения TimescaleDB для корректной работы с большими объемами данных. Перед установкой рекомендуется проверить совместимость вашей версии PostgreSQL и версии TimescaleDB.
Шаги установки:
Настройка ОС¶
Для удобства установки необходимо настроить на целевой машине демон SSH (в конфигурации "Сервер" данный компонент настроен по умолчанию).
Установка пакетов¶
Установка должна производиться пользователем с правами администратора (root):
su root
Выполните обновление системы после свежей установки:
apt-get update -y
Выполните установку Midnight Commander и Vim (опционально):
apt-get install mc vim -y
Установка OpenJDK¶
Выполните установку OpenJDK:
apt-get install java-11-openjdk -y
Проверьте установку пакета OpenJDK:
java -version
Корректный вывод должен выглядеть так:
openjdk version "11.0.22.1" 2024-01-16 OpenJDK Runtime Environment 18.9 (build 11.0.22.1+1) OpenJDK 64-Bit Server VM 18.9 (build 11.0.22.1+1, mixed mode, sharing)
Установка Opensearch¶
Рекомендуется устанавливать актуальную версию Opensearch 2.14.0.
Предварительно установите обязательные пакеты:
apt-get install wget dnf
Скачайте пакет Opensearch и установите его:
wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.14.0/opensearch-2.14.0-linux-x64.rpm && dnf install ./opensearch-2.14.0-linux-x64.rpm -y
Скопируйте плагины для Opensearch в удобное место на сервере, в примере это будет домашняя директория /home/user.
Перейдите в директорию /home/user, или ту, куда была произведена загрузка:
cd /home/user
Распакуйте архив:
unzip plugins.zip
Скопируйте содержимое распакованной директории hunspell в каталог настроек Opensearch:
cp -rv ./hunspell /etc/opensearch/
Задайте корректного владельца скопированной директории:
chown -R opensearch:opensearch /etc/opensearch/hunspell/
Создайте копию конфигурационного файла opensearch.yml:
cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml_bak
Откройте файл /etc/opensearch/opensearch.yml для редактирования и наполните его следующим содержимым:
cluster.name: universe-os-cluster network.host: 0.0.0.0 discovery.type: single-node path.data: /var/lib/opensearch path.logs: /var/log/opensearch plugins.security.disabled: true
Сохраните изменения и выйдите:
:wq
Настройте количество выделяемой оперативной памяти для Opensearch. Для этого откройте файл /etc/opensearch/jvm.options:
vim /etc/opensearch/jvm.options
Измените значение следующих значений в файле: Xms1g и Xmx1g, например на: Xms4g и Xmx4g.
Сохраните изменения и выйдите:
:wq
Запустите Opensearch:
systemctl start opensearch
Проверьте его состояние:
systemctl status opensearch
Установите analysis-icu-2.14.0. Для этого в директории с загруженным архивом analysis-icu-2.14.0.zip воспользуемся командой:
/usr/share/opensearch/bin/opensearch-plugin install analysis-icu
Перезапустите Opensearch:
systemctl restart opensearch
Убедитесь в успешном запуске:
systemctl status opensearch
Добавьте службу в автозагрузку:
systemctl enable /usr/lib/systemd/system/opensearch.service
Проверка запуска доступна с помощью команды:
curl -X GET '127.0.0.1:9200'
Примечание
Рекомендуется выделять количество оперативной памяти не менее 25% от объема виртуальной машины. 25% - это оптимальное число, но если Opensearch будет расположен на отдельной ноде, то можно выделить 90% объема.
Архив analysis-icu-2.14.0.zip должен быть распакован из архива plugins.zip.
Установка PostgreSQL и TimescaleDB¶
Добавьте репозиторий PostgreSQL:
sudo sh -c 'echo "[pgdg16] name=PostgreSQL 16 for ALT Linux 10 baseurl=https://download.postgresql.org/pub/repos/yum/16/altlinux/10/\$basearch/ enabled=1 gpgcheck=0" > /etc/yum.repos.d/pgdg16.repo'
Установите PostgreSQL 16:
sudo /usr/pgsql-16/bin/postgresql16-setup initdb
Инициализируйте базу данных:
sudo -u postgres initdb --locale=en_US.UTF-8 --encoding=UTF8 -D /var/lib/postgres/data --data-checksums
Запустите PostgreSQL и добавьте его в автозагрузку:
sudo systemctl start postgresql-16 sudo systemctl enable postgresql-16
Добавьте репозиторий TimescaleDB:
sudo sh -c 'echo "[timescaledb] name=TimescaleDB repository baseurl=https://timescalereleases.blob.core.windows.net/rpm/rhel/7/x86_64/ enabled=1 gpgcheck=0" > /etc/yum.repos.d/timescaledb.repo'
Установите TimescaleDB:
sudo yum install -y timescaledb-postgresql-16
Настройте TimescaleDB. Отредактируйте файл конфигурации PostgreSQL:
sudo vi /var/lib/pgsql/16/data/postgresql.conf
Основные конфигурационные файлы postgresql находятся по пути:
/var/lib/pgsql/data/postgresql.conf
/var/lib/pgsql/data/pg_hba.conf
В файле /var/lib/pgsql/16/data/postgresql.conf раскомментируйте и измените следующие параметры:
#listen_addresses = 'localhost'
,max_connections = 100
,#max_prepared_transactions = 0
,port=5433
наlisten_addresses = '*'
,max_connections = 1000
,max_prepared_transactions = 300
,port=5432
.Секции файла /var/lib/pgsql/16/data/pg_hba.conf должны приобрести следующий вид (допускается изменение параметров под индивидуальные потребности):
# Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 scram-sha-256 host replication all ::1/128 scram-sha-256
Добавьте строку:
shared_preload_libraries = 'timescaledb'
Перезапустите PostgreSQL, чтобы изменения вступили в силу:
sudo systemctl restart postgresql-16
Подключитесь к PostgreSQL и убедитесь, что расширение TimescaleDB доступно:
psql -U postgres -d postgres
Внутри psql выполните команду:
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Установка Tomcat¶
Скачайте архив Tomcat 9 (ссылка из примера может устареть, в этом случае найдите актуальную версию на официальном сайте):
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.87/bin/apache-tomcat-9.0.87.tar.gz
Распакуйте скачанный архив в директорию /opt с помощью команды:
tar -xvf ./apache-tomcat-9.0.87.tar.gz -C /opt
Выполните вход под root пользователем:
su-
Создайте пользователя tomcat:
useradd -m -U -s /bin/false tomcat
Выйдите из него обратно в пользователя root:
exit
Переименуйте apache-tomcat-9.х и дайте права пользователю tomcat на этот каталог:
cd /opt && mv apache-tomcat-9.х tomcat-9 ; chown -R tomcat:tomcat tomcat-9
9.х - актуальная версия tomcat. Важно: команда может не сработать, если версия tomcat различается - сверьте версию со скачанным архивом.
Создайте systemd файл tomcat по пути /etc/systemd/system/tomcat.service:
vim /etc/systemd/system/tomcat.service
Вставьте в файл следующее содержимое:
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.22.0.7-0.x86_64 Environment=CATALINA_PID=/opt/tomcat-9/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat-9 Environment=CATALINA_BASE=/opt/tomcat-9 Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat-9/bin/startup.sh ExecStop=/opt/tomcat-9/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
Важно: замените путь до JAVA на свой, если он отличается, в строке
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-3.red80.1.x86_64
Сохраните изменения и выйдите:
:wq
Перечитайте демоны:
systemctl daemon-reload
Добавьте Tomcat в автозагрузку:
systemctl enable tomcat
Установка системы Universe¶
Дистрибутив системы Universe состоит из двух архивов (6.х - актуальная версия системы):
universe_mdm_ee_backend_v6.х.zip
universe_mdm_ee_frontend_v6.х.zip
Скопируйте дистрибутив Universe на сервер в удобное для вас место (в примере используется /home/user).
Распакуйте дистрибутив с помощью команды (6.х - актуальная версия системы):
mkdir universe_frontend universe_backend && unzip universe_mdm_ee_backend_v6.10.2.zip -d ./universe_backend && unzip universe_mdm_ee_frontend_v6.10.2.zip -d ./universe_frontend
Скопируйте файлы frontend:
cp universe_frontend/universe-frontend.war /opt/tomcat-9/webapps/
Скопируйте файлы backend и выдайте права с помощью одной команды:
cp -v universe_backend/universe-backend.war /opt/tomcat-9/webapps/ && \ cp -v universe_backend/Tomcat/bin/setenv.sh /opt/tomcat-9/bin/ && \ chmod +x /opt/tomcat-9/bin/* && \ cp -rv universe_backend/Tomcat/conf/universe /opt/tomcat-9/conf/ && \ cp -v universe_backend/Tomcat/libs/* /opt/tomcat-9/lib/ && \ chown -R tomcat:tomcat /opt/tomcat-9
Заполните /opt/tomcat-9/bin/setenv.sh, приведя файл к следующему виду:
vim /opt/tomcat-9/bin/setenv.sh export JAVA_OPTS="${JAVA_OPTS} -Dunidata.conf=${CATALINA_HOME}/conf/universe -Dlogback.configurationFile=${CATALINA_HOME}/conf/universe/logback.xml" #export JRE_HOME=/usr/lib/jvm/java-8-oracle #export JAVA_HOME=/usr/lib/jvm/java-8-oracle export POSTGRES_ADDRESS="localhost:5432" export POSTGRES_USERNAME="postgres" export POSTGRES_PASSWORD="notpostgres" export DATABASE_NAME="universe" export SEARCH_CLUSTER_NAME="universe-os-cluster" export SEARCH_CLUSTER_ADDRESS="localhost:9200"
где:
POSTGRES_ADDRESS
- адрес ноды PostgreSQL;POSTGRES_USERNAME
- имя пользователя PostgreSQL:POSTGRES_PASSWORD
- пароль пользователя PostgreSQL;DATABASE_NAME
- имя базы данных;SEARCH_CLUSTER_NAME
- имя кластера Opensearch;SEARCH_CLUSTER_ADDRESS
- перечисление участников кластера Opensearch.Сохраните изменения:
:wq
Откройте для редактирования /opt/tomcat-9/conf/universe/backend.properties:
vim /opt/tomcat-9/conf/universe/backend.properties
Добавьте настройки пути хранения лога (в любое место файла в новой строке):
org.unidata.mdm.system.bitronix.tm.journal.disk.logPart1Filename=${CATALINA_HOME}/logs/btm1.tlog org.unidata.mdm.system.bitronix.tm.journal.disk.logPart2Filename=${CATALINA_HOME}/logs/btm2.tlog
Запустите tomcat:
systemctl start tomcat
После запуска Tomcat должно пройти некоторое время, после чего система Юниверс будет доступна по адресу http://<your-server-ip>:8080/universe-frontend.
После окончания установки выполните вход в систему.