Перейти к содержанию

Наблюдение за состоянием

Проверка работоспособности сервисов

Список контейнеров

ssh alfa "docker ps"

В выводе должны быть все контейнеры со статусом Up. Если контейнер перезапускается (статус содержит Restarting), значит в нём происходит сбой --- нужно смотреть журналы.

Проверка здоровья серверной части

ssh alfa "curl -s http://localhost:8000/health"

Серверная часть ответит JSON-объектом с информацией о доступности MongoDB, MinIO и Redis. Если какой-либо компонент недоступен, это будет отражено в ответе.

Проверка доступности из интернета

Открыть в браузере:

  • https://alfainft.monroe-tech.ru --- пользовательский интерфейс
  • https://alfainft-api.monroe-tech.ru/health --- проверка здоровья серверной части
  • https://alfainft-docs.monroe-tech.ru --- документация

Журналы

Просмотр журналов контейнера

# Последние 50 строк серверной части
ssh alfa "docker logs sdm_backend --tail 50"

# Следить за журналом в реальном времени
ssh alfa "docker logs sdm_backend -f"

# Журнал обработчика Celery
ssh alfa "docker logs sdm_celery_worker --tail 50"

# Журнал MongoDB
ssh alfa "docker logs sdm_mongodb --tail 50"

Что искать в журналах

  • Серверная часть: ошибки обращений к Claude (anthropic), ошибки записи в MongoDB или MinIO, тайм-ауты, нехватка памяти (MemoryError, Killed).
  • Обработчик Celery: ошибки поиска по реестру, превышение времени выполнения задачи (SoftTimeLimitExceeded, TimeLimitExceeded).
  • MongoDB: предупреждения о нехватке места на диске, медленные запросы.
  • MinIO: ошибки записи, нехватка места.

Состояние очереди обработки

Количество ожидающих заданий

ssh alfa "docker exec sdm_mongodb mongosh smart_doc_matcher --eval 'db.jobs.countDocuments({status:\"pending\"})'"

Количество заданий в процессе обработки

ssh alfa "docker exec sdm_mongodb mongosh smart_doc_matcher --eval 'db.jobs.countDocuments({status:\"processing\"})'"

Количество заданий с ошибками

ssh alfa "docker exec sdm_mongodb mongosh smart_doc_matcher --eval 'db.jobs.countDocuments({status:\"error\"})'"

Общая статистика по статусам

ssh alfa "docker exec sdm_mongodb mongosh smart_doc_matcher --eval 'db.jobs.aggregate([{\$group:{_id:\"\$status\", count:{\$sum:1}}}]).toArray()'"

Потребление ресурсов

Использование памяти и процессора контейнерами

ssh alfa "docker stats --no-stream"

Эта команда покажет текущее потребление каждым контейнером. Обратить внимание на:

  • sdm_backend --- при обработке крупных файлов может приближаться к ограничению в 8 ГБ.
  • sdm_celery_worker --- при поиске по большому реестру потребление может достигать нескольких гигабайт.

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

ssh alfa "df -h /opt/alfa"

Основные потребители дискового пространства:

  • Том MongoDB (mongo_data) --- растёт с количеством документов и реестров.
  • Том MinIO (minio_data) --- растёт с количеством загруженных файлов.
  • Образы Docker --- накапливаются при пересборке. Для очистки устаревших образов:
ssh alfa "docker image prune -f"

Размер томов Docker

ssh alfa "docker system df -v" 

Проверка состояния Redis

ssh alfa "docker exec sdm_redis redis-cli info memory"

Ключевое значение --- used_memory_human: показывает, сколько памяти использует Redis. При нормальной работе это значение не должно превышать нескольких десятков мегабайт.

Для просмотра активных задач Celery:

ssh alfa "docker exec sdm_redis redis-cli llen celery"

Это число показывает, сколько задач находится в очереди ожидания.