Закрытый контур на Astra Linux без SSL¶
Примечание
Ниже приведен пример установки системы в закрытом контуре (без интернета) на Astra Linux 1.7.X «Смоленск» без использования авторизации и SSL для Opensearch
Предупреждение
Инструкция актуальна для установки Юниверс DG версии 2.5 и новее, поскольку в релизе 2.5 был осуществлен переход с Elasticsearch на Opensearch
Установка JAVA¶
Примечание
Java требуется установить на всех серверах, где планируется запускать Opensearch, Tomcat, OrientDB
Все пакеты, необходимые для корректной установки openJDK, располагаются в каталоге Java.
Для установки Java:
Перейдите в директорию Java.
Распакуйте содержимое архива с установочными пакетами.
В распакованном каталоге выполните команду:
sudo dpkg -i *.deb
Установка Opensearch¶
Для установки Opensearch:
Перейдите в каталог Opensearch и используйте команду:
sudo dpkg -i *.deb
Установка словарей¶
Скопируйте директорию
./<OFFLINE_REP>/Opensearch/hunspell
в/etc/opensearch/
:sudo cp -rv ./<OFFLINE_REP>/Opensearch/hunspell /etc/opensearch
Выдайте права для новой директории:
sudo chown -R root:opensearch /etc/opensearch/hunspell/
Установка плагина¶
Выполните команду с указанием полного пути до архива analysis-icu-*.zip:
sudo /usr/share/opensearch/bin/opensearch-plugin install file:///opt/OFFLINE_REP/Opensearch/analysis-icu-2.7.0.zip # если вы в директории с файлом analysis-icu-*.zip # sudo /usr/share/opensearch/bin/opensearch-plugin install file://`pwd`/analysis-icu-2.7.0.zip
Результат выполнения команды будет иметь вид:
-> Installed analysis-icu with folder name analysis-icu
Конфигурация Opensearch¶
Очистите файл конфигурации и откройте следующий файл с помощью любого редактора:
sudo cp -i /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml_default && /etc/opensearch/opensearch.yml > /etc/opensearch/opensearch.yml # очистка файла sudo vi /etc/opensearch/opensearch.yml
Укажите параметр cluster.name, например:
cluster.name: dg-os-cluster
Имя кластера будет использоваться в настройках приложения для подключения. Каждый параметр в файле указываем с новой строки.
По умолчанию Opensearch прослушивает только localhost, если приложение Tomcat устанавливается на другой сервер, и/или Opensearch будет использоваться в кластере, то необходимо разрешить подключения с других интерфейсов, указав параметр:
network.host: 0.0.0.0
Также необходимо открыть порт 9200 для нод/приложений, которые будут подключаться к Opensearch.
Если планируется использование только одной ноды Opensearch - укажите параметр:
discovery.type: single-node
Укажите каталог для логов и данных:
path.data: /var/lib/opensearch path.logs: /var/log/opensearch
Если не требуется 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 на каждом сервере измените ряд настроек:
Задайте уникальный node.name для каждой ноды кластера Opensearch:
# для первого сервера: node.name: node01 # для N сервера # node.name: nodeN
Перечислите все 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"]
Закомментируйте или уберите следующий параметр, т.к. он противоречит кластерной настройке:
#discovery.type: single-node
Серверы кластера Opensearch взаимодействуют между собой, используя порт 9300, который должен быть открыт между ними.
Настройки потребления RAM Opensearch¶
Необходимо настроить объем выделяемого ОЗУ в файле /etc/opensearch/jvm.options. Действие выполняется на каждом узле кластера.
Значения выделяемой ОЗУ не должно быть более 50% от общего объема RAM (при условии, что на сервере не устанавливаются другие ресурсоемкие приложения) и не более 32 Гб. Xms должен быть равен Xmx. В примере, указанном ниже, значение равно 16 Гб:
-Xms16g
-Xmx16g
Запуск Opensearch¶
Обновите службы:
sudo systemctl daemon-reload
Добавьте Opensearch в автозагрузку:
sudo systemctl enable opensearch.service
Запустите Opensearch:
sudo systemctl start opensearch.service
Проверьте статус:
sudo systemctl status opensearch.service
Проверка запуска Opensearch¶
Проверьте ноды Opensearch:
curl -X GET '127.0.0.1:9200'
Проверьте статус кластера:
curl -XGET 'localhost:9200/_cluster/health?pretty'
Примечание
Важно, чтобы "status" = "green", а имя статуса и количество нод совпадали с настроенным значением
Установка Postgresql¶
Все пакеты необходимые для корректной установки Postgresql располагаются в директории Postgresql.
Для установки postgresql:
Перейдите в директорию Postgresql и выполните команду:
sudo dpkg -i *.deb
Основные конфигурационные файлы postgresql находятся в каталоге (пример каталога при установке 12 версии):
/etc/postgresql/12/main/postgresql.conf
/etc/postgresql/12/main/pg_hba.conf
В файле /etc/postgresql/12/main/postgresql.conf задайте перечисленные параметры следующим образом. Также замените port=5433 на port=5432:
listen_addresses = '*' max_connections = 1000 max_prepared_transactions = 300 port=5432
В конец файла /etc/postgresql/12/main/pg_hba.conf добавьте строку, которая разрешит подключение к хосту по паролю, для всех баз:
host all all all scram-sha-256
Перезагрузите postgresql для применения настроек:
systemctl restart postgresql-12
Допускается изменение параметров под индивидуальные потребности.
Продолжите настройку в консоли. Зайдите в базу данных под пользователем:
sudo su su postgres psql
Задайте пароль пользователя:
ALTER USER postgres WITH PASSWORD 'notpostgres_change_me'
Создайте базу данных для приложения (доступен выбор собственного логического наименования, которое будет использовано в дальнейшем):
CREATE DATABASE universe;
Поменяйте timezone (в примере MSK+3):
ALTER SYSTEM SET timezone TO 'W-SU'; ALTER SYSTEM SET random_page_cost TO 1.1;
Раскомментируйте и задайте размер буфера. При ОЗУ 1 ГБ и более значение shared_buffers составляет 25% от объема памяти:
ALTER SYSTEM SET shared_buffers TO '4GB'
Перезагрузите postgresql для применения дополнительных настроек:
systemctl restart postgresql-12
Проверьте подключение к базе и запрос пароля:
psql -U postgres -h localhost
Установка TimescaleDB¶
Расширение TimescaleDB для Postgresql требуется для работы некоторых компонентов Юниверс DG.
Для установки:
Перейдите в каталог TimescaleDB и выполните установку:
dpkg -i *.deb
Далее в файле /etc/postgresql/12/main/postgresql.conf раскомментируйте и измените следующие параметры:
shared_preload_libraries='timescaledb' timescaledb.telemetry_level=off
Перезагрузите postgresql для применения настроек:
systemctl restart postgresql-12
В случае, если будет использоваться другая версия Postgres/Linux, используйте следующую информацию:
Добавьте repo, где buster - это debian10, ядро AtraLinux 1.7:
echo "deb https://packagecloud.io/timescale/timescaledb/debian/ buster main" | sudo tee /etc/apt/sources.list.d/timescaledb.list wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo apt-key add -
Скачайте пакеты в текущую директорию определенной версии postgresql-12 и TimescaleDB2.7.0:
apt-get download timescaledb-2-oss-2.7.0-postgresql-12 timescaledb-2-loader-postgresql-12=2.7.0~debian10 timescaledb-tools=0.14.3~debian10 timescaledb-toolkit-postgresql-12=1:1.14.0~debian10
Установка OrientDB¶
OrientDB требуется для работы некоторых компонентов Юниверс DG. Для запуска OrientDB требуется Java (описание установки см. выше).
Также см. официальную документацию.
Для установки:
Распакуйте архив orientdb-community-3.2.4.tar.gz в каталог /opt.
Переименуйте каталог /opt/orientdb-community-3.2.4 в /opt/orientdb (версия может отличаться).
Добавьте пользоваться, от имени которого будет запускаться сервис, и выдайте права на каталог:
useradd -r orientdb -s /sbin/nologin chown -R orientdb:orientdb /opt/orientdb/
Отредактируйте файл:
vi /opt/orientdb/bin/orientdb.sh
Укажите следующие значения в переменных:
ORIENTDB_DIR="/opt/orientdb" ORIENTDB_USER="orientdb"
Добавьте сервис, создав файл:
sudo vi /etc/systemd/system/orientdb.service
со следующим содержимым, указав ORIENTDB_ROOT_PASSWORD. Здесь же можно задать параметры потребления RAM в ORIENTDB_OPTS_MEMORY:
[Unit]
Description=OrientDB Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
Environment="ORIENTDB_OPTS_MEMORY=-Xms4G -Xmx4G"
Environment="ORIENTDB_ROOT_PASSWORD=OrientDBPass"
User=orientdb
Group=orientdb
ExecStart=/opt/orientdb/bin/server.sh
В файле /opt/orientdb/config/orientdb-server-config.xml в директиву <storages> добавьте следующую информацию. При запуске сервиса будет создана база dg, которая будет использоваться в дальнейшем:
<storages> <storage name="dg" path="plocal:/opt/orientdb/databases/dg" loaded-at-startup="true" /> </storages>
В файле /opt/orientdb/config/orientdb-server-config.xml замените порт и интерфейс, который прослушивает порт. Пример директивы:
<listener protocol="binary" ip-address="0.0.0.0" port-range="2424-2430" socket="default"/> <listener protocol="http" ip-address="0.0.0.0" port-range="2480-2490" socket="default">
Порт 2424 должен быть открыт в фаерволе для доступа приложения.
http - опциональный порт, который используется для подключения к WEB интерфейсу через браузер и может быть закрыт для безопасности.
Запустите сервис:
systemctl daemon-reload systemctl start orientdb.service
Для проверки работоспособности вызовите консоль:
/opt/orientdb/bin/console.sh
Используйте
exit
для выхода.Проверьте доступность web интерфейса:
Установка Tomcat¶
Для запуска Tomcat требуется Java (описание установки см. выше).
Для установки:
Создайте пользователя для запуска tomcat:
sudo useradd -r tomcat -s /sbin/nologin
Распакуйте дистрибутив из каталога apache-tomcat-9.0.*.tar.gz в каталог /opt/.
Переименуйте каталог /opt/apache-tomcat-9.0.* в /opt/tomcat-9 (версия может отличаться).
Удалите стандартные файлы и каталоги Manager App, которые могут содержаться в дистрибутиве tomcat из каталога /opt/tomcat-9/webapps:
rm -rf /opt/tomcat-9/webapps/*
Выдайте права на директорию tomcat для пользователя tomcat:
chown -R tomcat:tomcat /opt/tomcat-9
Добавьте сервис, создав файл 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
Примените конфигурацию сервисов:
systemctl daemon-reload
Установка приложения Юниверс DG¶
Для запуска приложения требуется Tomcat и Java (описание установки см. выше).
Начало установки¶
Установка .war файлов: в каталоге Application_Tomcat содержатся 2 архива: frontend или backend. В каждом архиве содержится .war файлы, которые необходимо скопировать в директорию /opt/tomcat-9/webapps/.
Установка дополнительных параметров и библиотек: в архиве 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/
Предоставление прав на файлы для сервиса:
chown -R tomcat:tomcat /opt/tomcat-9 chmod +x /opt/tomcat-9/bin/*.sh
Настройка приложения¶
Основные параметры задаются в переменных в файле setenv.sh. Отредактируйте файл:
vi /opt/tomcat-9/bin/setenv.sh
Установите/добавьте следующие переменные, установив значения соответствующие логическому имени переменной:
# имеющийся параметр 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="dg-os-cluster" export SEARCH_CLUSTER_ADDRESS="localhost:9200" # при использовании кластера Opensearch в переменной SEARCH_CLUSTER_ADDRESS перечисляются через запятую все ноды (hostname или ip), пример: # SEARCH_CLUSTER_ADDRESS=es_node01:9300,es_node02:9300,es_node03:9300 # укажите параметры подключение к OrientDB, если данный компонент используется приложением export ORIENTDB_DB_ADDRESS="localhost" export ORIENTDB_DB_NAME="dg" export ORIENTDB_USER="root" export ORIENTDB_PASSWORD="OrientDBPass"
Кластерная настройка приложения¶
Если планируется использование нескольких серверов Tomcat, то для настройки кластерной конфигурации приложения в файле /opt/tomcat-9/conf/universe/backend.properties на каждом сервере требуется изменить ряд настроек:
vi /opt/tomcat-9/conf/universe/backend.properties
Следующие параметры одинаковые для каждого узла приложения:
# включаем распределенный кэш 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
Параметр ниже должен быть уникальный для каждого узла в кластере приложения, пример значения параметра:
org.unidata.dg.system.node.id=node1 #org.unidata.dg.system.node.id=nodeN # для остальных N серверов
Пример сообщения в логе ( 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/.
После окончания установки выполните вход в систему Юниверс DG.