Перейти к основному контенту

Настройка многоузлового кластера

Используйте эту инструкцию, если требуется распределить роли Клавдия между несколькими Linux-серверами. После настройки узлы используют общую базу данных, видят одни источники и правила хранения, а экземпляры Solr входят в один поисковый кластер.

Перед началом

Распределите роли

Роли выбираются при установке. Один узел может выполнять несколько ролей; веб-интерфейс включён на каждом узле обязательно.

Роль Значение для KLVD_ROLES Где размещать
Хранилище storage на серверах с дисками архива или доступом к S3
Импорт importer на серверах с доступом к почтовым источникам
Индексация indexer на серверах с ресурсами для извлечения текста и Solr
SMTP smtp на серверах, принимающих поток почты
IMAP imap на серверах, предоставляющих пользователям доступ к архиву

Например, для узла хранения и импорта:

KLVD_ROLES=storage,importer

KLVD_ROLES ограничивает доступные роли конкретного узла. После установки их включение и размещение слушателей настраиваются в [Кластер] → [Узлы кластера]. См. Изменение ролей и конфигурации узла.

Подключите узлы к общей базе

  1. Добавьте каждый новый сервер по инструкции Добавление Linux-узла в существующий кластер.
  2. Укажите ту же PostgreSQL: адрес, порт, имя базы и учётную запись.
  3. Укажите действующий секрет кластера.
  4. Выберите роли и вариант подключения к Solr.
  5. После запуска убедитесь, что новый узел появился в [Кластер] → [Узлы кластера].

Для всех узлов используется одна база. Отдельная база на новом сервере создаст другую установку, а не расширит существующий кластер.

Подключите хранилище и поиск

Узел с ролью [Хранилище] регистрирует свой адрес в общей базе. Создайте для него хранилище, включите его в группу и проверьте правила хранения. Один узел может входить в несколько локальных и S3-групп.

Для штатного SolrCloud на каждом узле индексирования используется отдельный контейнер Solr. Первый координатор запускает ZooKeeper; остальные экземпляры подключаются к ZooKeeper координатора. На узлах без локального Solr эти контейнеры не требуются. Порядок добавления: Добавление и состояние экземпляров Solr.

Адреса хранилища и Solr определяются при регистрации. Проверьте, что опубликованные адреса доступны с других серверов: localhost подходит только для обращения с того же хоста. При необходимости задайте внешний адрес через параметры из справочника переменных окружения.

В штатной схеме ZooKeeper работает на одном координаторе. Дополнительные узлы Solr создают реплики индекса, но не обеспечивают отказоустойчивость ZooKeeper. Учтите это при проектировании; см. SolrCloud: архитектура.

Разделяйте общие и локальные настройки

Где менять Что настраивается
.env, Docker Compose и секреты конкретного сервера доступные роли, адреса, порты, подключение к PostgreSQL, локальные контейнеры и тома
Веб-интерфейс любого узла источники, расписания, правила хранения, группы хранилищ, пользователи, права, LDAP/AD и общие настройки поиска
Карточка конкретного узла в веб-интерфейсе включённые роли, вес, лимиты и размещение слушателей этого узла

Общие настройки сохраняются в PostgreSQL и доступны всему кластеру. Параметры карточки узла применяются к выбранному узлу.

Выберите точку входа

Схема Что требуется
Один сервер все нужные роли и локальные компоненты на одном сервере
Два сервера общая PostgreSQL; при двух индексаторах — координатор и присоединённый экземпляр Solr
Три и более серверов та же схема подключения; распределение ролей и реплик по ресурсам и требованиям доступности

Если веб-интерфейс, SMTP или IMAP работают на нескольких узлах, настройте единую точку входа через HAProxy. Балансировщик не заменяет избыточность хранилища, резервирование базы или реплики поиска.

Проверьте результат

  1. В [Кластер] → [Узлы кластера] все добавленные узлы доступны, роли соответствуют плану.
  2. На панели состояния PostgreSQL, хранилище и поиск проходят проверку.
  3. В [Инстансы SolrCloud] экземпляры доступны, реплики находятся в состоянии active.
  4. Импортируйте тестовое письмо и найдите его через веб-интерфейс другого узла.
  5. Если используется SMTP или IMAP, проверьте подключение через выбранную точку входа.

{{СКРИНШОТ}}

Если узел не подключился

Проверьте адрес общей базы, учётные данные, секрет кластера и доступность портов. Если узел появился, но хранилище или поиск недоступны, проверьте опубликованные адреса этих служб и правила межсетевого экрана. Начните с проверки состояния узлов.

Связанные материалы

Навигация по книге