Закрытый контур на Astra Linux без SSL

Внимание

Дисклеймер.

Инструкция содержит примерный порядок действий по установке. Инструкция призвана описать логику действий по установке на простом, абстрактном примере. В зависимости от инфраструктуры сервера (кластера) и его конфигурации, вам могут понадобиться дополнительные или иные шаги.

Эта инструкция не должна восприниматься буквально, а использоваться в качестве основы действий.

Подготовка к установке

Важно

  • Архив с дистрибутивом продукта Юниверс предоставляется клиенту при приобретении продукта через менеджера компании "Юниверс Дата".

  • На процесс установки продукта может повлиять то, какие политики и настройки были указаны при установке ОС Astra Linux.

  • При использовании ОС Astra Linux существует сложность с цепочками зависимостей пакетов. ОС негативно реагирует на понижения версий отдельных пакетов, что может спровоцировать нестандартные ошибки непредсказуемого формата.

  • Ниже приведен пример установки системы в закрытом контуре (без интернета) на Astra Linux 1.8.X "Смоленск".

Предварительные действия:

  • Так как установка в закрытом контуре накладывает свою специфику, заранее убедитесь, что скачаны все необходимые пакеты дистрибутива для каждого компонента.

  • На момент начала установки сервер должен быть чистым, без стороннего ПО.

  • Распакуйте архив дистрибутива с продуктом Юниверс в любой каталог. Дистрибутив содержит необходимые файлы и скрипты для установки.

  • Каталог с содержимым дистрибутива далее будет именоваться как <OFFLINE_REP>.

  • Скопируйте содержимое <OFFLINE_REP> на целевой сервер.

  • Дистрибутив Юниверс DG также содержит файл конфигурации backend.properties. Ограничьте права доступа на этот файл. Сервер приложений должен иметь права только на чтение файла. Администратор должен иметь права на чтение и редактирование. Также рекомендуется ограничить доступ ко всей директории с конфигурацией, оставив доступ на чтение и редактирование только серверу приложений и администратору.

Для запуска и работы Юниверс DG на сервере должно быть установлено:

  • ОС Astra Linux.

  • PostgreSQL 16.

  • TimescaleDB 2.20.

  • Java 11.

  • Opensearch 2.14.0.

  • Apache Tomcat 9.0.71.

  • Юниверс DG 2.13.

Оффлайн-репозиторий содержит следующие директории:

  • 213: Содержит дистрибутив Юниверс DG и конфигурационные файлы.

  • jre_11: Пакеты Java Runtime Environment (JRE) 11.

  • opensearch: Пакет OpenSearch 2.14.0.

  • opensearch_plugins: Плагины для OpenSearch (включая Hunspell).

  • pgs16_tdb: Пакеты для Postgres 16 и TimescaleDB.

  • apache-tomcat-9.x.xx.tar.gz: Архив с сервером приложений Tomcat 9.

Установка пакетов из дистрибутива

  1. Порядок установки. Рекомендуется соблюдать последовательность:
    1. Java (jre_11). Java требуется установить на всех серверах, где планируется запускать Opensearch и Tomcat.

    2. PostgreSQL + TimescaleDB (pgs16_tdb)

    3. OpenSearch (opensearch)

    4. Плагины OpenSearch (opensearch_plugins)

    5. Apache Tomcat (apache-tomcat-9.x.xx.tar.gz)

    6. Юниверс DG (213)

  2. Перейдите в целевую директорию репозитория:

    cd /путь/к/репозиторию/<имя_директории>
    

Где <имя_директории> соответствует устанавливаемому компоненту (например: pgs16_tdb, jre_11, opensearch). Apache Tomcat и Юниверс DG устанавливаются иначе. См. инструкции ниже.

  1. Установите все .deb пакеты в текущей директории:

    sudo dpkg -i *.deb
    
  2. Установите зависимости (если требуется):

    sudo apt install -f
    

Примечания:

  • Права доступа: Для установки (dpkg -i) требуются права sudo.

  • Зависимости: Команда apt install -f (шаг 4) критична для разрешения возможных отсутствующих зависимостей после установки из .deb файлов.

Настройка PostgreSQL

