Наблюдение за состоянием¶
Проверка работоспособности сервисов¶
Список контейнеров¶
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"
Это число показывает, сколько задач находится в очереди ожидания.