# 8. Справочник

Переменные, порты, драйверы, форматы, атрибуты

# Атрибуты доменов

## Назначение

Справочник атрибутов LDAP для сопоставления с полями пользователей Printum. Используйте эту таблицу при настройке раздела **«Атрибуты»** в карточке домена (Настройки → Интеграции → Домены).

---

## Таблица атрибутов по контроллерам домена

|Поле Printum|Active Directory|FreeIPA / Samba DC / РЕД АДМ|ALD Pro|
|---|---|---|---|
|Логин (username)|`sAMAccountName`|`uid`|`uid`|
|Идентификатор в домене (unique_id)|`objectSid`|`uidNumber`|`uidNumber`|
|Фамилия (last_name)|`sn`|`sn`|`sn`|
|Имя (first_name)|`givenName`|`givenName`|`givenName`|
|Отчество (patronymic)|`personalTitle`|`personalTitle`|`rbtamiddlename`|
|Email (email)|`mail`|`mail`|`mail`|
|Доменные группы (domain_groups)|`memberOf`|`memberOf`|`memberOf`|
|Должность (position)|`title`|`title`|`title`|
|Путь к папке (smb_path)|`homeDirectory`|`homeDirectory`|`homeDirectory`|
|Срок действия аккаунта (account_expires_at)|`accountExpires`|`krbPrincipalExpiration`|`krbPasswordExpiration`|
|Параметры УЗ (user_account_control)|`UserAccountControl`|—|—|
|Аккаунт заблокирован (account_lock)|—|`nsAccountLock`|`nsAccountLock`|

---

## Примечания

- **ALD Pro:** нет разделения между группами и отделами — все отделы импортируются как группы.
- Обязательные поля: Логин, Фамилия, Имя, Идентификатор в домене, Email.

---

# Справочник переменных .env

# Справочник переменных .env Мониторинга

## Описание

Файл конфигурации Мониторинга находится по пути `/opt/printum/.env`. Переменные задаются при установке через параметры команды `install.sh` и могут быть изменены вручную после установки с последующим перезапуском контейнеров.

---

## Подключение к базам данных

|Переменная|Значение по умолчанию|Описание|
|:---|:---|:---|
|`POSTGRESQL_HOST`|встроенный|Адрес сервера PostgreSQL (при подключении к внешней БД)|
|`POSTGRESQL_PORT`|`5432`|Порт PostgreSQL|
|`POSTGRESQL_DATABASE`|`printum`|Имя базы данных|
|`POSTGRESQL_USER`|`postgres`|Пользователь PostgreSQL|
|`POSTGRESQL_PASSWORD`|—|Пароль пользователя PostgreSQL|
|`POSTGRESQL_SSLMODE`|—|Режим SSL-соединения: `allow`,`prefer`,`require`,`verify-ca`,`verify-full`|
|`POSTGRESQL_CERT_CA`|—|Абсолютный путь до CA-сертификата (при `verify-ca` или `verify-full`)|
|`CLICKHOUSE_HOST`|встроенный|Адрес сервера ClickHouse (при подключении к внешней БД)|
|`CLICKHOUSE_PORT`|`9000`|Порт ClickHouse|
|`CLICKHOUSE_DATABASE`|`printum`|Имя базы данных ClickHouse|
|`CLICKHOUSE_USER`|`default`|Пользователь ClickHouse|
|`CLICKHOUSE_PASSWORD`|—|Пароль пользователя ClickHouse|
|`CLICKHOUSE_SSL`|`False`|Включить SSL для подключения к ClickHouse (`True` / `False`)|
|`CLICKHOUSE_CERT_CA`|—|Путь до CA-сертификата ClickHouse|

---

## Сетевые настройки и hostname

|Переменная|Значение по умолчанию|Описание|
|:---|:---|:---|
|`MON_HOSTNAME`|—|IP-адрес или hostname сервера Мониторинга. Используется при установке по доменному имени|
|`IP_ADDRESS`|—|IP-адрес сервера. Используется при установке по IP-адресу (альтернатива `MON_HOSTNAME`)|

---

## Диагностика и логирование

|Переменная|Значение по умолчанию|Описание|
|:---|:---|:---|
|`LOG_LEVEL`|`WARNING`|Уровень детализации логов: `DEBUG`, `INFO`, `WARNING`, `ERROR`|

---

## Смена паролей

При смене паролей необходимо обновить соответствующие переменные в `.env` файле и перезапустить контейнеры:

    sudo docker-compose down
    sudo docker-compose up -d

|Переменная|Описание|
|:---|:---|
|`CLICKHOUSE_PASSWORD`|Пароль ClickHouse|
|`REDIS_URL`|Строка подключения Redis с паролем: `redis://:NEW-PASSWORD@redis:6379/0`|
|`REDIS_PASSWORD`|Пароль Redis|
|`CACHEOPS_REDIS`|Строка подключения Redis для кэша: `redis://:NEW-PASSWORD@redis:6379/1`|

# Справочник переменных .env ПринтМенеджера

## Описание

Файл конфигурации ПринтМенеджера находится по пути `/opt/printmanager/.env`. Просмотреть текущее содержимое:

```
sudo cat /opt/printmanager/.env
```
---

## Подключение к базе данных PostgreSQL

|Переменная|Пример значения|Описание|
|---|---|---|
|`DATABASE_URL`|`postgres://<login>:<password>@<host>:<port>/<database>`|Строка подключения к PostgreSQL в формате URL|
|`DATABASE_HOSTNAME`|`127.0.0.1`|IP-адрес или доменное имя сервера PostgreSQL|
|`DATABASE_PORT`|`5432`|Порт PostgreSQL|
|`DATABASE_TABLESPACE`|—|Табличное пространство (если отличается от значения по умолчанию)|

---

## Redis

|Переменная|Пример значения|Описание|
|---|---|---|
|`REDIS_URL`|`redis://<password>:6379/0`|Строка подключения к Redis|
|`REDIS_PASSWORD`|`redis`|Пароль Redis (при смене)|
|`REDIS_ROLE`|`master`|Роль узла Redis: `master` или `slave`|
|`REDIS_SENTINEL_LIST`|`10.10.130.1,10.10.130.2,10.10.130.3`|Список адресов Redis Sentinel (через запятую)|
|`REDIS_MASTER_HOSTNAME`|`10.10.130.1`|Адрес мастер-узла Redis|
|`REDIS_MASTER_PORT`|`6379`|Порт мастер-узла Redis|

---

## NFS (кластерная конфигурация)

|Переменная|Пример значения|Описание|
|---|---|---|
|`VOLUME_PATH`|`/opt/printmanager/volumes`|Путь к директории томов|
|`DRIVER_OPTS_TYPE`|`nfs`|Тип драйвера хранилища: `nfs` или `none`|
|`DRIVER_OPTS_O`|`port=2049,nfsvers=4.2,addr=10.10.130.4,clientaddr=10.10.130.10,nolock,soft,rw`|Опции монтирования NFS. Для принудительного указания версии протокола добавить `nfsvers=4`|
|`DRIVER_OPTS_DEVICE`|`:/scratch`|Путь к директории на NFS-сервере (с ведущим `:`)|