Проверка версии

  • Переключитесь на пользователя Postgres и откройте psql:

    sudo su postgres psql
    
  • Проверьте версию Postgres:

    SELECT version();
    

Ожидаемый ответ: PostgreSQL 16.x on x86_64-pc-linux-gnu, compiled by gcc (AstraLinuxSE 8.3.0-6) 8.3.0, 64-bit

Основные конфигурационные файлы postgresql находятся по пути /var/lib/pgsql/data/postgresql.conf и /var/lib/pgsql/data/pg_hba.conf.

В файле /var/lib/pgsql/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

Настройка TimescaleDB

  • Отредактируйте файл /var/lib/pgsql/data/postgresql.conf, добавив:

    shared_preload_libraries = 'timescaledb'
    timescaledb.telemetry_level = off
    
  • Перезапустите сервис:

    sudo systemctl restart postgresql
    
  • Создайте тестовую базу данных и активируйте расширение TimescaleDB:

    sudo su postgres psql
    CREATE DATABASE tmp_example_tdb;
    \c tmp_example_tdb
    CREATE EXTENSION IF NOT EXISTS timescaledb;
    
  • Проверьте установку, выполнив тестовый запрос:

    INSERT INTO org_unidata_dg_timelog_core.dg_quality_check(
    score, row_exception, check_etalon_id, execution_date, author, created_at,
    check_type_name, row_count, ts)
    VALUES (100, 100, 'test', NULL, 'test', NULL, 'test', 10, NOW());
    

Установка пароля для Postgres

Для повышения безопасности задайте пароль пользователю Postgres:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'введите_ваш_пароль';"

Устранение неполадок

При проблемах с зависимостями выполните:

sudo apt-get install -f

Проверьте статус сервиса Postgres:

systemctl status postgresql

Настройка Opensearch

После установки Opensearch и связанные плагины требуется настроить.

Установка словарей

  1. Скопируйте директорию ./<OFFLINE_REP>/Opensearch/hunspell в /etc/opensearch/:

    sudo cp -rv ./<OFFLINE_REP>/Opensearch/hunspell /etc/opensearch
    
  2. Выдайте права доступа для новой директории:

    sudo chown -R root:opensearch /etc/opensearch/hunspell/
    

См. также инструкцию по настройке библиотеки Hunspell.

Установка плагина

  1. Выполните команду с указанием полного пути до архива analysis-icu-2.14.0.zip:

    sudo /usr/share/opensearch/bin/opensearch-plugin install /<OFFLINE_REP>/Opensearch/analysis-icu-2.14.0.zip
    
    # если вы в директории с файлом analysis-icu-*.zip
    # sudo /usr/share/opensearch/bin/opensearch-plugin install file://`pwd`/analysis-icu-2.14.0.zip
    
  2. Результат выполнения команды будет иметь вид:

    Installed analysis-icu with folder name analysis-icu
    

Конфигурация Opensearch

  1. Очистите файл конфигурации и откройте следующий файл с помощью любого редактора:

    sudo cp -i /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml_before_ssl && > /etc/opensearch/opensearch.yml # Очистка файла
    sudo vi /etc/opensearch/opensearch.yml
    
  2. Укажите параметр cluster.name, например:

    cluster.name: dg-os-cluster
    

Имя кластера будет использоваться в настройках приложения для подключения. Каждый параметр в файле указываем с новой строки.

  1. По умолчанию Opensearch прослушивает только localhost, если приложение Tomcat устанавливается на другой сервер, и/или Opensearch будет использоваться в кластере, то необходимо разрешить подключения с других интерфейсов, указав параметр:

    network.host: 0.0.0.0
    
  2. Также необходимо открыть порт 9200 для нод/приложений, которые будут подключаться к Opensearch.

  3. Если планируется использование только одной ноды Opensearch - укажите параметр:

    discovery.type: single-node
    
  4. Укажите каталог для логов и данных:

    path.data: /var/lib/opensearch
    path.logs: /var/log/opensearch
    
  5. Если не требуется SSL шифрование и авторизация, то укажите параметр:

    plugins.security.disabled: true
    

Пример итогового файла opensearch.yml для запуска Opensearch на одной ноде без ssl и авторизации:

cluster.name: dg-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

