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
184 lines
4.7 KiB
Markdown
184 lines
4.7 KiB
Markdown
# Comandi di Test - Versioni Semplificate
|
|
|
|
## File Creati
|
|
|
|
### Sistema di Addestramento
|
|
- **analisys_01.py** - Versione semplificata per addestramento modelli
|
|
- Query database semplificate
|
|
- Solo 50 feature invece di 125
|
|
- Parametri ridotti per velocità massima
|
|
- Timeout di connessione ridotti
|
|
|
|
### Sistema di Rilevamento
|
|
- **detect_multi_02.py** - Versione semplificata per rilevamento DDoS
|
|
- Compatibile con modelli di analisys_01.py
|
|
- Stessa logica di feature engineering
|
|
- Gestione anomalie semplificata
|
|
|
|
## Comandi di Test
|
|
|
|
### 1. Test Connessione Database
|
|
|
|
```bash
|
|
# Test addestramento
|
|
python3 analisys_01.py --test
|
|
|
|
# Test rilevamento (dopo aver addestrato i modelli)
|
|
python3 detect_multi_02.py --debug
|
|
```
|
|
|
|
### 2. Addestramento Modelli
|
|
|
|
```bash
|
|
# Addestramento base (50k record max)
|
|
python3 analisys_01.py --max-records 50000
|
|
|
|
# Addestramento con meno record per test veloce
|
|
python3 analisys_01.py --max-records 10000
|
|
|
|
# Addestramento forzato (ignora timestamp)
|
|
python3 analisys_01.py --force-training --max-records 20000
|
|
|
|
# Addestramento con debug
|
|
python3 analisys_01.py --debug --max-records 10000
|
|
```
|
|
|
|
### 3. Rilevamento DDoS
|
|
|
|
```bash
|
|
# Rilevamento singolo
|
|
python3 detect_multi_02.py --batch-size 5000
|
|
|
|
# Rilevamento con sensibilità alta (più anomalie)
|
|
python3 detect_multi_02.py --sensibility 3 --batch-size 5000
|
|
|
|
# Rilevamento con sensibilità bassa (meno anomalie)
|
|
python3 detect_multi_02.py --sensibility 7 --batch-size 5000
|
|
|
|
# Rilevamento in ciclo continuo
|
|
python3 detect_multi_02.py --ciclo --pausa 30 --batch-size 5000
|
|
|
|
# Rilevamento con debug
|
|
python3 detect_multi_02.py --debug --batch-size 1000
|
|
```
|
|
|
|
## Sequenza di Test Completa
|
|
|
|
### Passo 1: Test Connessione
|
|
```bash
|
|
python3 analisys_01.py --test
|
|
```
|
|
**Risultato atteso:** "Test SUPERATO"
|
|
|
|
### Passo 2: Addestramento Veloce
|
|
```bash
|
|
python3 analisys_01.py --max-records 10000
|
|
```
|
|
**Risultato atteso:**
|
|
- Estrazione dati in <30 secondi
|
|
- Addestramento completato in <60 secondi
|
|
- Modelli salvati in cartella `models/`
|
|
|
|
### Passo 3: Verifica Modelli
|
|
```bash
|
|
ls -la models/
|
|
```
|
|
**File attesi:**
|
|
- `isolation_forest.joblib`
|
|
- `lof.joblib`
|
|
- `svm.joblib`
|
|
- `ensemble_weights.joblib`
|
|
- `preprocessor.joblib`
|
|
|
|
### Passo 4: Test Rilevamento
|
|
```bash
|
|
python3 detect_multi_02.py --batch-size 1000 --debug
|
|
```
|
|
**Risultato atteso:**
|
|
- Caricamento modelli OK
|
|
- Estrazione dati veloce
|
|
- Rilevamento anomalie funzionante
|
|
|
|
## Parametri Ottimizzati
|
|
|
|
### analisys_01.py
|
|
- `--max-records`: 10000-50000 (default: 50000)
|
|
- `--force-training`: Per forzare riaddestramento
|
|
- `--test`: Solo test connessione
|
|
- `--debug`: Logging dettagliato
|
|
|
|
### detect_multi_02.py
|
|
- `--batch-size`: 1000-10000 (default: 10000)
|
|
- `--sensibility`: 1-10 (default: 5)
|
|
- 1 = massima sensibilità (più anomalie)
|
|
- 10 = minima sensibilità (meno anomalie)
|
|
- `--ciclo`: Esecuzione continua
|
|
- `--pausa`: Secondi tra cicli (default: 60)
|
|
- `--debug`: Logging dettagliato
|
|
|
|
## Risoluzione Problemi
|
|
|
|
### Errore "Database non raggiungibile"
|
|
```bash
|
|
# Verifica credenziali database
|
|
export DB_USER=root
|
|
export DB_PASSWORD=Hdgtejskjjc0-
|
|
export DB_HOST=localhost
|
|
export DB_DATABASE=LOG_MIKROTIK
|
|
```
|
|
|
|
### Errore "Modello non trovato"
|
|
```bash
|
|
# Prima esegui addestramento
|
|
python3 analisys_01.py --force-training --max-records 10000
|
|
```
|
|
|
|
### Errore "Nessun dato estratto"
|
|
```bash
|
|
# Verifica tabella Esterna
|
|
python3 analisys_01.py --test
|
|
```
|
|
|
|
### Performance lente
|
|
```bash
|
|
# Riduci batch size
|
|
python3 analisys_01.py --max-records 5000
|
|
python3 detect_multi_02.py --batch-size 1000
|
|
```
|
|
|
|
## Monitoraggio
|
|
|
|
### File di Log
|
|
- `analisys_debug.log` - Log addestramento
|
|
- `detect_debug.log` - Log rilevamento
|
|
|
|
### File di Stato
|
|
- `models/last_training.txt` - Timestamp ultimo addestramento
|
|
- `last_analyzed_id.txt` - Ultimo ID analizzato per rilevamento
|
|
|
|
### Statistiche in Tempo Reale
|
|
Durante l'esecuzione vengono mostrate:
|
|
- Tempo trascorso
|
|
- Record processati
|
|
- Anomalie trovate
|
|
- IP analizzati
|
|
|
|
## Note Tecniche
|
|
|
|
### Differenze dalle Versioni Originali
|
|
1. **Query semplificate**: Niente filtri temporali complessi
|
|
2. **Feature ridotte**: 50 invece di 125 per velocità
|
|
3. **Parametri modelli ridotti**: Meno estimatori, campioni limitati
|
|
4. **Timeout ridotti**: 15-30 secondi invece di 5 minuti
|
|
5. **Gestione errori migliorata**: Fallback e recovery automatici
|
|
|
|
### Compatibilità
|
|
- **analisys_01.py** genera modelli compatibili con **detect_multi_02.py**
|
|
- Stessa logica di feature engineering per consistenza
|
|
- Formato file modelli standard joblib
|
|
|
|
### Performance Attese
|
|
- **Addestramento**: 1-3 minuti per 10k record
|
|
- **Rilevamento**: 5-15 secondi per 1k record
|
|
- **Memoria**: <1GB RAM utilizzata
|
|
- **CPU**: Utilizzo moderato (2-4 core) |