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

Содержание

0. Схема

Схема выноса сервиса Processing для РЕДОС

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. Установите вспомогательные пакеты

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

sudo dnf install dotnet-sdk-6.0 postgresql-odbc supervisor

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

sudo dnf install dotnet-sdk-3.1 postgresql-odbc supervisor

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/supervisord.conf /etc/supervisord.d /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=982(cddisk) gid=982(cddisk) группы=982(cddisk)

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

rm -f /etc/supervisord.d/cddisk-processing.ini

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

vi /etc/supervisord.d/cddisk.ini

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

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

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

systemctl restart supervisord.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.6.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 сервера с Процессингом. Если таких ВМ несколько, то выполните для каждого IP;
  • processing — имя созданного в п.3.7.3.1 пользователя.

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

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

vi /var/lib/pgsql/data/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. Отредактируйте файл postgresql.conf

nano /var/lib/pgsql/data/postgresql.conf

Приведите следующие параметры:

#listen_addresses = 'localhost'
#port = 5432

К данному виду:

listen_addresses = 'localhost,192.168.27.77'
port = 5432

Где:

  • listen_addresses — на каких интерфейсах слушает PostgreSQL подключения;
  • port — порт, который слушает сервис PostgreSQL.

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

systemctl restart postgresql

3.8.4. Проверьте, что все интерфейсы слушаются

netstat -tulpan | grep 5432

Вывод:

netstat -tulpan | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      1745934/postmaster  
tcp        0      0 192.168.27.77:5432      0.0.0.0:*               LISTEN      1745934/postmaster

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 982 cddisk

Где:

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

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

useradd -u 982 -g 982 cddisk

Где:

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

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

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

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

rm -f /etc/supervisord.d/{cddisk-api,cddisk-filestorage,cddisk-registry,cddisk-ssoapi,cddisk-searchapi}.ini

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

vi /etc/supervisord.d/cddisk.ini

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

[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. Установите Конструктор документов

dnf install https://download.r7-office.ru/centos/r7-office-documentconstructor-1.7.4-357.x86_64.rpm

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

4.7. Отредактируйте файл 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 — путь до исполняемого файла Конструктора Документов, который был установлен в п. 4.6.

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

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

systemctl restart supervisord.service
supervisorctl restart all

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

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