• Post category:Настройки
  • Запись изменена:25.08.2025

Содержание

0. Схема

Вынос сервиса Processing для Astra Linux

0.1. Описание

Сервис процессинга отвечает за обработку очередей действий пользователей, синхронизаций и т.п. Вынос его требуется для снижения нагрузки API сервера. Также возможно увеличить количество сервисов Processing, что даёт нам отказоустойчивость в виде нескольких серверов одного сервиса, работающих параллельно.

1. Выполните установку Корпоративного портала 2024

При включенной службе firewalld необходимо выполнить настройку для http и https.

# Добавляем службы:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
  
# Перезапускаем службу firewalld:
sudo firewall-cmd --reload
  
# Проверяем правила для зоны public:
sudo firewall-cmd --zone=public --list-all

Установить согласно инструкции.

2. На ВМ с ролью Processing

2.1. Установите ключ репозитория

sudo wget -O - https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null

2.2. Добавьте репозиторий

sudo wget https://packages.microsoft.com/config/debian/10/prod.list -O /etc/apt/sources.list.d/microsoft-prod.list && sudo apt update

2.3. Установите dotnet

sudo wget https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/d/dotnet-host/dotnet-host-7.0.3-x64.deb && sudo apt -y install ./dotnet-host*.deb && sudo rm ./dotnet-host*.deb

2.4. Установите остальные пакеты

Для версии 14752 и выше выполните установку следующих пакетов:

sudo apt install supervisor aspnetcore-runtime-6.0 aspnetcore-targeting-pack-6.0 autoconf automake autotools-dev binutils binutils-common binutils-x86-64-linux-gnu dotnet-apphost-pack-6.0 dotnet-hostfxr-6.0 dotnet-runtime-6.0 dotnet-runtime-deps-6.0 dotnet-sdk-6.0 dotnet-targeting-pack-6.0 libbinutils libltdl-dev libodbc1 m4 netstandard-targeting-pack-6.0 odbcinst odbcinst1debian2 unixodbc-dev

Для версий ниже:

sudo apt install supervisor aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 autoconf automake autotools-dev binutils binutils-common binutils-x86-64-linux-gnu dotnet-apphost-pack-3.1 dotnet-hostfxr-3.1 dotnet-runtime-3.1 dotnet-runtime-deps-3.1 dotnet-sdk-3.1 dotnet-targeting-pack-3.1 libbinutils libltdl-dev libodbc1 m4 netstandard-targeting-pack-2.1 odbcinst odbcinst1debian2 unixodbc-dev

2.5. Установите конструктор документов

Необходим для установки, если версия вашего Корпоративного сервера 2024 ниже 2.0.2024.2171 версии:

wget https://download.r7-office.ru/ubuntu/r7-office-documentconstructor_1.7.4-357_amd64.deb
apt install ./r7-office-documentconstructor_1.7.4-357_amd64.deb

3. На ВМ с Корпоративным сервером 2024

При включенной службе firewalld необходимо выполнить настройку.

# Откройте
# Доступ к БД
sudo firewall-cmd --permanent --zone=public --add-service=postgresql
# Доступ к очереди
sudo firewall-cmd --permanent --zone=public --add-service=amqp
# Доступ к сервису registry
sudo firewall-cmd --permanent --zone=public --add-port=7777/tcp
# Доступ к сервису search
sudo firewall-cmd --permanent --zone=public --add-port=2664/tcp
# Доступ к сервису хранения
sudo firewall-cmd --permanent --zone=public --add-port=11581/tcp
sudo firewall-cmd --permanent --zone=public --add-port=11580/tcp
 
# Перезапустите службу firewalld
sudo firewall-cmd --reload
  
# Проверьте правила для зоны public
sudo firewall-cmd --zone=public --list-all

3.1. Заархивируйте необходимые файлы и директории

tar czvf processing.tar.gz --selinux /opt/r7-office/Processing /var/log/r7-office/CDDisk/R7.Storage.Server.Processing.Host /var/log/r7-office/CDDisk/Processing /etc/supervisor /var/r7-office/filestorage_temp_proc

3.2. Перенесите удобным вам способом на ВМ с ролью Процессинг

Например, через scp:

scp processing.tar.gz ipВМпроцессинга:/root/

3.3. Узнайте uid и gid пользователя cddisk

