Дата анализа: 26 декабря 2025, 12:10 UTC
Анализируемая система: NocoDB 0.265.1 + PostgreSQL 15
Хост: 91.218.142.168
| Контейнер | Статус | Health | Image | Uptime | Restarts |
|---|---|---|---|---|---|
| nocodb-products | Running | Healthy | nocodb/nocodb:0.265.1 | 7 hours | 0 |
| nocodb-products-db | Running | Healthy | postgres:15-alpine | 7 days | 0 |
| nocodb-nginx | Running | - | fholzer/nginx-brotli:latest | 3 hours | 0 |
Итого: 10 контейнеров на сервере
nocodb-products: 0.00%
nocodb-products-db: 0.00%
nocodb-nginx: 0.00%
Статус: ✅ Нормальное
| Контейнер | Использование | Лимит | % |
|---|---|---|---|
| nocodb-products | 46.57 MiB | 256 MiB | 18.19% |
| nocodb-products-db | 35.13 MiB | 256 MiB | 13.72% |
| nocodb-nginx | 1.55 MiB | 1.92 GiB | 0.08% |
Система:
Total: 1.9 GB
Used: 1.6 GB (84%)
Free: 77 MB
Swap Used: 2.4 GB из 4.0 GB (60%)
Статус: ⚠️ КРИТИЧНО - система активно использует swap, что замедляет работу
Система:
Filesystem: /dev/vda1
Size: 29 GB
Used: 25 GB (84%)
Available: 4.7 GB
Docker хранилище:
overlay2: 13 GB (образы и контейнеры)
volumes: 840 MB (persistent data)
containers: 110 MB
buildkit: 32 MB
Статус: ⚠️ КРИТИЧНО - диск заполнен на 84%
| Контейнер | Входящий | Исходящий | Диск чтение | Диск запись |
|---|---|---|---|---|
| nocodb-products | 319 KB | 305 KB | 2.96 GB | 359 MB |
| nocodb-products-db | 91.5 MB | 91.2 MB | 35.2 GB | 3.25 GB |
| nocodb-nginx | 308 KB | 417 KB | 51.1 MB | 1.23 MB |
Driver: bridge
Subnet: 172.19.0.0/16
Gateway: 172.19.0.1
Контейнеры в сети:
- nocodb-products: 172.19.0.3/16
- nocodb-products-db: 172.19.0.2/16
- nocodb-nginx: 172.19.0.4/16
Статус: ✅ Связность между контейнерами работает
| Порт | Сервис | Доступность |
|---|---|---|
| 5433 | PostgreSQL | 0.0.0.0 (публичный!) |
| 8443 | HTTPS (nginx) | 0.0.0.0 |
| 8085 | HTTP (nginx) | 0.0.0.0 |
Статус: ⚠️ PostgreSQL доступен публично (порт 5433)
22 - SSH
80 - HTTP (nginx)
443 - HTTPS (nginx)
1080 - microsocks proxy
3000 - docker service
3001 - docker service
3002 - next-server
3306 - MySQL/MariaDB (localhost only)
5000 - python app
5001 - python app
5432 - docker PostgreSQL
5678 - docker service
8080 - node (localhost only)
8086 - nginx
8091 - python app
8092 - python app
8103 - docker service
8898 - python app
8899 - python app
9000 - python app
Статус: ⚠️ Много открытых портов - потенциальная уязвимость
Обнаруженные ошибки:
Passport authentication failures:
- strategy.fail at authenticate.js:314
- allFailed at authenticate.js:114
Анализ: Ошибки аутентификации passport - возможно устаревшие токены или неправильные credentials
Обнаруженные ошибки:
2025-12-26 07:34:28 UTC [484431] ERROR:
current transaction is aborted,
commands ignored until end of transaction block
Анализ: Транзакционные ошибки - возможно из-за неправильной обработки ошибок в приложении
Статус: ⚠️ Требуется мониторинг
Последняя активность:
- Health checks каждые 5 минут ✅
- API requests (python-requests) ✅
- Сканирование безопасности с IP 3.132.23.201:
- cypex.ai scanner
- SSH probes
- SSL handshake attempts
Статус: ⚠️ Атакуется сканерами
| Volume | Размер | Назначение |
|---|---|---|
| nocodb-products_postgres_data | 195 MB | База данных PostgreSQL |
| nocodb-products_nocodb_data | 8 KB | NocoDB metadata |
| nocodbapp_postgres_data | 50 MB | Старая копия (не используется) |
Статус: ✅ Volumes работают нормально
Расположение: /opt/claude-workspace/infra/@nocodb.app/static/
Размер: 424 KB
Содержит:
- index.html, 404.html, 200.html
- _nuxt/ (CSS, JS)
- favicon.ico, icon.png
- Сжатые версии (.br, .gz)
Статус: ✅ Статика на месте
PostgreSQL 15.15 on x86_64-pc-linux-musl
Alpine Linux, GCC 14.2.0, 64-bit
Всего: 91 MB
| Схема | Таблиц | Назначение |
|---|---|---|
| pt7k98pv0fwi1el | 104 | Основной проект (PIM, OZON, CRM) |
| public | 80 | Системные таблицы NocoDB |
| pro_seller1 | 14 | Старый проект продавца |
| pjfkmtrufnrousk | 10 | Лидер Авто (грузовики) |
| pro1_admin | 10 | Админ панель (почти пустая) |
| pkxgq45k5mwsdwh | 6 | CRM с клиентами |
| erp | 4 | НОВАЯ СХЕМА (не было в прошлом анализе) |
| fulfillment | 3 | Неудачный импорт (16.12.2025) |
Итого: 231 таблица в 8 схемах
Статус: ✅ База работает, но обнаружена новая схема ERP
User: nocodb
Password: NocoDB2025Secure (хранится в docker-compose.yml)
Database: nocodb
Статус: ⚠️ Пароли в открытом виде в конфигурации
POSTGRES_USER: nocodb
POSTGRES_PASSWORD: NocoDB2025Secure
NC_AUTH_JWT_SECRET: NocoDB-JWT-Secret-2025-Products
Проблемы:
- ❌ Пароли в открытом виде
- ❌ Нет использования .env файлов
- ❌ JWT secret статичный
NocoDB:
- 5433 - PostgreSQL ⚠️ НЕ ДОЛЖЕН БЫТЬ ПУБЛИЧНЫМ!
- 8443 - HTTPS ✅
- 8085 - HTTP ✅
Другие сервисы:
- Более 20 открытых портов
- Много Python сервисов
- Несколько PostgreSQL/MySQL портов
Обнаружено с IP 3.132.23.201:
- cypex.ai security scanner
- SSH connection attempts
- SSL handshake probes
- Multiple GET requests
Статус: ⚠️ КРИТИЧНО - сервер под постоянным сканированием
❌ НЕТ автоматических бэкапов БД
❌ НЕТ скриптов резервного копирования
❌ НЕТ документации по восстановлению
✅ ЕСТЬ monitoring script (nocodb-monitor.sh)
КРИТИЧНО: При сбое диска (84% заполненности) или повреждении данных - полная потеря всех данных!
Риски:
- 231 таблица, 91 MB данных
- 8 проектов/схем
- CRM с клиентами
- Заказы, продукты, интеграции
Немедленно создать:
docker exec nocodb-products-db pg_dump -U nocodb nocodb > backup_$(date +%Y%m%d).sql
docker run --rm -v nocodb-products_postgres_data:/data \
-v /backup:/backup alpine tar czf /backup/postgres_$(date +%Y%m%d).tar.gz /data
Месячные архивы с удалением на удаленный сервер
Тестирование восстановления раз в месяц
Файл: /opt/claude-workspace/infra/@nocodb.app/nocodb-monitor.sh
Функции:
- Проверка health status контейнеров
- Проверка доступности API (/api/v1/health)
- Автоматический перезапуск при сбое
- Логирование: /var/log/nocodb-monitor.log
Расписание: Каждые 5 минут (cron)
Статус: ✅ Работает
/opt/claude-workspace/infra/@nocodb.app/
├── docker-compose.yml - Основная конфигурация
├── nginx-http2.conf - Nginx конфиг (SPA routing)
├── nocodb-monitor.sh - Скрипт мониторинга
├── NOCODB_SETTINGS.md - Документация настроек
└── static/ - Статические файлы Nuxt.js
Сервисы:
- db (PostgreSQL 15)
- nocodb (NocoDB 0.265.1)
- nginx (Reverse proxy с Brotli)
Настройки:
- Memory limits: 256MB на контейнер (db, nocodb)
- Restart policy: unless-stopped ✅
- Health checks: Настроены ✅
- Networks: bridge network ✅
API Response Time:
/api/v1/health: ~200ms (нормально)
Database:
- Размер: 91 MB (небольшой)
- Активных подключений: мало
- Транзакционные ошибки: есть
docker system prune -a (удалит неиспользуемые образы)✅ Закрыть PostgreSQL порт 5433 от внешнего доступа
```bash
# В docker-compose.yml изменить:
ports:
✅ Очистить диск (освободить минимум 10GB)
bash
docker system prune -a -f
docker volume prune -f
✅ Создать первый бэкап БД
bash
docker exec nocodb-products-db pg_dump -U nocodb nocodb | \
gzip > /backup/nocodb_$(date +%Y%m%d_%H%M%S).sql.gz
| Категория | Оценка | Комментарий |
|---|---|---|
| Работоспособность | 9/10 | Все работает, uptime хороший |
| Производительность | 5/10 | Swap usage высокий, диск заполнен |
| Безопасность | 3/10 | PostgreSQL публичный, много открытых портов |
| Надежность | 2/10 | НЕТ бэкапов! Критично! |
| Мониторинг | 6/10 | Есть базовый, нет метрик |
| Документация | 8/10 | Хорошо документировано |
Платформа работает, но находится в критичном состоянии из-за:
1. Отсутствия бэкапов
2. Заполненности диска (84%)
3. Проблем с безопасностью (публичный PostgreSQL)
4. Высокого использования swap
Требуются срочные действия для предотвращения потери данных и улучшения безопасности.
Томография показала, что платформа NocoDB функционально работает, но имеет серьезные проблемы в области:
- Безопасности (публичный доступ к БД, открытые порты)
- Надежности (отсутствие бэкапов)
- Ресурсов (заполненность диска и памяти)
Критичность: ВЫСОКАЯ
Рекомендация: Немедленно выполнить действия из раздела "Критичные действия"
Отчет подготовлен: Claude Code
Формат: Markdown
Версия: 1.0