Files
crm.clientright.ru/crm_extensions/file_storage/PRODUCTION_READY.md

183 lines
4.8 KiB
Markdown
Raw Normal View History

# 🎉 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? 😊