DRX INFRA Обсудить задачу

Directum RX на Linux:
с чего начать

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

Порядок работ

На Linux серверная часть RX работает в Docker-контейнерах, их разворачивает Directum Launcher. База данных, брокер сообщений и поиск ставятся рядом или на отдельных серверах. Ниже порядок, в котором это удобно делать.

  1. Посчитать серверы и диски

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

  2. Выбрать ОС и поставить Docker

    Версии ОС и Docker из таблицы ниже. На Ubuntu до установки удаляют snapd: в нём бывает второй экземпляр Docker, и Launcher с ним не работает.

  3. Поставить и настроить PostgreSQL

    Вместе с пакетом contrib. max_connections с запасом под пользователей, max_prepared_transactions равным max_connections. Остальные параметры под ваш сервер. Калькулятор PostgreSQL

  4. Поставить RabbitMQ

    До развёртывания RX. Пороги памяти и диска, пользователь, права. В Docker в режиме rootless брокер не поддерживается. Калькулятор RabbitMQ

  5. Поставить Elasticsearch, если нужен поиск

    Только версия 7.17.23, её же можно поставить позже. Калькулятор Elasticsearch

  6. Прокси и HTTPS

    Сертификат, TLS 1.2 и 1.3, привязка к серверу для двух и более веб-серверов. Доменное имя выбирают сразу: после установки его смена требует переустановки. Настройки прокси

  7. Вход пользователей

    Пароль, Kerberos внутри домена или внешний поставщик по OpenID Connect, второй фактор. Единый вход: внутри сети и снаружи

  8. Бэкап и проверка восстановления

    До запуска пользователей, а не после первой аварии. Команды бэкапа · Как проверить восстановление

  9. Мониторинг и журналы

    Метрики с уведомлениями и журналы всех серверов в одном месте. Какие алерты нужны первыми · Сбор журналов Vector

  10. Проверить безопасность

    Пароли по умолчанию, открытые порты, именные учётки, журнал действий администраторов. Самооценка безопасности

  11. Подготовиться к первому обновлению

    Тестовый контур из бэкапа прода, репетиция и план отката. Чек-лист обновления

Версии компонентов

Сводка из документов вендора: «Directum RX 4.12. Типовые требования к аппаратному и программному обеспечению» и справки Directum RX 25.2. Для 25.2 полный перечень в документе «Типовые требования» этой версии. Перед установкой сверяйтесь с ним.

КомпонентRX 4.12RX 25.2
LinuxАльт Сервер 10; РЕД ОС 7.3, 8.0; Astra Linux SE 1.7.4 и выше, 1.8.1 и выше; Ubuntu 20.04, 22.04, 24.04 LTSВ справке примеры установки на Альт Сервер 10.1, Astra Linux SE 1.7.5 и Ubuntu 22.04
Windows Server2012, 2012 R2 с обновлением KB2999226; 2016, 2019, 2022См. типовые требования 25.2
Docker Engine20.10.10 и вышеПоддерживается и режим rootless, кроме RabbitMQ
PostgreSQL и совместимыеPostgreSQL 11–17; Postgres Pro 11–17; Jatoba 4, 5, 6; Tantor 15, 16PostgreSQL, Postgres Pro, Jatoba, Tantor; версии в типовых требованиях 25.2
Microsoft SQL Server2012–2022, Express до 50 пользователейСм. типовые требования 25.2
RabbitMQ3.8.1 и выше; с Directum Ario 3.13.0 и вышеВ поставке образ 4.0; переход с 3.7, 3.11, 3.12 командой rabbitmq update
Elasticsearch7.17.237.17.23; 7.4.0, 7.4.2, 7.16.3, 7.17.13 рекомендуется обновить
Kubernetes—Helm-чарты в поставке; kubectl от 1.29.1, Helm от 3.13.3; под пространство имён от 30 ГБ памяти и 15 ядер

Сервер СУБД по требованиям вендора должен быть нечувствительным к регистру. Elasticsearch под поиск: 8 ядер, 16 ГБ памяти, SSD; индексы в среднем в 3–10 раз меньше объёма документов.

Грабли первой установки

Почти всё из этого написано в справке вендора, но в разных разделах. Собрали в одном месте то, что срывает установку чаще всего.

Путь к Directum Launcher

Не длиннее 256 символов, без пробелов, кириллицы, запятых и спецсимволов. Вендор предлагает /srv/DirectumLauncher. Путь с пробелом или русскими буквами ломает установку в неочевидном месте.

Ubuntu: snapd и библиотеки

snapd удаляют до установки: в нём может оказаться второй экземпляр Docker, и две службы Docker на одном сервере дают ошибки при установке и управлении сервисами. На Ubuntu 22.04 дополнительно ставят libicu70 и libssl1.1: без них сервисы не подключаются к базе данных. libssl1.1 в 22.04 уже нет, вендор предлагает брать её из архивного репозитория impish-security.

Альт Сервер и Astra Linux: текстовый браузер

В свежих версиях по умолчанию стоит текстовый браузер, из-за которого страница Directum Launcher открывается неправильно. Вендор рекомендует его удалить: elinks на Альт Сервер, lynx на Astra Linux.

Доменное имя

Имя сайта выбирают до установки и не меняют: по документации вендора смена имени после установки требует полной переустановки системы. Если планируется доступ из интернета, сразу заводят публичную запись DNS и сертификат.

RabbitMQ и rootless Docker

Docker можно запускать без прав суперпользователя, и вендор это поддерживает. Исключение RabbitMQ: в контейнере rootless Docker он не поддерживается. Брокер ставят на сервер с обычным Docker или службой.

PostgreSQL: два параметра и contrib

max_connections по умолчанию 100, этого мало: его увеличивают на ожидаемое число пользователей. max_prepared_transactions выставляют равным max_connections. Кроме сервера ставят пакет contrib. Память, чекпоинты и автовакуум считает калькулятор.

Журналы и место на диске

Журналы сервисов растут быстро. Вендор советует держать их на отдельном диске и чистить по расписанию командой ./do.sh clean_logs. Если диск с журналами переполнится, RX перестанет их писать, а если журналы лежат на системном диске, пострадает всё остальное.

Сначала тестовый контур. Первую установку проходят на тестовом сервере с записью каждого шага. Тот же журнал шагов становится инструкцией для продуктивного контура и для восстановления после аварии.

Установка упала с непонятной ошибкой. Справочник ошибок