---

## Сетевые настройки

|Переменная|Пример значения|Описание|
|---|---|---|
|`EXT_HOSTNAME`|`pm.test`|Домен или адрес балансировщика (внешний адрес ПринтМенеджера)|
|`PM_HOSTNAME`|`10.10.130.1`|Адрес текущего сервера ПринтМенеджера|
|`PM_HTTP_PORT`|`8010`|Порт HTTP-подключения к панели администрирования ПМ|
|`PM_HTTPS_PORT`|`8080`|Порт HTTPS-подключения к панели администрирования ПМ|

---

## Смена паролей

После изменения переменных необходимо перезапустить контейнеры:

```
sudo docker-compose down
sudo docker-compose up -d
```

|Переменная|Описание|
|---|---|
|`DATABASE_URL`|Обновить строку подключения: `postgres://postgres:NEW-PASSWORD@db:5432/printmanager`|
|`CUPS_PASSWORD`|Пароль CUPS|
|`FTP_SCAN_PASSWORD`|Пароль FTP для доставки сканов|

# Справочник контейнеров — где искать логи

# Когда использовать

При диагностике проблем в Принтум — чтобы быстро определить, логи какого контейнера
смотреть в зависимости от симптома.

---

# Мониторинг

Контейнеры расположены в `/opt/printum/`. Команда для просмотра логов:

```bash
cd /opt/printum && sudo docker-compose logs <контейнер> --tail=200
```

| Контейнер | Назначение | Когда смотреть | Что искать в логах |
|---|---|---|---|
| `printum_nginx` | HTTP/TCP-прокси; проксирует все соединения к приложению, отдаёт статику | Ошибки при загрузке Личного кабинета или панели администратора; МФУ не добавляются в Мониторинг; нет синхронизации с ПринтМенеджером | URL с ошибками; коды 4xx/5xx; ошибки запросов от Сетевого агента и ПринтМенеджера |
| `printum_dashboard` | Личный кабинет (фронтенд) | Ошибки при открытии Личного кабинета в браузере | URL с ошибками; коды ответов; IP-адреса, вызывающие ошибки |
| `printum_worker-default`<br>`printum_worker-high`<br>`printum_worker-low` | Celery-воркеры — фоновые задачи Мониторинга: отправка писем, обработка данных от МФУ | Не приходят письма; не обновляется статус МФУ или ресурс деталей; данные появляются с задержкой; нет синхронизации с ПринтМенеджером | Время запуска и завершения задач; ошибки периодических задач; задачи без завершения |
| `printum_scheduler` | Планировщик Celery — отправляет задачи в очереди по расписанию | Задачи по расписанию не выполняются (синхронизация с доменом, уведомления, обновление данных) | Факт запуска задачи по расписанию; ошибки постановки в очередь |
| `printum_backend` | API Мониторинга — все синхронные запросы | Ошибки в Личном кабинете (действия не выполняются); проблемы с локациями; обмен данными с Локальным агентом | Ошибки API-запросов; коды 4xx/5xx; проблемы валидации или логики |
| `printum_clickhouse` | ClickHouse — аналитическая БД | Нет статистики печати; проверка запуска сервиса | Ошибки запуска БД |
| `printum_redis` | Redis — брокер сообщений Мониторинга | Проверка работоспособности сервиса | Ошибки запуска сервиса |
| `printum_postgres` | PostgreSQL — основная БД Мониторинга | Проверка работоспособности сервиса | Ошибки запуска БД |

---

# ПринтМенеджер

Контейнеры расположены в `/opt/printmanager/`. Команда для просмотра логов:

```bash
cd /opt/printmanager && sudo docker-compose logs <контейнер> --tail=200
```

| Контейнер | Назначение | Когда смотреть | Что искать в логах |
|---|---|---|---|
| `printmanager_web` | Nginx — панель администратора ПринтМенеджера | Нет синхронизации с Мониторингом | URL с ошибками; коды 4xx/5xx |
| `printmanager-celery` | Celery — фоновые задачи ПринтМенеджера: импорт МФУ, статистика, печать | МФУ не импортируются из Мониторинга; задания печатаются с задержкой или не печатаются; ошибки установки Встроенного приложения | Ошибки интеграции с Мониторингом; ошибки печати; ошибки соединения с CUPS |
| `printmanager-celery-print-queue` | Очередь бесклиентской печати — опрашивает CUPS на наличие новых заданий | Задания не попадают в очередь или попадают с задержкой | Ошибки соединения с CUPS; ошибки обработки заданий из CUPS |
| `printmanager-scheduler` | Планировщик Celery ПринтМенеджера | Задания перестали приходить в очередь; задания гостевой или почтовой печати не обрабатываются; образы документов не появляются | Факт запуска задачи; ошибки постановки в очередь |
| `printmanager-app` | **Основной контейнер** — Django-приложение; обрабатывает все HTTP-запросы, авторизацию, МФУ, Клиент ПМ | Проблемы с печатью, сканированием, копированием; проблемы с авторизацией; задания не доходят до МФУ; обмен с Клиентом ПМ | Ошибки API-запросов; коды 4xx/5xx; ошибки валидации/логики/БД |
| `printmanager-converter-server` | TCP-конвертер — принимает TCP-запросы и передаёт в `printmanager-app` по HTTP | Проблемы с авторизацией по TCP (считыватели карт) | Приходит ли сообщение от конвертера; номер карты от конвертера |
| `printmanager-ftpd` | Временное FTP-хранилище файлов сканирования/копирования | Задание копирования выполнено, но не распечатано; образ задания сканирования не появился в ПринтМенеджере | Ошибки обработки образа документа |
| `printmanager-db` | PostgreSQL — БД ПринтМенеджера | Проверка работоспособности сервиса | Ошибки запуска БД |
| `printmanager-cups` | CUPS — сервер печати; обрабатывает всю отложенную печать | Задания не распечатываются; недоступна панель CUPS (порт 1631) | Ошибки работы сервиса; ошибки МФУ в CUPS. _Примечание:_ `Unable to encrypt connection: A TLS fatal alert` — не ошибка системы, означает что клиент не является доверенным |
| `printmanager-redis` | Redis — брокер ПринтМенеджера | Single: проверка сервиса. HA: ноды ПринтМенеджера недоступны | Single: ошибки запуска. HA: ошибки переключения master→slave |
| `printmanager-redis-sentinel` | Redis Sentinel — только в схеме с балансировщиком | Ноды ПринтМенеджера недоступны | Ошибки переключения master→slave |

---

# Агенты и Клиент ПМ