Настройка кластера Opensearch

Примечание

Приведен пример конфигурации без использования ssl

Для кластерной конфигурации и использования нескольких серверов Opensearch в файле /etc/opensearch/opensearch.yml на каждом сервере измените ряд настроек:

  1. Задайте уникальный node.name для каждой ноды кластера Opensearch:

    # для первого сервера:
    node.name: node01
    
    # для N сервера
    # node.name: nodeN
    
  2. Перечислите все Hostname или ip серверов, которые планируется соединить в кластер в следующих параметрах:

    cluster.initial_master_nodes: ["10.10.24.90","10.10.24.91", "10.10.24.92"]
    discovery.seed_hosts: ["10.10.24.90", "10.10.24.91", "10.10.24.92"]
    
  3. Закомментируйте или уберите следующий параметр, т.к. он противоречит кластерной настройке:

    #discovery.type: single-node
    

Серверы кластера Opensearch взаимодействуют между собой, используя порт 9300, который должен быть открыт между ними.

Настройки потребления RAM Opensearch

Необходимо настроить объем выделяемого ОЗУ в файле /etc/opensearch/jvm.options. Действие выполняется на каждом узле кластера.

Значения выделяемой ОЗУ не должно быть более 50% от общего объема RAM (при условии, что на сервере не устанавливаются другие ресурсоемкие приложения) и не более 32 Гб. Xms должен быть равен Xmx. В примере, указанном ниже, значение равно 16 Гб:

-Xms16g
-Xmx16g

Запуск Opensearch

  1. Обновите службы:

    sudo systemctl daemon-reload
    
  2. Добавьте Opensearch в автозагрузку:

    sudo systemctl enable opensearch.service
    
  3. Запустите Opensearch:

    sudo systemctl start opensearch.service
    
  4. Проверьте статус:

    sudo systemctl status opensearch.service
    

Проверка запуска Opensearch

  1. Проверьте ноды Opensearch:

    curl 'https://localhost:9200' -k -u 'admin:admin'
    
  2. Проверьте статус кластера:

    curl 'https://localhost:9200/_cluster/health?pretty' -k -u 'admin:admin'
    

Примечание

Важно, чтобы "status" = "green", а имя статуса и количество нод совпадали с настроенным значением

Смена логина/пароля для доступа к Opensearch

Пользователи Opensearch хранятся в файле /etc/opensearch/opensearch-security/internal_users.yml. Пароль указан в виде хэша, пример:

admin:
  hash: "$2a$12$VcCDgh2NDk07JGN0rjGbM.Ad41qVR/YFJcgHp0UGns5JDymv..TOG"
  1. Чтобы получить хэш пароля, который необходимо использовать, нужно выполнить команду, ввести свой пароль, и получить хэш, который можно вставить в данный конфиг:

    bash /usr/share/opensearch/plugins/opensearch-security/tools/hash.sh
    
  2. Для применения настроек файла выполните скрипт:

    cd /usr/share/opensearch/plugins/opensearch-security/tools && \
    ./securityadmin.sh -cd /etc/opensearch/opensearch-security -icl -nhnv -h localhost \
       -cacert /etc/opensearch/ssl/root-ca.pem \
       -cert /etc/opensearch/ssl/admin.pem\
       -key /etc/opensearch/ssl/admin-key.pem
    
  3. Результат успешного выполнения команды: Done with success

Скрипт записывает данные в индекс для всего кластера, чтобы избежать несогласованности и возможного применения команды с другого узла, следует перенести изменения данного файла на все ноды кластера.

В файле internal_users.yml также можно переименовать пользователя admin, всех остальных удалить и применить конфигурацию.

Установка Tomcat

