# Мониторинг

# Мониторинг — справка по компоненту

## Назначение

Мониторинг — обязательное ядро системы Принтум. Отвечает за обнаружение устройств, сбор данных, управление пользователями, отчёты, интеграции и управление конфигурацией всех ПринтМенеджеров.

## Основные функции

- Обнаружение принтеров и МФУ по SNMP
- Сбор счётчиков, состояния расходных материалов и запчастей
- Отслеживание статусов и ошибок устройств
- Управление пользователями, ролями, лицензиями
- Формирование отчётов и подписок
- Интеграция с доменами и почтовым сервером
- Единый интерфейс в виде Личного кабинета для конфигурации всех ПринтМенеджеров

## Где настраивается

- Личный кабинет — основной интерфейс
- Панель администратора Мониторинга:
```
https://<адрес>:8001/config/
```

## Учётные данные по умолчанию

- Логин: printum / Пароль: printum

## Путь установки и ключевые файлы

|**Файл**|**Назначение**|
|---|---|
|/opt/printum/.env|Переменные окружения|
|/opt/printum/.version|Версия Мониторинга|
|/opt/printum/docker-compose.yml|Docker-стек|
|/opt/printum/logs.sh|Скрипт сбора логов|
|/opt/printum/backup.sh|Скрипт создания бэкапа|

## Контейнеры Docker

| Контейнер              | Роль                                                                                                                                                                |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| printum-backend        | Работа API Мониторинга, все не фоновые задачи.                                                                                                                      |
| printum-clickhouse     | Столбцовая система управления базами данных.                                                                                                                        |
| printum-dashboard      | Личный кабинет.                                                                                                                                                     |
| printum-nginx          | HTTP-сервер и обратный прокси-сервер, а также TCP/UDP прокси-сервер общего назначения.<br>Он проксирует все http соединения от\до приложения, отдает статику и т.д. |
| printum-postgres       | База данных PostgreSQL.                                                                                                                                             |
| printum-redis          | Брокер сообщений.                                                                                                                                                   |
| printum-scheduler      | Выполнение задач Мониторинга, планировщик задач для celery.                                                                                                         |
| printum-worker-default | Обработка всех фоновых задач Мониторинга: отправка писем, обработка данных от принтеров.<br>Один из трёх контейнеров с celery.                                      |
| printum-worker-high    | Обработка всех фоновых задач Мониторинга: отправка писем, обработка данных от принтеров.<br>Один из трёх контейнеров с celery.                                      |
| printum_worker-low     | Обработка всех фоновых задач Мониторинга: отправка писем, обработка данных от принтеров.<br>Один из трёх контейнеров с celery.                                      |

---
## Когда используется

Мониторинг является обязательным компонентом во всех поставках Printum. Он устанавливается первым и служит центральным узлом управления: управляет пользователями и устройствами, агрегирует статистику распределённых филиальных сетей, обеспечивает интеграцию с внешними системами.

- Единственный сервер — конфигурация «Сингл».
- Вместе с ПринтМенеджером на отдельных серверах — конфигурация «Сплит».
- С кластером ПринтМенеджеров и балансировщиком — конфигурация «Кластер Active-Active».

---

## Связанные компоненты

- Сетевой агент — мониторинг сетевых устройств по SNMP; устанавливается автоматически вместе с Мониторингом.
- Локальный агент — мониторинг локально подключённых устройств (USB).
- ПринтМенеджер — подключается к Мониторингу, синхронизируется раз в час.
- PostgreSQL — основная БД Мониторинга.
- ClickHouse — хранилище сырых snmp-данных устройств.
- Redis — кэш и очередь задач.
- Docker — среда выполнения всех контейнеров.

---
## Что диагностировать перед эскалацией

- Уточнить версию Мониторинга:
```
cat /opt/printum/.version
```

- Проверить статус контейнеров (активны, неактивны, перезапускаются):
```
cd /opt/printum && sudo docker-compose ps
```

- Собрать логи:
```
sudo bash /opt/printum/logs.sh
```

- Проверить свободное место на диске сервера и самые объёмные каталоги в разделе /:
```
sudo df -h
sudo du -h --max-depth=1 / | sort -hr
```
---

## Типовые проблемы

| Проблема                                        | Причина                                                                          | Решение                                                                                                                                                         |
| ----------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Timeout error при установке                     | Неверно указана переменная MON_HOSTNAME или нет разрешения доменного имени с DNS | 1. Проверить корректность записи доменного имени в переменной MON_HOSTNAME.<br>2. Проверить разрешение имени сервера в DNS.<br>3. Запустить установку повторно. |
| Конфликт адресов Docker после установки         | Диапазон 10.28.32.0/26 пересекается с локальной сетью                            | Указать другой пул адресов Docker в /etc/docker/daemon.json и перезапустить Docker                                                                              |
| Обнаружены не все устройства                    | Неверный IP в локации, SNMP отключён, агент не опрашивает локацию                | Проверить IP локации, статус SNMP командой snmpwalk, настройки агента в Настройки → Модули                                                                      |
| Ошибка обновления: network has active endpoints | Контейнер занимает сеть во время обновления                                      | Перезагрузить сервер и запустить обновление повторно                                                                                                            |

---

## Расширенные возможности Мониторинга

### Произвольные OID и гибкий SNMP-опрос

Система поддерживает произвольный набор OID — она может собирать любые параметры, которые устройства отдают по SNMP. Это счётчики, уровень расходных материалов, ошибки, температура, скорость печати и т.д. Стандартный набор OID покрывает большинство задач, но администратор может расширить его для специфических моделей или требований.

### Точность данных при работе с Локальным агентом

Когда используется Локальный агент для мониторинга USB-принтеров, следует учитывать особенности точности данных:

- Драйверы иногда некорректно оценивают цветность: документ с чёрным текстом может быть помечен как цветной, если пользователь не изменил параметры перед отправкой.
- Принтум старается корректировать такие ошибки (например, исключает цветность для монохромных принтеров), но стопроцентной точности гарантировать невозможно.
- Инженеры могут регулярно сверять счётчики устройств и вносить корректировки в накопленную статистику.

### Справочники запчастей и прогнозирование замены

Система поставляется с базой запчастей и материалов для распространённых моделей принтеров. Администратор может дополнять справочники вручную или попросить поддержку дополнить их при появлении новых устройств. Благодаря этому Мониторинг может прогнозировать замену деталей даже для устройств, которые сами не отслеживают расходники.

### Интеграция с ПринтМенеджером

При настройке интеграции ПринтМенеджер автоматически получает от Мониторинга данные по целевым устройствам и пользователя без ручного ввода. В обратную сторону ПринтМенеджер возвращает статистику по заданиям, теневым копиям, квотам и событиям.

## Связанные страницы

- [Обзор системы Принтум](http://wiki.printum.io/books/1-arxitektura-i-koncepcii/page/obzor-sistemy-printum)
- [Синхронизация Мониторинга и ПринтМенеджера](http://wiki.printum.io/books/1-arxitektura-i-koncepcii/page/sinxronizaciia-monitoringa-i-printmenedzera)
- [Сетевой агент — справка по компоненту](http://wiki.printum.io/books/2-komponenty-sistemy/page/setevoi-agent-spravka-po-komponentu)