• Post category:Настройки
  • Запись изменена:25.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. Проверьте работу портала

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