id cddisk

Вывод:

id cddisk
uid=120(cddisk) gid=132(cddisk) группы=132(cddisk)

3.4. Удалите конфигурационный файл

rm /etc/supervisor/conf.d/cddisk-processing.conf

3.5. Отредактируйте файл

vi /etc/supervisor/conf.d/cddisk.conf

Приведите к виду:

[group:cddisk]
programs=api,filestorage,searchapi,registry,apisso

3.6. Перезапустите сервисы

systemctl restart supervisor.service
supervisorctl restart all

3.7. Открыть доступ к RabbitMQ

3.7.1. Отредактируйте файл

nano /etc/rabbitmq/rabbitmq.conf

Приведите в нём параметры к виду:

listeners.tcp.default = 127.0.0.1:5672
listeners.tcp.other_ip = 192.168.27.77:5672

Если файла или параметров нет, то создайте их самостоятельно.

Где:

  • listeners.tcp.default — слушается интерфейс 127.0.0.1 на порту 5672;
  • listeners.tcp.other_ip — слушается интерфейс 192.168.27.77 на порту 5672.

3.7.2. Перезапустите сервис

systemctl restart rabbitmq-server
3.7.2.1. Проверьте, что все интерфейсы слушаются
netstat -tulpan | grep 5672

Вывод:

netstat -tulpan | grep 5672
tcp 0 0 127.0.0.1:5672 0.0.0.0:* LISTEN 15118/beam.smp
tcp 0 0 192.168.27.77:5672 0.0.0.0:* LISTEN 15118/beam.smp

3.7.3. Создайте хост и пользователя

3.7.3.1. Создайте пользователя для Процессинга
rabbitmqctl add_user processing processing

Где:

  • processing — имя пользователя;
  • processing — пароль пользователя.
3.7.3.2. Выдайте права пользователю
rabbitmqctl set_permissions -p / processing ".*" ".*" ".*"
3.7.3.3. Создайте хост

С данного хоста будет разрешено подключение:

rabbitmqctl add_vhost 192.168.25.234

Где:

  • 192.168.25.234 — IP-адрес сервера с Процессингом.

Если таких ВМ несколько, то выполните для каждого IP.

3.7.3.4. Дайте права для ВМ с Процессингом
rabbitmqctl set_permissions -p 192.168.25.234 processing ".*" ".*" ".*"

Где:

  • 192.168.25.234 — IP-адрес сервера с Процессингом;
  • processing — имя созданного в п.3.7.3.1 пользователя.

Если таких ВМ несколько, то выполните для каждого IP.

3.8. Настроить доступ к БД

3.8.1. Отредактируйте файл pg_hba

vi /etc/postgresql/11/main/pg_hba.conf

Добавьте следующую строку:

host cddisk cddisk 192.168.25.234/32 md5

Где:

  • cddisk — имя базы данных;
  • cddisk — имя пользователя, с доступом к БД cddisk;
  • 192.168.25.234/32 — IP, с которого разрешено подключение;
  • md5 — метод авторизации.

Если ВМ с Процессингом несколько, то добавьте для каждой строку.

3.8.2. Перезапустите сервис

systemctl restart postgresql

3.9. Отредактируйте файл сервиса Registry

vi /opt/r7-office/Service.Registry/appsettings.json

Приведите параметры к виду:

},
"AllowedHosts": "*",
"Clients": [
  {
    "id": "IFileStorageService",
    "host": "http://192.168.27.77:11580/"
  },
  {
    "id": "IFileStorageRestService",
    "host": "http://192.168.27.77:11580/"
  },
  {
    "id": "IFolderStorageRestService",
    "host": "http://192.168.27.77:11580/"
  },
 
  { "id": "ITcpFolderStorageService",
    "Address": "192.168.27.77",
    "Port": "11581"
  },
  { "id": "ITcpFileStorageService",
    "Address": "192.168.27.77",
    "Port": "11581"
  },
  {
    "id": "ISearchService",
    "host": "http://192.168.27.77:2664"
  }
],
"ServiceRegistry": {
  "Host": "http://+:7777"
}

Где:

  • 192.168.27.77 — IP ВМ, где находится сервис filestorage и сервис search. Если эти ВМ являются разными, то указать верные значения.

