# 🎉 PRODUCTION READY - Мониторинг файлов ## ✅ ЧТО РАБОТАЕТ: ### 1️⃣ Nextcloud Activity Monitor **Скрипт:** `nextcloud_activity_monitor.js` **Запущен:** ✅ (PID: 2122) **Лог:** `nextcloud_activity.log` **Мониторит:** - Файлы загруженные через Nextcloud WebUI - Файлы созданные/изменённые в Nextcloud **Метод:** - Nextcloud Activity API (polling каждые 30 сек) - Разбивает агрегированные события на отдельные файлы - БЕЗ дубликатов! **Формат события:** ```json { "type": "file_created", "source": "nextcloud_activity", "timestamp": "2025-10-30T12:53:40+00:00", "file_id": 73460, "path": "/experimental_report.xlsx", "filename": "experimental_report.xlsx", "user": "admin", "action": "created" } ``` **Команды:** ```bash # Статус ps aux | grep nextcloud_activity_monitor # Логи tail -f nextcloud_activity.log # Остановить pkill -f nextcloud_activity_monitor.js # Запустить cd /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage nohup /usr/bin/nodejs nextcloud_activity_monitor.js > nextcloud_activity.log 2>&1 & ``` --- ### 2️⃣ S3 Monitor (Docker) **Контейнер:** `s3-monitor` **Запущен:** ✅ (Up 40 минут) **Скрипт:** `s3_monitor_docker.js` **Мониторит:** - Файлы загруженные напрямую в S3 - Через S3 Browser, aws-cli, Cyberduck, скрипты - Любые изменения в bucket **Метод:** - S3 ListObjectsV2 API (polling каждые 30 сек) - Pagination - получает ВСЕ файлы (24,522 файла!) - Сравнение по ETag **Bucket:** `f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c` **Формат события:** ```json { "type": "file_created", "source": "s3_monitor", "timestamp": "2025-10-30T20:49:31.593Z", "path": "crm2/CRM_Active_Files/Documents/file.xlsx", "filename": "file.xlsx", "size": 8224, "etag": "7004954627252c9d0a7e6417f8325d07", "last_modified": "2025-10-30T20:49:14.132Z", "action": "created" } ``` **Команды:** ```bash # Статус docker ps | grep s3-monitor # Логи docker logs s3-monitor -f # Остановить docker stop s3-monitor # Запустить docker start s3-monitor # Перезапустить docker restart s3-monitor ``` --- ### 3️⃣ Redis Канал (центральная шина) **Host:** `147.45.146.17` **Port:** `6379` **Password:** `CRM_Redis_Pass_2025_Secure!` **Channel:** `crm:file:events` **Подписаться:** ```bash redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' \ SUBSCRIBE crm:file:events ``` --- ## 🚫 ЧТО ОСТАНОВЛЕНО: ### ❌ redis_bridge.js **Причина:** Давал неполные данные, много дубликатов **Заменён на:** Nextcloud Activity Monitor (даёт чистые данные) --- ## 📊 СРАВНЕНИЕ ДАННЫХ: | Поле | Nextcloud Activity | S3 Monitor | |------|-------------------|------------| | **type** | ✅ file_created/changed/deleted | ✅ file_created/modified/deleted | | **source** | nextcloud_activity | s3_monitor | | **filename** | ✅ | ✅ | | **path** | ✅ (Nextcloud путь) | ✅ (S3 полный путь) | | **file_id** | ✅ | ❌ | | **user** | ✅ | ❌ | | **size** | ❌ | ✅ | | **etag** | ❌ | ✅ | | **mime_type** | ❌ | ❌ | **Дополняют друг друга!** 🎯 --- ## 🔧 АВТОЗАПУСК ПРИ ПЕРЕЗАГРУЗКЕ СЕРВЕРА: ### S3 Monitor: ✅ Уже настроен (`--restart unless-stopped`) ### Nextcloud Activity Monitor: Создам systemd service: ```bash sudo tee /etc/systemd/system/nextcloud-activity-monitor.service << 'EOF' [Unit] Description=Nextcloud Activity Monitor After=network.target redis.service [Service] Type=simple User=root WorkingDirectory=/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage ExecStart=/usr/bin/nodejs nextcloud_activity_monitor.js Restart=always RestartSec=10 StandardOutput=append:/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_activity.log StandardError=append:/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_activity.log [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable nextcloud-activity-monitor sudo systemctl start nextcloud-activity-monitor ``` --- ## 🎯 ГОТОВО! **Система полностью работает в production режиме!** 🚀 Хочешь чтобы я создал systemd service для автозапуска Nextcloud Activity Monitor? 😊