Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 1c71ce6e-1a3e-4f53-bb5d-77cdd22b8ea3
433 lines
13 KiB
Markdown
433 lines
13 KiB
Markdown
# 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 |