# Проверка корректности установки кластера

## Цель

Проверка корректной работы кластера ПринтМенеджеров после завершения установки.

## Предусловия 

Установлены все компоненты кластера:
- балансировщик
- мониторинг
- все серверы ПринтМенеджера

## Чек-лист проверки

### 1. Проверка панели администратора HAProxy

- Откройте страницу `https://BALANCER_ADR:7000/` .
- Убедитесь, что присутствуют следующие разделы:
  - ftp
  - cups_1631
  - tcp_converter_7776
  - tcp_converter_7777
  - admin_8010
  - admin_8080

Каждый из разделов должен иметь все зелёные строчки (кроме коричневых строк Frontend или Backend). Если какая-то из строк с названием server_ip красная — это говорит, что сервер с данным адресом установлен неверно. Проверьте состояние сервера.

### 2. Проверка файлов .env на серверах ПринтМенеджера

Проверьте `.env` файлы каждого из серверов с ПринтМенеджерами. В частности, проверьте, что существуют следующие настройки и что они заполнены:
- `DATABASE_URL=postgres://postgres:postgres@10.0.130.213:5432/printmanager`
- `DATABASE_HOSTNAME=10.0.130.213`
- `DATABASE_PORT=5432`
- `REDIS_URL=redis://redis:6379/0`
- `REDIS_ROLE=master` (или `slave`)
- `REDIS_SENTINEL_LIST=10.0.132.98,10.0.132.97,10.0.132.96`
- `REDIS_MASTER_HOSTNAME=10.0.132.98`
- `VOLUME_PATH=/opt/printmanager/volumes`
- `DRIVER_OPTS_TYPE=nfs`
- `DRIVER_OPTS_O=addr=10.0.130.213,nolock,soft,rw`
- `DRIVER_OPTS_DEVICE=:/scratch`
- `EXT_HOSTNAME=pm.test` (домен или адрес балансировщика)
- `PM_HOSTNAME=10.0.132.97` (домен или адрес ПМа)

### 3. Проверка контейнеров на серверах ПринтМенеджер

Проверьте, есть ли ошибки в следующих контейнерах на каждом из серверов с ПринтМенеджерами:
- printmanager-celery
- printmanager-scheduler
- printmanager-celery-print-queue
- printmanager-redis-sentinel
- printmanager-ftpd printmanager-db
- printmanager-redis

### 4. Проверка NFS-хранилища

Проверьте, что NFS хранилище работает корректно на каждом сервере с ПринтМенеджерами.

Создайте файл `test.txt`:
```
cd /opt/printmanager
sudo docker-compose exec app touch /opt/app/public/media/test.txt
```
Проверьте, что файл появился в NFS хранилище через его интерфейс. Удалите этот файл:
```
cd /opt/printmanager
sudo docker-compose exec app rm /opt/app/public/media/test.txt
```
Убедитесь, что файл `test.txt` был удалён из NFS хранилища.

## Ожидаемый результат

- Все разделы HAProxy показывают зелёные строки.
- Все контейнеры ПринтМенеджеров работают без ошибок.
- NFS-хранилище доступно со всех нод.
- Панель администратора ПринтМенеджер доступна по адресу балансировщика.

## Типовые ошибки

| Ошибка | Причина | Решение |
| ------ | ------- | ------- |
| Страница состояния балансировщика (HAProxy) и ПринтМенеджеров загружается с ошибкой | Ошибка в хостнеймах — отсутствует или некорректен FQDN в DNS | Проверить наличие и корректность FQDN (hostname) в DNS для всех ВМ в составе отказоустойчивой конфигурации |
| При отложенной печати ошибка "файл недоступен" | NFS-хранилище недоступно или неверно настроено в `.env` | Выполнить `sudo cat /opt/printmanager/.env` на каждом сервере.<br><br>Проверить `DRIVER_OPTS_DEVICE`, `DRIVER_OPTS_O`, `DRIVER_OPTS_TYPE`.<br>Убедиться в доступности NFS-сервера

--- 

## Связанные страницы

- [Установка балансировщика HAProxy](https://wiki.printum.io/books/3-ustanovka/page/ustanovka-balansirovshhika-haproxy)
- [Установка первого ПринтМенеджера в кластере](https://wiki.printum.io/books/3-ustanovka/page/ustanovka-pervogo-printmenedzera-v-klastere)
- [Добавление серверов ПринтМенеджера в кластер](https://wiki.printum.io/books/3-ustanovka/page/dobavlenie-serverov-printmenedzera-v-klaster)