# Comandi di Test - Versioni con Feedback Dettagliato

## File Creati - Versioni v02 e v03

### Sistema di Addestramento con Feedback
- **analisys_02.py** - Versione con feedback visivo dettagliato
  - Progress bar animate con percentuali
  - Spinner per operazioni in corso
  - Statistiche dettagliate in tempo reale
  - Colori e emoji per migliore UX
  - Informazioni su protocolli, IP e host rilevati

### Sistema di Rilevamento con Feedback
- **detect_multi_03.py** - Versione con statistiche live
  - Dashboard in tempo reale con metriche
  - Contatori anomalie e IP bloccati
  - Velocità di processamento
  - Progress batch con ETA
  - Feedback colorato per ogni operazione

## Comandi di Test - Versioni con Feedback

### 1. Test Connessione Database

```bash
# Test addestramento con feedback dettagliato
python3 analisys_02.py --test

# Test rilevamento con feedback live
python3 detect_multi_03.py --debug --batch-size 1000
```

### 2. Addestramento con Feedback Visivo

```bash
# Addestramento con progress bar e statistiche
python3 analisys_02.py --max-records 10000

# Addestramento forzato con feedback completo
python3 analisys_02.py --force-training --max-records 20000 --debug

# Test veloce con feedback
python3 analisys_02.py --max-records 5000
```

**Output atteso:**
```
🤖 SISTEMA ADDESTRAMENTO DDoS v02 - FEEDBACK DETTAGLIATO
================================================================
ℹ Configurazione: max 10,000 record
ℹ Debug mode: OFF
ℹ Force training: OFF

▶ FASE: Connessione al database
ℹ Host: localhost
ℹ Database: LOG_MIKROTIK
ℹ User: root
✓ Creazione connessione...
✓ Test connessione...
✓ Database connesso con successo

🚀 AVVIO: Estrazione Dati
📊 Passi totali: 4
[████████████████████████████████] 100.0% (4/4) ⏱️ 2.3s ⏳ N/A
   └─ Finalizzazione estrazione...
✅ COMPLETATO: Estrazione Dati in 2.3 secondi

ℹ Record estratti: 10,000
ℹ Colonne disponibili: ['ID', 'Data', 'Ora', 'Host', 'IndirizzoIP', 'Messaggio1', 'Messaggio2', 'Messaggio3']
ℹ Range ID: 1,234,567 - 1,244,567
```

### 3. Rilevamento con Dashboard Live

```bash
# Rilevamento singolo con statistiche live
python3 detect_multi_03.py --batch-size 5000 --sensibility 5

# Rilevamento in ciclo con dashboard
python3 detect_multi_03.py --ciclo --pausa 30 --batch-size 3000 --sensibility 3

# Rilevamento debug con feedback completo
python3 detect_multi_03.py --debug --batch-size 1000 --sensibility 7
```

**Output atteso:**
```
🛡️ SISTEMA RILEVAMENTO DDoS v03 - FEEDBACK DETTAGLIATO
======================================================================
ℹ Configurazione batch: 5,000 record
ℹ Sensibilità rilevamento: 5/10
ℹ Debug mode: OFF
ℹ Modalità ciclo: OFF

▶ FASE: Caricamento modelli di machine learning
ℹ Verifica file modello: /path/to/models/isolation_forest.joblib
ℹ Dimensione file modello: 245.3 KB
✓ Caricamento Isolation Forest...
✓ ✓ Isolation Forest caricato
✓ Caricamento preprocessor...
✓ ✓ Preprocessor caricato (50 feature)
🎯 Tutti i modelli caricati con successo

======================================================================
📊 STATISTICHE RILEVAMENTO DDoS - TEMPO REALE
======================================================================
⏱️  Tempo trascorso: 15.3s
📈 Record processati: 5,000
🚨 Anomalie trovate: 23
🔍 IP analizzati: 1,247
🛡️  IP bloccati: 23
⚡ Velocità: 326.8 record/sec
📊 Tasso anomalie: 0.46%
📦 Batch: 1/1 (100.0%) - ETA: N/A
======================================================================

🚨 Gestione anomalia per IP: 192.168.1.100
🎯 IP 192.168.1.100 inserito/aggiornato nella tabella Fibra
🚨 IP bloccati in questo batch: 23
ℹ Esempi IP bloccati: 192.168.1.100, 10.0.0.50, 172.16.0.25
```

### 4. Modalità Ciclo Continuo con Countdown

```bash
# Ciclo continuo con feedback visivo
python3 detect_multi_03.py --ciclo --pausa 60 --batch-size 2000
```

**Output atteso:**
```
🔄 Modalità ciclo continuo attivata

==================================================
🔄 CICLO 1
==================================================

[... esecuzione rilevamento ...]

🎯 Ciclo 1 completato con successo
ℹ Pausa di 60 secondi prima del prossimo ciclo...
⏳ Prossimo ciclo tra: 60s
⏳ Prossimo ciclo tra: 59s
⏳ Prossimo ciclo tra: 58s
[... countdown ...]
```