Для запуска Tomcat требуется Java (описание установки см. выше).

  1. Распакуйте архив с Apache Tomcat в требуемую директорию:

    tar -xzf apache-tomcat-9.x.xx.tar.gz -C /путь/к/директории
    
  2. Создайте пользователя для запуска tomcat:

    sudo useradd -r tomcat -s /sbin/nologin
    
  3. Распакуйте дистрибутив из каталога apache-tomcat-9.0.*.tar.gz в каталог /opt/.

  4. Переименуйте каталог /opt/apache-tomcat-9.0.* в /opt/tomcat-9 (версия может отличаться).

  5. Удалите стандартные файлы и каталоги Manager App, которые могут содержаться в дистрибутиве tomcat из каталога /opt/tomcat-9/webapps:

    rm -rf /opt/tomcat-9/webapps/*
    
  6. Выдайте права на директорию tomcat для пользователя tomcat:

    chown -R tomcat:tomcat /opt/tomcat-9
    
  7. Добавьте сервис, создав файл tomcat.service:

    sudo vi /etc/systemd/system/tomcat.service
    

со следующим содержимым, задав параметры потребления RAM в CATALINA_OPTS:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat-9/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat-9
Environment=CATALINA_BASE=/opt/tomcat-9
Environment='CATALINA_OPTS=-Xms1024M -Xmx2048M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

WorkingDirectory=/opt/tomcat-9/

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
  1. Примените конфигурацию сервисов:

    systemctl daemon-reload
    

Подготовка хранилища ключей сертификатов

Примечание

В настоящее время Tomcat работает только с хранилищами ключей формата JKS, PKCS11 или PKCS12. Каждая запись в хранилище ключей идентифицируется строкой псевдонима. Например, спецификация PKCS11 требует, чтобы псевдонимы были чувствительны к регистру. Чтобы избежать проблем, связанных с чувствительностью псевдонимов к регистру, не рекомендуется использовать псевдонимы, отличающиеся только регистром.

Совет

Чтобы импортировать существующий сертификат в хранилище ключей JKS, ознакомьтесь с официальной документацией (в пакете документации JDK) о keytool. Обратите внимание, что OpenSSL часто добавляет читаемые комментарии перед ключом, но keytool этого не поддерживает. Если в вашем сертификате есть комментарии перед ключевыми данными, удалите их перед импортом сертификата с помощью keytool.

  1. Чтобы импортировать сертификат, подписанный вашим собственным CA, в хранилище ключей PKCS12 с помощью OpenSSL - выполните команду:

    openssl pkcs12 -export -in mycert.crt -inkey mykey.key
                      -out mycert.p12 -name tomcat -CAfile myCA.crt
                      -caname root -chain
    
  2. Чтобы создать новое хранилище ключей JKS с нуля, содержащее один самоподписной сертификат, выполните следующие действия в командной строке терминала:

    $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
    

    В качестве безопасного алгоритма следует предпочесть алгоритм RSA, который также обеспечивает общую совместимость с другими серверами и компонентами.

  3. Используемая команда создаст новый файл с именем ".keystore" в домашнем каталоге пользователя, в котором она запущена. Чтобы указать другое местоположение или имя файла, добавьте к команде keytool, указанной выше, параметр -keystore, за которым следует полное имя пути к вашему файлу keystore. Также необходимо отразить это новое местоположение в файле конфигурации server.xml, как описано далее. Например:

    $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
      -keystore /path/to/my/keystore
    
  4. После выполнения команды введите пароль хранилища ключей ("changeit" по умолчанию). При желании вы можете указать собственный пароль. Также необходимо указать пароль в конфигурационном файле server.xml, как описано далее.

  5. При необходимости добавьте информацию (компания, имя контактного лица и т.д.) для отображения пользователям, которые попытаются получить доступ к защищенной странице в приложении.

  6. Введите пароль ключа, который является паролем именно для этого сертификата (в отличие от любых других сертификатов, хранящихся в том же файле keystore). Подсказка keytool сообщит вам, что при нажатии клавиши ENTER автоматически используется тот же пароль для ключа, что и для хранилища ключей. Вы можете использовать тот же пароль или выбрать собственный. Если вы выберете пароль, отличный от пароля хранилища ключей, вам также нужно будет указать пользовательский пароль в файле конфигурации server.xml.

  7. В результате действий будет сконфигурирован файл хранилища ключей с сертификатом, который может быть использован сервером.

Более подробно см. в официальной документации Tomcat.

Настройка файла конфигурации

  1. Откройте файл server.xml в текстовом редакторе (файл находится в папке conf).

  2. В файле найдите секцию:

    <!--
    Define a SSL/TLS HTTP/1.1 Connector on port 8443
    This connector uses the NIO implementation with the JSSE engine.
    When using the JSSE engine, the JSSE configuration attributes
    must be used. -->
    
  3. Ниже найденного блока пропишите конфигурацию коннектора: укажите порт 8443 (параметр port), правильное название файла хранилища ключей (параметр keystoreFile) и пароль (параметр keystorePass).

    Пример конфигурации:

    <Connector URIEncoding="UTF-8" port="8080" acceptCount="100" enableLookups="false" maxThreads="150" redirectPort="8443" />
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="/usr/share/tomcat/key/server.keystore" keystorePass="uWePKrfemC"/>
    
  4. Запретите CORS-запросы - в файле web.xml найдите секцию:

    <filter>
     <filter-name>CorsFilter</filter-name>
     <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
     <init-param>
      <param-name>cors.allowed.origins</param-name>
      <param-value>*</param-value>
     </init-param>
     <init-param>
      <param-name>cors.allowed.methods</param-name>
      <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
     </init-param>
     <init-param>
      <param-name>cors.allowed.headers</param-name>
      <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
     </init-param>
     <init-param>
      <param-name>cors.exposed.headers</param-name>
      <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
     </init-param>
     <init-param>
      <param-name>cors.support.credentials</param-name>
      <param-value>true</param-value>
     </init-param>
     <init-param>
      <param-name>cors.preflight.maxage</param-name>
      <param-value>10</param-value>
     </init-param>
    </filter>
    <filter-mapping>
     <filter-name>CorsFilter</filter-name>
     <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  5. Проверьте, что в поле filter-mapping указан URL для backend:

    <filter-mapping>
     <filter-name>CorsFilter</filter-name>
     <url-pattern>/universe-backend/*</url-pattern>
    </filter-mapping>
    
  6. В поле init-param должны быть указаны разрешенные IP-адреса. Если строка пустая, то доступ будет запрещен всем:

    <init-param>
      <param-name>cors.allowed.origins</param-name>
      <param-value>127.0.0.1</param-value>
    </init-param>
    
  7. Сохраните изменения в файле и перезапустите Tomcat.

Установка приложения Юниверс DG

Для запуска приложения требуется Tomcat и Java (описание установки см. выше).

Начало установки

  1. Установка .war файлов: в каталоге Application_Tomcat содержатся 2 архива: frontend или backend. В каждом архиве содержится .war файлы, которые необходимо скопировать в директорию /opt/tomcat-9/webapps/.

  2. Установка дополнительных параметров и библиотек: в архиве backend содержится каталог Tomcat, содержимое которого необходимо скопировать в каталог /opt/tomcat-9/. Находясь в распакованном каталоге архива backend, перейдите в каталог tomcat и скопируйте файлы в директорию сервиса:

    sudo cp -v bin/setenv.sh /opt/tomcat-9/bin/ && \
    sudo cp -rv conf/universe /opt/tomcat-9/conf/ && \
    sudo cp -v libs/* /opt/tomcat-9/lib/
    
  3. Предоставьте права на файлы для сервиса:

    chown -R tomcat:tomcat /opt/tomcat-9
    chmod +x /opt/tomcat-9/bin/*.sh
    

Настройка приложения

  1. Основные параметры задаются в переменных в файле setenv.sh. Отредактируйте файл:

    vi /opt/tomcat-9/bin/setenv.sh
    
  2. Установите/добавьте следующие переменные, установив значения соответствующие логическому имени переменной:

    # имеющийся параметр JAVA_OPTS НЕ затрагиваются
    
    # укажите параметры подключение к базе
    export POSTGRES_ADDRESS="localhost:5432"
    export POSTGRES_USERNAME="postgres"
    export POSTGRES_PASSWORD="notpostgres_change_me"
    export DATABASE_NAME="universe"
    
    # укажите параметры подключение к Opensearch:
    
    export SEARCH_CLUSTER_NAME="universe-os-cluster"
    export SEARCH_CLUSTER_ADDRESS="localhost:9200"
    # при использовании кластера Opensearch в переменной SEARCH_CLUSTER_ADDRESS перечисляются через запятую все ноды (hostname или ip), пример:
    # SEARCH_CLUSTER_ADDRESS=opensearch-node-1:9200,opensearch-node-2:9200,opensearch-node-3:9200
    

Настройка приложения для подключения к Opensearch через SSL

  1. Создайте каталог для сертификатов:

    sudo mkdir /opt/tomcat-9/ssl
    
  2. Скопируйте созданные на предыдущих шагах .jks файлы в созданный каталог:

    cp -v *\.jks /opt/tomcat-9/ssl
    chown -R tomcat:tomcat /opt/tomcat-9/ssl
    
  3. Основные параметры задаются в переменных в файле setenv.sh. Отредактируйте файл:

    vi /opt/tomcat-9/bin/setenv.sh
    
  4. Установите/добавьте следующие переменные, введя значения, соответствующие логическому имени переменной:

    export SEARCH_CLUSTER_NAME="universe-os-cluster"
    # в качестве адреса требуется использовать dns имя, которые прописано в сертификате в CN
    export SEARCH_CLUSTER_ADDRESS="opensearch-node-1:9200"
    # при использовании кластера Opensearch в переменной SEARCH_CLUSTER_ADDRESS перечисляются через запятую все ноды (hostname или ip), пример:
    # SEARCH_CLUSTER_ADDRESS=opensearch-node-1:9200,opensearch-node-2:9200,opensearch-node-3:9200
    
    export SEARCH_SECURITY_ENABLED=true
    # учетные данные для авторизации в Opensearch
    export SEARCH_ADMIN_LOGIN=admin
    export SEARCH_ADMIN_PASSWORD=admin
    
    # укажите сформированные для Opensearch jks файлы и пароли от них
    export SEARCH_TRUSTSTORE_PATH=/opt/tomcat-9/ssl/app-truststore.jks
    export SEARCH_TRUSTSTORE_PASSWORD=MY-TrustStore-pswd
    
    export SEARCH_KEYSTORE_PATH=/opt/tomcat-9/ssl/app-keystore.jks
    export SEARCH_KEYSTORE_PASSWORD=MY-keyStore-pswd
    

Кластерная настройка приложения

  1. Если планируется использование нескольких серверов Tomcat, то для настройки кластерной конфигурации приложения в файле /opt/tomcat-9/conf/universe/backend.properties на каждом сервере требуется изменить ряд настроек:

    vi /opt/tomcat-9/conf/universe/backend.properties
    
  2. Следующие параметры одинаковые для каждого узла приложения:

    # включите распределенный кэш
    org.unidata.dg.system.cache.tcp-ip.enabled=true
    # перечислите все ноды tomcat, ip или hostname
    org.unidata.dg.system.cache.tcp-ip.members=server-192-168-106-110,server-192-168-106-111
    
    # стандартный порт, при необходимости можно заменить, должен быть открыт для всех узлов кластера приложения
    org.unidata.dg.system.cache.port=5701
    
  3. Параметр ниже должен быть уникальный для каждого узла в кластере приложения, пример значения параметра:

    org.unidata.dg.system.node.id=node1
    #org.unidata.dg.system.node.id=nodeN # для остальных N серверов
    
  4. Пример сообщения в логе (logs/catalina.out), позволяющее определить то, что приложения объединились в кластер:

    INFO com.hazelcast.internal.server.tcp.TcpServerConnection.null [server-192-168-106-111]:5701 [dev] Initialized new cluster connection between /192.168.106.111:44589 and server-192-168-106-110/192.168.106.110:5701
    com.hazelcast.internal.cluster.ClusterService.null [server-192-168-106-111]:5701 [dev]
    
    Members {size:2, ver:2} [
            Member [server-192-168-106-110]:5701 - b15485d2-3121-4398-adf0-aee0147d442e
            Member [server-192-168-106-111]:5701 - c61b4e32-94da-4e6a-8f1d-269ccb7f0f10 this
    ]
    

Запуск приложения

  • Управление осуществляется через сервис, на каждом узле Tomcat:

    sudo systemctl start tomcat
    sudo systemctl status tomcat
    # sudo systemctl restart tomcat
    # sudo systemctl stop tomcat
    
  • Логи приложения находятся в каталоге /opt/tomcat-9/logs/.

После окончания установки выполните вход в систему Юниверс.