| Компонент | Назначение | Когда смотреть | Где логи |
|---|---|---|---|
| Сетевой агент | Сканирование сети и сбор данных с МФУ по SNMP | МФУ не появляется в разделе «Инвентаризация → Устройства» | `journalctl -u printum-network-agent` (Linux) |
| Локальный агент (Windows) | Мониторинг заданий печати на Windows | МФУ не появляется в Личном кабинете; нет статистики | Просмотр событий Windows → Приложение |
| Локальный агент (Linux) | Мониторинг заданий печати на Linux | МФУ не появляется в Личном кабинете; нет статистики | `journalctl -u printum-local-agent` |
| Клиент ПМ (Windows) | Отправка заданий на печать с Windows АРМ | Задание не появляется в очереди; МФУ не появляются на АРМ | `C:\ProgramData\printum\logs\` |
| Клиент ПМ (Linux) | Отправка заданий на печать с Linux АРМ | Задание не появляется в очереди; МФУ не появляются на АРМ | `/var/log/printum/printmanager_client.log` |

---

# Что приложить к заявке в ТП

Команды для сбора всех логов одной копипастой:

**Мониторинг:**

```bash
cd /opt/printum
bash logs.sh
# Или вручную:
sudo docker-compose logs --tail=500 > /tmp/monitoring_logs_$(date +%Y%m%d_%H%M).txt 2>&1
cat .version
```

**ПринтМенеджер:**

```bash
cd /opt/printmanager
bash logs.sh
# Или вручную:
sudo docker-compose logs --tail=500 > /tmp/pm_logs_$(date +%Y%m%d_%H%M).txt 2>&1
cat .version
```

**Конкретный контейнер:**

```bash
# Мониторинг
cd /opt/printum && sudo docker-compose logs <контейнер> --tail=500