## Confronto Versioni

### Versioni Base (v01/v02)
- Output minimale
- Solo messaggi essenziali
- Nessun feedback visivo

### Versioni con Feedback (v02/v03)
- Progress bar animate
- Spinner per operazioni lunghe
- Statistiche in tempo reale
- Colori e emoji
- Dashboard live
- Countdown visivi
- Informazioni dettagliate su ogni operazione

## Parametri Ottimizzati per Feedback

### analisys_02.py
```bash
# Test veloce con feedback completo
python3 analisys_02.py --max-records 5000 --debug

# Addestramento normale con progress
python3 analisys_02.py --max-records 20000

# Forzato con feedback dettagliato
python3 analisys_02.py --force-training --max-records 10000
```

### detect_multi_03.py
```bash
# Rilevamento con dashboard live
python3 detect_multi_03.py --batch-size 3000 --sensibility 4

# Ciclo continuo con statistiche
python3 detect_multi_03.py --ciclo --pausa 45 --batch-size 2000

# Debug completo
python3 detect_multi_03.py --debug --batch-size 1000 --sensibility 6
```

## Monitoraggio Avanzato

### Informazioni Mostrate in Tempo Reale

#### Durante l'Addestramento:
- Progress bar per ogni fase
- Tempo trascorso e rimanente
- Dettagli su protocolli rilevati
- Statistiche host e IP
- Dimensioni file modelli salvati
- Tempo di addestramento per ogni algoritmo

#### Durante il Rilevamento:
- Dashboard con metriche live
- Velocità di processamento
- Tasso di anomalie
- IP analizzati vs bloccati
- Progress batch con ETA
- Esempi di IP bloccati
- Countdown tra cicli

### File di Log Dettagliati
- `analisys_debug.log` - Log addestramento con timestamp
- `detect_debug.log` - Log rilevamento con dettagli anomalie

## Risoluzione Problemi con Feedback

### Se il sistema sembra bloccato:
- Le progress bar mostrano l'avanzamento reale
- Gli spinner indicano operazioni in corso
- I dettagli mostrano cosa sta elaborando

### Per monitorare performance:
- Velocità di processamento in tempo reale
- Tempo stimato di completamento
- Statistiche cumulative

### Per debug:
- Usa `--debug` per informazioni dettagliate
- Controlla i file di log per errori
- Le statistiche live mostrano eventuali problemi

## Note Tecniche

### Compatibilità
- **analisys_02.py** è compatibile con **detect_multi_03.py**
- Stessa logica di feature engineering
- Formato modelli identico

### Performance
- Il feedback visivo ha impatto minimo sulle performance
- Progress bar aggiornate ogni 2-3 secondi
- Statistiche calcolate in background

### Personalizzazione
- Colori configurabili nel codice
- Frequenza aggiornamenti modificabile
- Livello di dettaglio regolabile 

# COMANDI TEST SISTEMA DDoS v02 - FEEDBACK DETTAGLIATO

## 🎯 COMANDI PRINCIPALI

### 🔧 Test Connessione Database
```bash
# Test connessione database (veloce, non si blocca)
python analisys_02.py --test

# Test con debug dettagliato
python analisys_02.py --test --debug
```

### 🎭 Modalità Demo (Senza Database)
```bash
# Test rapido con dati simulati (2-3 secondi)
python analisys_02.py --demo --max-records 500

# Test più completo
python analisys_02.py --demo --max-records 2000

# Con debug dettagliato
python analisys_02.py --demo --debug --max-records 1000
```

### 🚀 Addestramento Normale (Database Richiesto)
```bash
# Addestramento standard (rispetta intervallo 12h)
python analisys_02.py --max-records 50000

# Forza addestramento immediato
python analisys_02.py --force-training --max-records 50000

# Cambia frequenza addestramento (es: ogni 1 ora)
python analisys_02.py --training-hours 1.0 --max-records 50000

# Cambia frequenza addestramento (es: ogni 30 minuti)
python analisys_02.py --training-hours 0.5 --max-records 50000

# Addestramento con dataset ridotto
python analisys_02.py --force-training --max-records 10000

# Debug completo
python analisys_02.py --force-training --debug --max-records 5000
```

### ⚙️ Configurazione Database
```bash
# Mostra configurazione attuale
python config_database.py

# Modifica config_database.py per server remoto:
# DB_HOST = "192.168.1.100"  # IP del tuo server
# DB_PORT = "3306"           # Porta
# DB_USER = "username"       # Username
# DB_PASSWORD = "password"   # Password
```

## 📊 ESEMPI OUTPUT ATTESO

### ✅ Test Connessione Riuscito
```
============================================================
🤖 SISTEMA ADDESTRAMENTO DDoS v02 - FEEDBACK DETTAGLIATO
============================================================
ℹ Host: localhost:3306
ℹ Database: LOG_MIKROTIK
ℹ User: root
✓ Database connesso con successo
✓ Query base funzionante
✓ Tabella Esterna trovata
ℹ ✓ Esempio ID record: 1
ℹ ✓ Prime colonne: ID, Tipo, Data, Ora, Host
ℹ ✓ ID massimo: 692,766,739
✓ 🎉 Tutti i test database superati!
```

