Настройка кластерного режима
8 800 555-89-02
Войти
Документация
CTRL+K
Standalone2412
SaaS

Настройка кластерного режима

В этой статье

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

Для настройки кластерного режима используется конфигурационный файл cluster.json.

Пример настройки cluster.json для агентов автоматизации:

{
    "components": {
        "excluded":[
            "com.infomaximum.subsystem.automationagent"
        ]
    },
    "network": {
        "current": {
            "name": 1,
            "port": 7000,
            "ssl":{
                "cert_chain_path":"ssl/n1.crt",
                "private_key_path":"ssl/n1.key"
            }
        },
        "nodes": [
            {
                "name": 2,
                "target": "192.168.1.2:7000",
                "ssl_certificate_path":"ssl/n2.crt"
            }
        ]
    }
}

Сетевая настройка кластера из двух нод

Для настройки кластера из двух нод необходимо указать параметры соединения для каждой ноды в файле cluster.json. Рассмотрим пример настройки для агентов автоматизации.

Предположим, есть два сервера с DNS-именами:

  • n1.local — основной сервер
  • n2.local — внешний агент

Настройка по протоколу HTTP

Для сервера n1.local укажите, что его внутреннее имя «1» ("name": 1). В имени можно указать только число от 1 до 127.

Откройте порт 7000 ("port": 7000) для приема запросов от других нод.

В блоке "nodes" опишите, какие есть доступные ноды и как к ним обращаться. Укажите, что есть нода с внутренним именем «2» ("name": 2) и что к ней можно подключиться по URL: "n2.local:7000" (host-name: n2.local, подключение происходит к порту 7000).

В этом URL не описаны протоколы HTTP и HTTPS.

Пример:

cluster.json (n1.local)
{
    "network": {
        "current": {
            "name": 1,
            "port": 7000,
        },
        "nodes": [
            {
                "name": 2,
                "target": "n2.local:7000"
            }
        ]
    }
}

Для сервера n2.local укажите, что его внутреннее имя "2" ("name": 2) и откройте порт 7000 ("port": 7000) для приема запросов от других нод.

В блоке "nodes" опишите, какие есть доступные ноды и как к ним обращаться. Укажите, что есть нода с внутренним именем "1" и что к ней можно подключиться по URL: "n1.local:7000".

Пример:

cluster.json (n2.local)
{
    "network": {
        "current": {
            "name": 2,
            "port": 7000,
        },
        "nodes": [
            {
                "name": 1,
                "target": "n1.local:7000"
            }
        ]
    }
}
Заметка

В приведенных примерах опущена настройка активных модулей: поле "components". Ее нужно описать в отдельном файле.

Настройка по протоколу HTTPS

Добавьте в блок "current" блок "ssl" и поля в нем:

  • "cert_chain_path" — файл с сертификатом сервера Proceset
  • "private_key_path" — файл с приватным ключом сервера Proceset
  • "trust_certs" — набор доверенных сертификатов

В этом блоке указываются настройки для HTTPS-сервера, т.е. необходимо подключить HTTPS-сервер на ноде n1.local на порте 7000 с сертификатом n1.crt и приватным ключом n1.key.

При наличии блока "ssl" кластер полностью переходит в «зашифрованный» режим: нода настраивает HTTPS-сервер и подключается к другим нодам только по HTTPS, аутентификация проходит на основе «клиентских» сертификатов.

В поле "trust_certs" укажите сертификат не вашей активной ноды, а сертификат удаленного сервера: n2.crt. В итоге получается перекрестный обмен сертификатами между нодами для проверки соединения и гарантии того, что подключение происходит к доверенной стороне.

Пример:

cluster.json (n1.local)
{
    "network": {
        "current": {
            "name": 1,
            "port": 7000,
            "ssl":{
                "cert_chain_path":"ssl/n1.crt",
                "private_key_path":"ssl/n1.key",
                "trust_certs": [
                    "ssl/n2.crt"
                ]
            }
        },
        "nodes": [
            {
                "name": 2,
                "target": "n2.local:7000"
            }
        ]
    }
}

Настройка HTTPS-сервера n2.local аналогична настройке HTTPS-сервера n1.local.

Подключите HTTPS-сервер на ноде n2.local на порте 7000, с сертификатом n2.crt и приватным ключом: n2.key.

Укажите, что есть нода "1", к которой можно подключиться по DNS-имени n1.local на порт 7000.

В поле "trust_certs" укажите сертификат удаленного сервера: n1.crt

cluster.json (n2.local)
{
    "network": {
        "current": {
            "name": 2,
            "port": 7000,
            "ssl":{
                "cert_chain_path":"ssl/n2.crt",
                "private_key_path":"ssl/n2.key",
                "trust_certs": [
                    "ssl/n1.crt"
                ]
            }
        },
        "nodes": [
            {
                "name": 1,
                "target": "n1.local:7000"
            }
        ]
    }
}

Пример генерации самоподписанных сертификатов для работы в кластерном режиме

Следующие примеры описаны для генерации сертификатов на OC Linux.

Имена выходных файлов соответствуют инструкции из раздела выше: Сетевая настройка кластера из двух нод.

Сгенерируйте приватный ключ и сертификат для сервера n1.local.

openssl req -x509 -nodes -newkey rsa:2048 -outform PEM -subj "/CN=n1.local" -keyout n1.key -out n1.crt

Сгенерируйте приватный ключ и сертификат для сервера n2.local.

openssl req -x509 -nodes -newkey rsa:2048 -outform PEM -subj "/CN=n2.local" -keyout n2.key -out n2.crt

Была ли статья полезна?

Да
Нет
Предыдущая
Обновление Proceset на Linux
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com
Для бизнеса
© 20102025. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.