# ПринтМенеджер
cd /opt/printmanager && sudo docker-compose logs <контейнер> --tail=500
```

**Клиент ПМ (Linux):**

```bash
cat /var/log/printum/printmanager_client.log
```

К заявке приложить:
- Вывод `logs.sh` (или файлы логов)
- Вывод `cat .version` (версия компонента)
- Описание симптома и шагов воспроизведения
- ОС сервера
- Модель МФУ (если проблема связана с конкретным устройством)

# Карта системы Принтум

## Описание

Большинство неисправностей в Printum связаны не с отдельным компонентом, а с разрывом потока данных между компонентами.

При диагностике необходимо сначала определить, к какой из областей относится проблема, а затем локализовать участок цепочки, на котором нарушена передача данных.

---

## 1. Путь задания печати

Используется для диагностики:
- не печатает документ;
- задание не появляется в системе;
- задание есть, но не выходит на принтер;
- не работает отложенная печать;
- не работает прямая печать;
- нет статистики по заданию.

### Печать через Клиент ПМ

```
Приложение
→ Локальная очередь печати
→ Клиент ПМ
→ ПринтМенеджер
→ Очередь заданий
→ CUPS
→ МФУ
→ Статистика в ПринтМенеджере
→ Статистика в Мониторинге
```

## Бесклиентская печать

```
Приложение
→ Универсальный драйвер
→ CUPS ПринтМенеджера
→ ПринтМенеджер
→ Очередь заданий
→ CUPS
→ МФУ
→ Статистика в ПринтМенеджере
→ Статистика в Мониторинге
```

## Что проверять по цепочке

**Доходит ли задание до ПринтМенеджера?**

Проверьте:
- появилось ли задание в разделе `Управление → Задания`;
- есть ли задание в очереди пользователя.

Если задания нет, проверьте:
- клиент ПМ;
- локальную очередь печати;
- виртуальный принтер;
- универсальный драйвер;
- входящий CUPS.

**Обработал ли задание ПринтМенеджер?**

Проверьте:
- применились ли правила;
- не удалено ли задание правилом;
- корректно ли определились атрибуты задания.

**Передал ли CUPS задание на устройство?**

Проверьте:
- есть ли задание в CUPS;
- статус задания;
- ошибки доставки;
- доступность устройства.

**Напечатало ли устройство задание?**

Проверьте:
- состояние устройства;
- ошибки устройства;
- наличие бумаги и тонера в устройстве;
- сетевую доступность.

**Обновилась ли статистика?**

Проверьте:
- архив заданий в ПринтМенеджере;
- синхронизацию Мониторинга и ПринтМенеджера.

---

## 2. Пользователи и права

Используется для диагностики:

- пользователь не появился;
- группа не появилась;
- роль не назначилась;
- правило не применилось;
- не выдался принтер прямой печати;
- пользователь не может войти в систему.

### Цепочка

```
Домен
→ Мониторинг
→ Пользователь + Роль + Правила
→ ПринтМенеджер
→ Принтер
```

### Что проверять по цепочке

**Видит ли Мониторинг пользователя?**

Проверьте:
- подключение Мониторинга к домену по LDAP;
- стартовый уровень поиска в домене (Base DN);
- фильтры поиска;
- сопоставление атрибутов;
- результаты синхронизации.

**Попал ли пользователь в ПринтМенеджер?**

Проверьте:
- синхронизацию Мониторинг → ПринтМенеджер;
- наличие пользователя в ПринтМенеджере.

**Назначилась ли роль?**

Проверьте:
- членство пользователя в группах;
- правила назначения ролей через LDAP-группы;
- роль по умолчанию.

**Применились ли правила?**

Проверьте:
- персональные правила;
- групповые правила;
- квоты;
- ограничения.

**Выдались ли принтеры?**

При использовании Клиента ПМ проверьте:
- существует ли принтер в ПринтМенеджере;
- назначен ли пользователю или группе;
- получил ли клиент ПМ на АРМ пользователя изменения после синхронизации.

---

## 3. Мониторинг устройств

Используется для диагностики:

- устройство не найдено;
- нет счётчиков;
- нет расходников;
- нет статусов;
- нет событий;
- данные не попадают в отчёты.

### Цепочка

```
Устройство
→ SNMP
→ Сетевой агент
→ ClickHouse
→ Обработка данных
→ PostgreSQL
→ Личный кабинет
→ Отчёты
```

### Что проверять по цепочке

**Отвечает ли устройство по SNMP?**

Проверьте:
- доступность IP-адреса;
- порты 161/162;
- SNMP Community;
- результаты snmpwalk.

**Нашёл ли устройство агент?**

Проверьте:
- указан ли IP в локации и\или входит ли IP устройства в диапазоны\подсети локаций;
- завершилось ли сканирование;
- есть ли устройство у агента.

**Попали ли данные на сервер?**

Проверьте:
- связь агента с сервером;
- передачу данных;
- ошибки отправки.

**Обработались ли данные?**

Проверьте:
- наличие данных в ClickHouse;
- выполнение фоновой обработки;
- наличие параметров в PostgreSQL.

**Попали ли данные в интерфейс?**

Проверьте:
- настройки интерпретации;
- настройки модели;
- настройки вендора;
- настройки отчётов.

---

## 4. Авторизация на МФУ

Используется для диагностики:

- не работает карта;
- не работает PIN;
- пользователь входит, но не видит задания;
- встроенное приложение не показывает очередь.

### Цепочка авторизации по карте во встроенном приложении

```
Карта
→ Считыватель
→ Embedded App
→ ПринтМенеджер
→ Пользователь
→ Очередь заданий
```
### Цепочка авторизации по карте через внешнее устройство автризации

```
Карта
→ Считыватель
→ TCP-конвертер
→ ПринтМенеджер
→ Пользователь
→ Очередь заданий
```
### Цепочка авторизации по PIN

```
PIN
→ Embedded App
→ ПринтМенеджер
→ Пользователь
→ Очередь заданий
```

### Что проверять по цепочке

**Доходит ли идентификатор пользователя?**

Для карты проверьте:
- номер карты считывается;
- номер карты передаётся в систему;
- номер карты привязан пользователю.

Для PIN проверьте:
- PIN существует;
- PIN принадлежит пользователю.

**Существует ли пользователь?**

Проверьте:
- пользователь есть в ПринтМенеджере;
- пользователь синхронизирован из домена.

**Успешна ли авторизация?**

Проверьте:
- лицензии Embedded App;
- связь приложения с ПринтМенеджером;
- настроен ли TCP-конвертер и привязан ли к нужному принтеру (для внешней авторизации);
- ошибки авторизации.

**Получает ли пользователь очередь печати?**

Проверьте:
- есть ли задания у пользователя;
- принадлежат ли задания этому пользователю;
- может ли Embedded App получить список заданий.

**Выполняется ли Fast Release?**

Проверьте:
- отправляет ли Embedded App запрос на печать;
- получает ли ПринтМенеджер запрос;
- появляется ли задание в CUPS.

---

## 4. Сканирование в почту и сетевую папку

Используется для диагностики:

- файл сканируемого документа не пришёл в почту\сетевую папку пользователя;
- в статистике пользователя не отображается задание сканирования;

### Цепочка сканирования в почту

```
Пользователь
→ Авторизация в Embedded App
→ Сканирование в почту
→ ПринтМенеджер
→ Почтовый сервер
→ Статистика в Мониторинге
```
### Цепочка сканирования в сетевую папку

```
Пользователь
→ Авторизация в Embedded App
→ Сканирование в сетевую папку
→ ПринтМенеджер
→ Сервер сетевого хранилища файлов
→ Статистика в Мониторинге
```

### Что проверять по цепочке

**Существует ли пользователь?**

Проверьте:
- пользователь есть в ПринтМенеджере;
- пользователь синхронизирован из домена.

**Успешна ли авторизация?**

Проверьте:
- лицензии Embedded App;
- связь приложения с ПринтМенеджером;
- настроен ли TCP-конвертер и привязан ли к нужному принтеру (для внешней авторизации);
- ошибки авторизации.

**Есть ли у пользователя доступ к приложению сканирования в почту\сетевую папку?**

Проверьте:
- наличие в ПринтМенеджере правил запрета доступа к приложению сканирования;
- применение правил запрета доступа к приложению сканирования на пользователя и подразделения\группы, в которых он состоит;

**Есть ли сетевая доступность между ПринтМенеджером и почтовым сервером\сервером хранилища файлов?**

Проверьте:
- фактический доступ по сети с сервера ПринтМенеджера до целевых серверов;
- корректность данных для подключения ПринтМенеджера к целевым серверам;

**Есть ли сетевая и ролевая доступность между пользователем и почтовым сервером\сервером хранилища файлов?**

Проверьте:
- сетевую доступность с АРМ пользователя к серверу хранилища файлов;
- наличие прав доступа в сетевую папку на УЗ пользователя;
- отправку других сообщений с целевого почтового сервера на почту пользователя;

**Обновилась ли статистика?**

Проверьте:
- архив заданий в ПринтМенеджере;
- синхронизацию Мониторинга и ПринтМенеджера.

# Поддерживаемые операционные системы

## Назначение

Единый справочник поддерживаемых операционных систем для всех компонентов Printum. Требования к CPU/RAM/диску и остальные требования к инфраструктуре — в профильных статьях по каждому компоненту (ссылки в конце статьи).

**Поддерживаются:**

- Серверы (Мониторинг, ПринтМенеджер, HAProxy) — только Linux.
- Клиент ПМ — Windows, Linux (Astra Linux, Ред ОС, Альт), macOS.
- Локальный агент — Windows, Linux (Astra Linux, Ред ОС, Альт).
- Выделенная ВМ сетевого агента мониторинга — Windows, Linux (Ubuntu, Astra Linux, Ред ОС, Альт).

## Серверные ОС 

Серверные компоненты Printum (Мониторинг, ПринтМенеджер и HAProxy) поддерживаются только на Linux-системах из списка ниже.

| Операционная система                               | Версия                          |
| -------------------------------------------------- | ------------------------------- |
| Ubuntu                                             | 20.04 LTS, 22.04 LTS, 24.04 LTS |
| Astra Linux Special Edition | 1.7 «Орёл» и 1.8 «Орёл»¹                 |
| Ред ОС                                             | 7.3 «МУРОМ», 8                  |
| Альт Сервер                                        | 10                              |

¹ Ядро `linux-5.10-generic` или `linux-5.15-generic`; для конфигурации, где на сервере установлен только Мониторинг, дополнительно поддерживаются ядра `linux-6.1.*-generic`, `linux-6.12.*-generic`.

## Рабочие станции — Клиент ПМ

|Операционная система|Версии|
|---|---|
|Windows|10, 11|
|Ред ОС|7.3 «МУРОМ», 8|
|Astra Linux Special Edition|1.7 «Орёл»|
|Альт Рабочая станция|10|
|macOS|Catalina, Monterey|

## Рабочие станции — Локальный агент

|Операционная система|Версии|
|---|---|
|Windows|10, 11|
|Astra Linux Special Edition|1.7 «Орёл»¹|
|Ред ОС|7.3 «МУРОМ», 8|
|Альт Рабочая станция|10|

¹ Ядро `linux-X.X-generic`.

## ВМ для выделенного сетевого агента мониторинга

|Операционная система|Версии|
|---|---|
|Windows|7 x64 и выше|
|Ubuntu|20.04 LTS, 22.04 LTS, 24.04 LTS|
|Astra Linux Special Edition|1.7 «Орёл»¹|
|Ред ОС|7.3 «МУРОМ», 8|
|Альт Сервер|10|

¹ Ядро `linux-X.X-generic`.


## Связанные статьи

- [Требования к серверу и сайзинг](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-serveram-i-saizing) — CPU, RAM, диск и общие требования к серверам.
- [Требования к рабочим станциям пользователей](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-rabocim-stanciiam-polzovatelei) — требования к АРМ для Клиента ПМ и Локального агента.

# Требования к серверам и сайзинг

## Назначение

Сколько CPU, RAM и места на диске нужно серверам Printum зависит от компонента, конфигурации и нагрузки. Требования к подготовке инфраструктуры (репозитории, права доступа, сертификаты, снапшоты и т.д.) — в статье [Подготовка инфраструктуры к установке](https://docs.printum.io/books/3-ustanovka/page/podgotovka-infrastruktury-k-ustanovke). Список поддерживаемых серверных ОС — в статье [Поддерживаемые операционные системы](https://docs.printum.io/books/8-spravocnik/page/podderzivaemye-operacionnye-sistemy).

Поддерживаются три схемы установки, которые по-разному комбинируют компоненты из таблиц ниже:

- **Сингл** — Мониторинг и ПринтМенеджер установлены на одном сервере.
- **Кластер Active-Active** — Мониторинг и несколько серверов ПринтМенеджера, работающих одновременно под управлением балансировщика нагрузки HAProxy.
- **Филиальная сеть** — центральный сервер Мониторинга и один или несколько филиальных серверов ПринтМенеджера, обеспечивающих автономную работу печати при потере связи с центральным сервером.

## Минимальные требования по компонентам

### Сингл

Подходит для небольших инсталляций и пилотных внедрений.

|Параметр|Требование|
|---|---|
|CPU|8-ядерный 64-бит, с поддержкой SLAT, 2 ГГц или выше|
|RAM|16 ГБ; не менее 2 ГБ ОЗУ на каждое ядро CPU|
|Диск (корневой раздел)|Не менее 160 ГБ|

### Мониторинг (отдельный сервер)

Используется, если заказчику нужен только функционал мониторинга, а также как центральный сервер Мониторинга в филиальной архитектуре.

|Параметр|Требование|
|---|---|
|CPU|4-ядерный 64-бит, с поддержкой SLAT, 2 ГГц или выше|
|RAM|8 ГБ; не менее 2 ГБ ОЗУ на каждое ядро CPU|
|Диск (корневой раздел)|Не менее 80 ГБ|

### ПринтМенеджер (отдельный сервер)

Используется для второго и последующих узлов в конфигурации **Кластер Active-Active**, а также для сервера на каждую локацию в конфигурации **Филиальная сеть**.

|Параметр|Требование|
|---|---|
|CPU|6-ядерный 64-бит, с поддержкой SLAT, 2 ГГц или выше|
|RAM|12 ГБ; не менее 2 ГБ ОЗУ на каждое ядро CPU|
|Диск (корневой раздел)|Не менее 160 ГБ|

### HAProxy (балансировщик нагрузки)

Используется в конфигурации **Кластер Active-Active**.

|Параметр|Требование|
|---|---|
|CPU|2-ядерный|
|RAM|2 ГБ|
|Диск (корневой раздел)|Не менее 32 ГБ|
|ОС|Серверная ОС в минимальной конфигурации, без дополнительного ПО|

## Сайзинг Мониторинга по количеству устройств

Рекомендуемые ресурсы сервера и встроенных БД в зависимости от количества контролируемых устройств печати.

При необходимости базы данных могут быть вынесены на отдельные серверы.

|Устройств|CPU сервера|RAM сервера|CPU ClickHouse|RAM ClickHouse|CPU PostgreSQL|RAM PostgreSQL|
|---|---|---|---|---|---|---|
|До 1 000|4|8 ГБ|4|8 ГБ|4|8 ГБ|
|1 000 — 4 999|6|12 ГБ|4|8 ГБ|4|8 ГБ|
|5 000 и более|8|16 ГБ|4|8 ГБ|4|8 ГБ|


## Сайзинг ПринтМенеджера по нагрузке

**Single** — односерверная конфигурация (Сингл). **Cluster** — конфигурация Кластер Active-Active.

Один сервер, соответствующий минимальным требованиям, обрабатывает до 100 среднестатистических заданий печати в минуту (PDF-файлы объёмом 2–3 страницы).

|Конфигурация|Заданий/мин|Страниц/мин|CPU ПМ|RAM ПМ|CPU PostgreSQL|RAM PostgreSQL|CPU HAProxy|RAM HAProxy|CPU NFS|RAM NFS|
|---|---|---|---|---|---|---|---|---|---|---|
|Single 6|100|300|6|12 ГБ|4|8 ГБ|—|—|—|—|
|Single 8|130|390|8|16 ГБ|4|8 ГБ|—|—|—|—|
|Single 12|200|600|12|24 ГБ|6|12 ГБ|—|—|—|—|
|Single 16|260|780|16|32 ГБ|8|16 ГБ|—|—|—|—|
|Cluster 3×6|250|750|6|12 ГБ|10|20 ГБ|2|4 ГБ|4|8 ГБ|
|Cluster 3×8|330|990|8|16 ГБ|12|24 ГБ|2|4 ГБ|4|8 ГБ|
|Cluster 3×12|500|1 500|12|24 ГБ|18|36 ГБ|2|4 ГБ|4|8 ГБ|
|Cluster 3×16|665|1 995|16|32 ГБ|24|48 ГБ|2|4 ГБ|4|8 ГБ|

## Внешние базы данных

По умолчанию используются собственные БД: ClickHouse и PostgreSQL — для Мониторинга, PostgreSQL — для ПринтМенеджера. При необходимости поддерживается подключение к внешним БД.

|Компонент|БД|Версия|
|---|---|---|
|Мониторинг|PostgreSQL / Postgres PRO|15|
|Мониторинг|ClickHouse|20|
|Мониторинг|ADQM|24|
|ПринтМенеджер|PostgreSQL / Postgres PRO|11.4|

Внешняя база данных должна обеспечивать время отклика от серверов Printum в пределах 2–5 мс.

## Связанные статьи

- [Требования к сетевой доступности и портам](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-setevoi-dostupnosti-i-portam)
- [Требования к сертификатам безопасности](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-sertifikatam-bezopasnosti)

# Требования к рабочим станциям пользователей

## Назначение

Минимальные требования к рабочим станциям пользователей для установки **Клиента ПМ** и **Локального агента**, а также список ПО, конфликтующего с компонентами Printum. Перечень поддерживаемых ОС для обоих компонентов — в статье [Поддерживаемые операционные системы](https://docs.printum.io/books/8-spravocnik/page/podderzivaemye-operacionnye-sistemy).

## Клиент ПМ

Клиент ПМ устанавливается на АРМ пользователя для печати через сервер управления печатью.

|Параметр|Требование|
|:---|:---|
|CPU|Не менее 1 ГГц|
|RAM|4 ГБ для 64-разрядной системы|
|Диск|2 ГБ свободного места|
|ОС|См. [Поддерживаемые операционные системы](https://docs.printum.io/link/616#bkmrk-%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8-%E2%80%94-%D0%9A%D0%BB)|

## Локальный агент

Локальный агент устанавливается на АРМ пользователя для опроса локально подключённых (USB) устройств печати.

|Параметр|Требование|
|:---|:---|
|CPU|Не менее 1 ГГц|
|RAM|4 ГБ для 64-разрядной системы|
|ОС|См. [Поддерживаемые операционные системы](https://docs.printum.io/link/616#bkmrk-%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8-%E2%80%94-%D0%9B%D0%BE)|

## Дополнительные требования для Windows

- Для установки компонентов требуется наличие прав администратора на УЗ пользователя, выполняющего установку. Права должны включать разрешение на установку драйверов печати в ОС.
- Потребуется добавление сертификата драйвера для клиента ПМ.

## Конфликтующее ПО — удалить или отключить перед установкой

Клиент ПМ и Локальный агент могут конфликтовать со сторонними продуктами по управлению печатью. Перед установкой такое ПО следует удалить или полностью отключить:

- PrintXpert
- Ysoft SafeQ Local Monitor
- Ysoft SafeQ Flexispooler
- LPD, LPR (конфликт возможен в момент установки драйвера)
- PaperCut Print Logger (конфликт возможен в момент установки драйвера)
- Staffcop Enterprise, модуль «Принтеры»

## Связанные статьи

- [Требования к серверам и сайзинг](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-serveram-i-saizing)
- [Требования к сетевой доступности и портам](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-setevoi-dostupnosti-i-portam)
- [Требования к сертификатам безопасности](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-sertifikatam-bezopasnosti)

# Требования к ВМ для выделенного сетевого агента мониторинга

## Назначение

По умолчанию Сетевой агент устанавливается на сервер Мониторинга. Отдельная ВМ используется при работе с облачным Мониторингом, а также в случаях, когда агент необходимо разместить в другой сети или филиале.

## Минимальные требования к ВМ

| Параметр | Требование                                                                                                                                                                             |
| :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CPU      | 64-разрядный, от 1 ГГц                                                                                                                                                                 |
| RAM      | 2 ГБ                                                                                                                                                                                   |
| Диск     | 200 МБ свободного места                                                                                                                                                                |
| ОС       | См. [Поддерживаемые операционные системы](https://docs.printum.io/link/616#bkmrk-%D0%92%D0%9C-%D0%B4%D0%BB%D1%8F-%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D1%81) |

## Требования к сетевой доступности

Требования к соединениям выделенного сетевого агента приведены в статье [Требования к сетевой доступности и портам](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-setevoi-dostupnosti-i-portam).

## Примечания

- На устройствах печати должен быть включён SNMP: версии 1 или 2 — без авторизации, либо версии 3 — с учётными данными устройства.

## Связанные статьи

- [Требования к серверам и сайзинг](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-serveram-i-saizing)

# Требования к сетевой доступности и портам

## Назначение

Следующие сетевые соединения должны быть доступны для работы Printum:
- Базовые порты для любой схемы установки и диагностики сети.
- Дополнительные порты для встроенных приложений и авторизации.
- Порты для отказоустойчивой конфигурации с балансировкой нагрузки.

Описание компонентов системы (Мониторинг, ПринтМенеджер, Сетевой агент, Клиент ПМ, HAProxy и т.д.) и типовых схем установки (Сингл, Кластер, Филиальная сеть) — в отдельной статье «Архитектурная схема и компоненты системы» (готовится, ссылка появится после публикации).

Дополнительно все используемые внешние ресурсы (базы данных семейства ClickHouse и PostgreSQL, домены, NFS-папка) должны иметь доступное соединение и открытые порты для подключения серверов Printum к ним.

Не используйте адреса из пула `10.28.32.0/26` — они зарезервированы внутренней сетью Printum.

## Основные порты

| Порт            | Направление                                                              | Протокол              | Назначение в Printum                                                                                 |
| :-------------- | :----------------------------------------------------------------------- | :-------------------- | :--------------------------------------------------------------------------------------------------- |
| 80              | От пользовательских АРМ — к серверу                                      | HTTP                  | Личный кабинет (нешифрованный)                                                                       |
| 443             | От пользовательских АРМ — к серверу                                      | HTTPS                 | Личный кабинет (шифрованное подключение)                                                             |
| 80              | От сервера — к принтерам и МФУ                                           | HTTP                  | Установка и настройка встроенных приложений на МФУ                                                   |
| 443             | От сервера — к принтерам и МФУ                                           | HTTPS                 | Установка и настройка встроенных приложений на МФУ (шифрованное подключение)                         |
| 8000            | От АРМ — к серверу; от ПринтМенеджера — к Мониторингу                    | HTTP                  | Панель администратора Мониторинга, синхронизация между компонентами                                  |
| 8001            | От АРМ — к серверу; от ПринтМенеджера — к Мониторингу                    | HTTPS                 | Панель администратора Мониторинга, синхронизация (шифрованное подключение)                           |
| 8010            | От АРМ, МФУ — к серверу; от Мониторинга — к ПринтМенеджеру               | HTTP                  | Панель администратора ПринтМенеджера, встроенные приложения, синхронизация                           |
| 8080            | От АРМ, МФУ — к серверу; от Мониторинга — к ПринтМенеджеру               | HTTPS                 | Панель администратора ПринтМенеджера, встроенные приложения, синхронизация (шифрованное подключение) |
| 1631            | От АРМ — к серверу ПМ                                                    | IPP                   | Веб-интерфейс CUPS в ПринтМенеджере, отправка «прямой» печати на устройство                          |
| 161, 162        | От сервера — к принтерам и МФУ (UDP, двунаправленно)                     | SNMP                  | Опрос устройств Сетевым агентом, настройка встроенных приложений                                     |
| 20, 21          | От МФУ — к серверу                                                       | FTP (активный режим)  | Доставка заданий сканирования на сервер                                                              |
| 30000–30199     | От МФУ — к серверу                                                       | FTP (пассивный режим) | Доставка заданий сканирования на сервер                                                              |
| 631             | От сервера — к устройствам                                               | IPP                   | Взаимодействие сервера управления печатью и МФУ                                                      |
| 9100            | От сервера — к устройствам                                               | RAW / JetDirect       | Взаимодействие сервера управления печатью и МФУ (альтернативный протокол печати)                     |
| 8090            | Внутрисерверное или между серверами Printum                              | HTTP                  | Прямое скачивание файлов из CUPS (нешифрованное)                                                     |
| 8091            | Внутрисерверное или между серверами Printum                              | HTTPS                 | Прямое скачивание файлов из CUPS (шифрованное)                                                       |
| 22              | От АРМ администратора — к серверу                                        | SSH                   | Установка, обновление, диагностика, удалённое администрирование                                      |
| 25              | От сервера — к почтовому серверу                                         | SMTP                  | Отправка писем и уведомлений                                                                         |
| 993             | От сервера — к почтовому серверу                                         | IMAP                  | Гостевая печать через почтовый ящик                                                                  |
| 514, 1514, 1468 | От сервера Мониторинга — к серверу syslog                                | TCP/UDP               | Выгрузка событий журнала ИБ в syslog                                                                 |
| 32768–60999     | От сервера — к любым внешним компонентам, включая другие серверы Printum | TCP (эфемерные)       | Динамические порты для исходящих соединений (инициатор соединения)                                   |

## Дополнительные порты для встроенных приложений и авторизации

### Встроенные приложения (HP, Konica Minolta)

| Порт  | Направление        | Протокол          | Вендор         |
| :---- | :----------------- | :---------------- | :------------- |
| 7627  | От сервера — к МФУ | SOAP через HTTP   | HP             |
| 57627 | От сервера — к МФУ | Произвольный порт | HP             |
| 50003 | От сервера — к МФУ | Произвольный порт | Konica Minolta |
| 50443 | От сервера — к МФУ | Произвольный порт | Konica Minolta |

### TCP-конвертер

TCP-конвертер — это не встроенное приложение, а внешнее сетевое устройство для авторизации пользователей по карте на МФУ, у которых нет встроенного приложения.

| Порт       | Направление                    | Протокол | Назначение                                                   |
| :--------- | :----------------------------- | :------- | :----------------------------------------------------------- |
| 7776, 7777 | От TCP-конвертеров — к серверу | TCP/WS   | Авторизация встроенных приложений на МФУ через TCP-конвертер |

## Дополнительные порты для отказоустойчивой конфигурации с балансировкой нагрузки

| Порт        | Направление                                         | Протокол | Назначение в Printum                     |
| :---------- | :-------------------------------------------------- | :------- | :--------------------------------------- |
| 6379, 26379 | Между серверами ПринтМенеджер                       | TCP      | Redis Sentinel — кластер хранилища задач |
| 7000        | От АРМ администратора — к серверу с балансировщиком | HTTPS    | Просмотр технической панели HAProxy      |

## Требования к SNMP

- Поддерживаются версии SNMP v1, v2 и v3.
- Для опроса по v3 требуются учётные данные устройства.
- Порты 161 (опрос) и 162 (SNMP-trap) должны быть доступны в обе стороны между сервером/сетевым агентом и МФУ.

## Диагностика сети

- Рекомендуется разрешить ICMP во всех направлениях.
- Используется для ping и общей сетевой диагностики.

## Что открыть на firewall при внедрении

Набор портов зависит от схемы установки — см. таблицы выше.

- **Сингл** — порты из разделов «Основные порты» и «Дополнительные порты для встроенных приложений и авторизации».
- **Кластер Active-Active** — порты из «Основные порты» и «Дополнительные порты для встроенных приложений и авторизации» на целевых узлах, плюс «Дополнительные порты для отказоустойчивой конфигурации с балансировкой нагрузки» между узлами и до балансировщика.
- **Филиальная сеть** — порты из «Основные порты» на центральном сервере Мониторинга и «Дополнительные порты для встроенных приложений и авторизации» на сервере ПринтМенеджера в каждой локации.


## Связанные статьи

- [Требования к сертификатам безопасности](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-sertifikatam-bezopasnosti)
- Архитектурная схема и компоненты системы — *статья в разработке, ссылка появится после публикации*

# Требования к сертификатам безопасности

## Назначение

Состав, формат и обязательные атрибуты SSL-сертификатов для установки Printum. Набор файлов зависит от схемы установки:

|Конфигурация|Что требуется|
|:---|:---|
|Сингл|Один комплект сертификатов (корневой + серверный + ключ) на весь сервер.|
|Кластер Active-Active|Отдельный сертификат и ключ на каждый сервер, корневой сертификат общий.|
|Филиальная сеть|Собственный сертификат на сервере каждого филиального ПринтМенеджера, корневой сертификат общий.|

## Использование автоматических сертификатов

Мониторинг и ПринтМенеджер могут генерировать самоподписанные сертификаты при установке, если не указано использование собственных. Использование автоматических сертификатов **допустимо только для конфигурации Сингл**. 

При их использовании веб-браузеры будут показывать предупреждение о недоверии при входе в Личный кабинет и панели администратора. Для Кластера и Филиальной сети такие сертификаты не подходят — там требуется отдельный сертификат на каждый сервер (см. ниже).

## Состав сертификатов

### Сингл

Нужны три файла:

|Файл|Описание|
|:---|:---|
|`ca.crt`|Корневой сертификат (CA)|
|`server.crt`|Сертификат сервера|
|`server.key`|Закрытый ключ сертификата сервера|

Если используется промежуточный CA сертификат — он тоже должен быть передан отдельным файлом.

### Кластер

Отдельный сертификат и ключ для каждого сервера (HAProxy, Мониторинг, каждый ПринтМенеджер, сервер БД + NFS).
Все сертификаты должны быть выпущены одним корневым удостоверяющим центром (CA).

### Требования к сертификатам для кластера

Пример комплекта сертификатов для развёртывания системы в конфигурации с балансировщиком, состоящей из 6 серверов:

|Сервер|Роль|
|:---|:---|
|Сервер 1|Балансировщик|
|Сервер 2|Мониторинг|
|Сервер 3|ПринтМенеджер №1|
|Сервер 4|ПринтМенеджер №2|
|Сервер 5|ПринтМенеджер №3|
|Сервер 6|База данных и NFS-хранилище|

Необходимые файлы:

- Корневой сертификат.
- Сертификат сервера и ключ — для каждого сервера отдельно (сертификат + ключ HAProxy, сертификат + ключ Сервера 1, сертификат + ключ Сервера 2 и т.д.).

### Филиальная сеть

Комплект и требования к сертификатам в филиальной сети идентичны сингл конфигурации, за исключением того, что для каждого филиального ПринтМенеджера требуются собственные сертификаты с общим корневым сертификатом.

## Привязка сертификата

- Установка системы по IP: сертификат выпускается на IP-адрес сервера.
- Установка системы по FQDN (хостнейму): сертификат выпускается на FQDN (доменное имя).

Должно соблюдаться соответствие между адресом сервера и адресом в выпускаемом сертификате: если система установлена по FQDN, а сертификат выпущен на IP или наоборот — возникнет ошибка `Hostname mismatch`.

## Обязательные атрибуты

**SSL-сертификат сервера должен соответствовать следующим требованиям**: 
- X509v3 Extended Key Usage — `TLS Web Server Authentication` и `TLS Web Client Authentication`. 
- Алгоритм — RSA, длина ключа не менее 2048 бит.
- X509v3 Subject Alternative Name (SAN) — обязателен и должен содержать все доменные имена и/или IP-адреса, по которым будет доступен сервер.

Пример SAN для одного сервера:

```
DNS:server1.example.com
DNS:server1
IP:10.0.0.1
```

В кластере у каждого сервера — свой сертификат с собственным набором SAN (свои DNS-имена и IP); общий сертификат с одним SAN на весь кластер не используется.

Без SAN будет ошибка `unable to get local issuer certificate`.

**Корневой сертификат (CA):**

- X509v3 Key Usage: `Digital Signature`, `Certificate Sign`, `CRL Sign`
- X509v3 Basic Constraints: `critical`

## Формат

- Данные в сертификатах — в незашифрованном текстовом виде, кодировка UTF-8.
- Поддерживаемые расширения: `.cer`, `.crt`, `.pem` (для сертификатов), `.key` (для ключа).
- Корневой сертификат — отдельный файл. Нельзя включать его содержимое в `server.crt`.

## Типовые ошибки и их причины

|Ошибка в логах|Причина|
|:---|:---|
|`Hostname mismatch`| Адрес сервера не совпадает с CN или SAN сертификата|
| `ERR_CERT_COMMON_NAME_INVALID` | Адрес сервера не совпадает с CN или SAN сертификата |
|`self signed certificate in certificate chain`|Содержимое CA включено в `server.crt`|
|`unable to get local issuer certificate`|Отсутствует поле SAN в сертификате|

## Связанные статьи

- [Требования к сетевой доступности и портам](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-setevoi-dostupnosti-i-portam)
- [Требования к серверу и сайзинг](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-serveram-i-saizing)

# Подготовка Astra Linux к установке Принтум

## Назначение

Эта статья описывает, что дополнительно нужно сделать на сервере с Astra Linux Special Edition перед установкой Printum: настроить репозитории и установить необходимые пакеты. Статья дополняет общий чек-лист подготовки инфраструктуры — см. [Подготовка инфраструктуры к установке](https://docs.printum.io/books/3-ustanovka/page/podgotovka-infrastruktury-k-ustanovke), шаг 7.

## Шаги подготовки

### Настройте репозитории

Перед установкой Printum сервер должен иметь доступ к репозиториям Astra Linux. Откройте файл с настройками репозиториев:

```
sudo nano /etc/apt/sources.list
```

Закомментируйте строку, начинающуюся со слова *cdrom*, и раскомментируйте все остальные репозитории.

- Если у вас облачный сервер, эти шаги мог уже выполнить провайдер.
- Если используются локальные зеркала, обратитесь к системному администратору — он должен дать рабочие ссылки на репозитории.

> **Если не удаётся сохранить `/etc/apt/sources.list`**
> Причина — уровень целостности сессии терминала. Решение: выйдите из терминала, зайдите повторно и на вопрос **Integrity Level** укажите `63`.

### Установите пакеты

Установите пакеты для диагностики и администрирования сервера — они нужны независимо от способа установки:

```
sudo apt update
sudo apt install -y openssh-server htop mc curl wget
```

> **Если используете онлайн-установку**
> Через `curl` сервер обращается к репозиторию Printum (`https://download.printum.io`) — убедитесь, что пакет установлен и есть сетевой доступ к этому адресу. При офлайн-установке пакеты ставятся из локального зеркала, настроенного на шаге выше.

