Диагностика

Отладка и устранение неполадок

Пошаговая диагностика через monitor doctor, логи, support-bundle и типичные сценарии сбоев.

Редакция от 15 июля 2026

Рекомендуемый порядок

  1. monitor status — контейнеры и URL.
  2. monitor doctor — полный отчёт с exit code 1 при проблемах.
  3. monitor logs <service> -f — backend, frontend, db, redis.
  4. monitor support — архив для отправки в поддержку.

monitor doctor

Проверяет блоки:

  • docker — daemon доступен, версия compose.
  • install — каталог, .env (chmod 600), обязательные ключи.
  • containers — monitor-db, monitor-redis, monitor-backend, monitor-frontend.
  • network — HTTP на backend:8000 и frontend:3000 (401 на API без логина — норма).
  • license — active / expired / missing.
  • host — свободное место на диске Docker и /opt/monitor, RAM, systemd enabled.

monitor health (cron-friendly)

monitor health
echo $?   # 0 = healthy, 1 = problem

Логи

monitor logs              # все сервисы, 200 строк
monitor logs backend -f   # follow backend
monitor logs frontend -f
monitor logs db

Support bundle

monitor support
# → ./monitor-support-YYYYMMDD-HHMMSS.tar.gz

Внутри: docker version/info, compose ps, inspect и логи контейнеров, df, free, masked .env, вывод doctor. Секреты замаскированы — перед отправкой всё равно просмотрите архив.

Интерактивная отладка

monitor shell backend     # shell в backend
monitor dbshell           # psql
monitor redis             # redis-cli
monitor config            # .env без секретов

Типичные проблемы

Порты 3000/8000 заняты

ss -ltn | grep -E ':3000|:8000'
# освободить порты или задать FRONTEND_PORT/BACKEND_PORT до install.sh

Контейнер exited / unhealthy

monitor logs <service>
sudo monitor restart
docker inspect monitor-backend

Не пускает в UI

Email: MONITOR_ADMIN_EMAIL (по умолчанию admin@monitor.local). Пароль — в выводе install.sh или grep MONITOR_ADMIN_PASSWORD /opt/monitor/.env.

API 402 / License expired

См. Лицензия — запросите новый ключ по fingerprint.

exec format error / wrong architecture

Бандл собран под другую CPU (uname -m). Нужен amd64 или arm64, совпадающий с хостом.

Мало места на диске

df -h /var/lib/docker /opt/monitor
sudo monitor prune
docker system df

Backend не отвечает после restore

Restore автоматически перезапускает backend. Если миграции падают — смотрите monitor logs backend.

py-spy / profiling (Python 3.12+)

Для профилирования процессов нужен py-spy ≥ 0.4. При ошибке «Unsupported version of Python» обновите образ backend до актуальной версии MoniTOR.