3.10. Отредактируйте appsettings файл сервиса Filestorage

vi /opt/r7-office/FileStorage/appsettings.json

Приведите параметры к виду:

},
"AllowedHosts": "*",
"FileStorage": {
  "Host": "http://+:11580"
}

3.11. Отредактируйте filestorage файл сервиса Filestorage

vi /opt/r7-office/FileStorage/filestorage.json

Приведите параметры к виду:

"Connection": {
  "Tcp": {
    "Address": "0.0.0.0",
    "Port": 11581
  }

3.12. Перезапустите сервисы

supervisorctl restart all

4. На ВМ с Процессингом

4.1. Создание группы и пользователя cddisk

Из п.3.3. вы узнали uid и gid пользователя.

Создайте его с помощью следующих команд:

4.1.1. Создайте группу

groupadd -g 132 cddisk

Где:

  • 132 — id группы;
  • cddisk — имя группы.

4.1.2. Создайте пользователя

useradd -u 120 -g 132 cddisk

Где:

  • 120 — id пользователя;
  • 132 — id группы;
  • cddisk — имя пользователя.

4.2. Распакуйте архив

tar xzvf processing.tar.gz --selinux -C /

4.3. Удалите лишние конфигурационные файлы

rm /etc/supervisor/conf.d/{cddisk-api,cddisk-filestorage,cddisk-registry,cddisk-ssoapi,cddisk-searchapi}.conf

4.4. Отредактируйте файл

vi /etc/supervisor/conf.d/cddisk.conf

Приведите к виду:

[group:cddisk]
programs=processing

4.5. Отредактируйте файл

vi /opt/r7-office/Processing/appsettings.json

Измените следующие параметры:

4.5.1. Хост с Registry

Укажите верный IP:

"serviceRegistry": {
  "address": "http://192.168.27.77:7777"
},

В данном примере, это IP-адрес ВМ с Корпоративным сервером 2024.

4.5.2. Хост с Search

Укажите верный IP-адрес:

"documentSearchServiceSettings": {
  "host": "http://192.168.27.77:2664"
},

В данном примере, это IP-адрес ВМ с Корпоративным сервером 2024.

С версии 2.0.2024.2716 данный параметр не актуален.

4.5.3. Хост с БД

Укажите верный IP, т.к. остальные данные не изменяли:

"R7StorageServerUserActions": "Database=cddisk;Username=cddisk;Password=СЕКРЕТ;Host=192.168.27.77;Port=5432;",
"R7StorageServer": "Database=cddisk;Username=cddisk;Password=СЕКРЕТ;Host=192.168.27.77;Port=5432;",

В данном примере, это IP-адрес ВМ с Корпоративным сервером 2024.

4.5.4. Хост с RabbitMQ

Укажите верный IP-адрес, пользователя и пароль:

"rabbitMq": {
  "host": "192.168.27.77",
  "username": "processing",
  "password": "processing",
  "timeout": 10
},

В данном примере, это IP ВМ с Корпоративным сервером 2024, а пользователя создали в п.3.7.3.

4.6. Отредактируйте файл services

vi /opt/r7-office/Processing/services.json

Приведите параметры к виду:

{
  "name": "ConvertDocumentMessageHandler",
  "type": "ConvertDocumentMessageHandler",
  "subscriptionEndpoint": "Convert.Document",
  "publicationEndpoint": "",
  "useExchange": true,
  "degreeOfParallelism": 5,
  "retry": true,
  "retryCount": 2,
  "process": "/bin/documentconstructor"
},
{
  "name": "IndexingDocumentMessageHandler",
  "type": "IndexingDocumentMessageHandler",
  "subscriptionEndpoint": "Indexing.Document",
  "publicationEndpoint": "",
  "useExchange": true,
  "degreeOfParallelism": 3,
  "retry": true,
  "retryCount": 2,
  "process": "/bin/documentconstructor"
},

Где:

  • /bin/documentconstructor — путь до исполняемого файла Конструктора Документов, который установили в п. 2.5.

Не актуально для версии Корпоративного сервера 2024 выше 2.0.2024.2171.

4.7. Перезапустите сервис

systemctl restart supervisor.service
supervisorctl restart all

5. Проверьте работу портала

Была ли полезна статья?
Позвольте нам стать лучше
Дополнительные материалы