### Сделайте снапшот ВМ

После подготовки сервера рекомендуется создать снапшот виртуальной машины. Это позволит быстро вернуть систему в исходное состояние в случае ошибок при установке или настройке.

## Связанные статьи

- [Требования к серверу и сайзинг](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-serveram-i-saizing)
- [Поддерживаемые операционные системы](https://docs.printum.io/books/8-spravocnik/page/podderzivaemye-operacionnye-sistemy)
- [Требования к рабочим станциям пользователей](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-rabocim-stanciiam-polzovatelei)

# Подготовка к установке кластера Active-Active

## Назначение

Подготовка инфраструктуры для установки отказоустойчивого кластера ПринтМенеджеров в конфигурации Active-Active.

## Схема конфигурации

### Балансировщик нагрузки

Для распределения нагрузки между узлами ПринтМенеджера используется внешний балансировщик. По умолчанию применяется **HAProxy**; при необходимости — сторонний балансировщик.

### Серверы ПринтМенеджеров

Для отказоустойчивости при выходе из строя одного сервера требуется минимум три узла ПринтМенеджера. Количество серверов также зависит от ожидаемой нагрузки — подробный сайзинг см. в статье [Требования к серверу и сайзинг](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-serveram-i-saizing).

> Примечание: минимальное количество узлов рассчитывается по формуле `T = 2F + 1`, где `T` — общее количество серверов, `F` — число серверов, которые могут выйти из строя.

### База данных и NFS-хранилище

- Отказоустойчивость обеспечивается заказчиком с использованием стандартных инфраструктурных решений (репликация, RAID и т.д.).

## Что потребуется

Подготовьте актуальные дистрибутивы:

- HAProxy;
- Мониторинг;
- ПринтМенеджер.

## Шаги подготовки

### Шаг 1. Создать серверы и назначить роли

Ниже приведён пример конфигурации кластера с тремя серверами ПринтМенеджера. Для других конфигураций подготовка выполняется аналогично, с добавлением новых серверов и указанием их адресов.

Создайте серверы на операционных системах, поддерживаемых Printum. Убедитесь, что каждый сервер соответствует [минимальным техническим требованиям](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-serveram-i-saizing).

Каждый сервер предназначен для выполнения одной из следующих ролей:

|Роль|Адрес|ПО|
|---|---|---|
|Балансировщик|BALANCER_ADR|HAProxy|
|Мониторинг и ПринтМенеджер 1|MPM_1|Мониторинг + ПринтМенеджер|
|ПринтМенеджер 2|PM_2|ПринтМенеджер|
|ПринтМенеджер 3|PM_3|ПринтМенеджер|
|База данных PostgreSQL и NFS-хранилище|DB_NFS|PostgreSQL + NFS|

### Шаг 2. Подготовить сертификаты

Для каждого сервера потребуется отдельный сертификат и ключ с общим корневым сертификатом — см. [Требования к сертификатам безопасности](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-sertifikatam-bezopasnosti).

### Шаг 3. Настроить DNS

Настройте DNS-имя для сервера балансировщика, указывающее на виртуальный IP-адрес (VIP).

## Ожидаемый результат

После выполнения этой инструкции:

- подготовлены серверы с назначенными ролями и они соответствуют минимальным техническим требованиям Printum;
- настроено DNS-имя (указывающее на VIP балансировщика) и сертификаты для каждого сервера;
- доступны актуальные дистрибутивы HAProxy, Мониторинга и ПринтМенеджера;
- инфраструктура готова к установке компонентов кластера.

## Следующие шаги

Установка компонентов кластера описана в разделе базы знаний [«Установка»](https://docs.printum.io/books/3-ustanovka/) — статьи по базе данных и NFS, балансировщику, Мониторингу и ПринтМенеджерам.

## Связанные статьи

- [Требования к сетевой доступности и портам](https://docs.printum.io/books/8-spravocnik/page/trebovaniia-k-setevoi-dostupnosti-i-portam)
- [Поддерживаемые операционные системы](https://docs.printum.io/books/8-spravocnik/page/podderzivaemye-operacionnye-sistemy)