### 🎭 Modalità Demo
```
🎭 Modalità DEMO: Utilizzando dati simulati invece del database

▶ FASE: Generazione dati simulati
🚀 AVVIO: Simulazione Dataset
[██████████████████████████████] 100.0% (3/3) ⏱️ 1.6s
✓ Dataset simulato creato: 500 record

▶ FASE: Preparazione dati per addestramento
🚀 AVVIO: Preparazione Features
[██████████████████████████████] 100.0% (6/6) ⏱️ 0.1s
✓ Matrice preparata: 500 esempi × 50 feature

▶ FASE: Addestramento modelli di machine learning
🚀 AVVIO: Addestramento Modelli
[██████████████████████████████] 100.0% (7/7) ⏱️ 0.3s
✓ Isolation Forest completato in 0.1s
✓ LOF completato in 0.2s
✓ SVM completato in 0.0s

🎭 ADDESTRAMENTO DEMO COMPLETATO CON SUCCESSO!
✓ Tempo totale: 2.4 secondi
✓ Campioni processati: 500
✓ Feature generate: 50
```

### ⏭️ Addestramento Non Necessario
```
ℹ 📅 Ultimo addestramento: 2025-05-29 17:19:57
ℹ ⏰ Ore trascorse: 0.2
✓ ⏭️ Addestramento non necessario (<12h)

⏭️ ADDESTRAMENTO NON NECESSARIO
```

### 🚀 Addestramento in Corso
```
▶ FASE: Estrazione dati da server remoto (max 50,000 record)
🚀 AVVIO: Estrazione Dati Remoti
[██████████████████████████████] 100.0% (5/5) ⏱️ 12.3s
✓ Estratti 45,678 record in 12.3 secondi dal server remoto

▶ FASE: Preparazione dati per addestramento  
🚀 AVVIO: Preparazione Features
ℹ Preparazione feature per 45,678 campioni
✓ Feature temporali estratte da Data/Ora
ℹ ✓ Protocolli rilevati: {'TCP': 12450, 'UDP': 8901, 'HTTP': 3456}
ℹ ✓ Host FIBRA: 34567, Host vuoti: 234
ℹ ✓ IP unici elaborati: 12,345
ℹ ✓ Range ID: 692720061 - 692766739
✓ Matrice preparata: 45,678 esempi × 50 feature

▶ FASE: Addestramento modelli di machine learning
🚀 AVVIO: Addestramento Modelli
ℹ 🌲 Configurazione: 30 alberi, 500 campioni max
✓ Isolation Forest completato in 2.1s
ℹ 🔍 LOF su campione di 5,000 esempi  
✓ LOF completato in 4.3s
ℹ ⚙️ SVM su campione di 2,000 esempi
✓ SVM completato in 1.2s
ℹ 🎯 Pesi ensemble: IF=0.7, LOF=0.2, SVM=0.1
✓ Tutti i modelli salvati in 0.5s

🎉 ADDESTRAMENTO COMPLETATO CON SUCCESSO!
✓ Tempo totale: 24.7 secondi
✓ Campioni processati: 45,678
✓ Feature generate: 50
✓ Modelli salvati in: C:\RADIUS_DATA_TRANSFER\SITI\LOGMONGO\Root\models
```

## 🚨 RISOLUZIONE PROBLEMI

### ❌ Database Non Connesso
```
✗ Test connessione fallito: Can't connect to MySQL server
💡 Suggerimenti:
   - Verifica che MySQL/MariaDB sia attivo su localhost:3306
   - Per server remoto, modifica DB_HOST nel codice
   - Oppure usa variabili d'ambiente: set DB_HOST=ip_server_remoto
   - Per test senza database usa: --demo
```
**Soluzione**: Usa `--demo` o configura `config_database.py`

### ⚠️ Troppi Pochi Campioni
```
✗ Troppo pochi campioni: 100 < 500
```
**Soluzione**: Usa almeno `--max-records 500`

### 🔄 Addestramento Saltato
```
✓ ⏭️ Addestramento non necessario (<12h)
```
**Soluzioni**:
- `--force-training` per forzare
- `--training-hours 0.5` per cambiare frequenza
- `--training-hours 1.0` per ogni ora

## 📝 NOTE IMPORTANTI

1. **Requisiti minimi**: 500 record per addestramento
2. **Modalità demo**: Perfetta per test e sviluppo
3. **Frequenza addestramento**: Configurabile da 0.1 ore (6 min) a ore/giorni
4. **Server remoto**: Configurare `config_database.py`
5. **Timeout**: Ottimizzati per server remoti (5 secondi)
6. **Compatibilità**: Windows con PowerShell
7. **Modelli**: Salvati in cartella `models/` locale 