diff --git a/database-schema/migrations/003_fix_network_logs_columns.sql b/database-schema/migrations/003_fix_network_logs_columns.sql new file mode 100644 index 0000000..457b354 --- /dev/null +++ b/database-schema/migrations/003_fix_network_logs_columns.sql @@ -0,0 +1,54 @@ +-- ========================================================= +-- MIGRAZIONE 003: Fix network_logs columns (dest_ip -> destination_ip) +-- ========================================================= +-- Assicura che le colonne di network_logs usino i nomi corretti + +-- Rinomina dest_ip -> destination_ip se esiste +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'network_logs' AND column_name = 'dest_ip' + ) THEN + ALTER TABLE network_logs RENAME COLUMN dest_ip TO destination_ip; + RAISE NOTICE 'Colonna dest_ip rinominata in destination_ip'; + END IF; +END $$; + +-- Rinomina dest_port -> destination_port se esiste +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'network_logs' AND column_name = 'dest_port' + ) THEN + ALTER TABLE network_logs RENAME COLUMN dest_port TO destination_port; + RAISE NOTICE 'Colonna dest_port rinominata in destination_port'; + END IF; +END $$; + +-- Rinomina src_ip -> source_ip se esiste +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'network_logs' AND column_name = 'src_ip' + ) THEN + ALTER TABLE network_logs RENAME COLUMN src_ip TO source_ip; + RAISE NOTICE 'Colonna src_ip rinominata in source_ip'; + END IF; +END $$; + +-- Rinomina src_port -> source_port se esiste +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'network_logs' AND column_name = 'src_port' + ) THEN + ALTER TABLE network_logs RENAME COLUMN src_port TO source_port; + RAISE NOTICE 'Colonna src_port rinominata in source_port'; + END IF; +END $$; + +SELECT 'Migrazione 003 completata!' AS status; diff --git a/replit.md b/replit.md index f16e374..76a37fc 100644 --- a/replit.md +++ b/replit.md @@ -150,6 +150,23 @@ The IDS features a React-based frontend for real-time monitoring, detection visu ## Fix Recenti (Novembre 2025) +### 🐛 Fix Monitoring Syslog Parser + Schema Database (22 Nov 2025 - 11:10) +- **Problema 1**: Dashboard mostrava Syslog Parser in errore nonostante systemd "active (running)" + - **Causa**: Bug fetch `signal: controller2.abort` invece di `signal: controller2.signal` in `/api/services/status` + - **Soluzione**: Corretto parametro AbortController signal +- **Problema 2**: Errore database `column "destination_ip" does not exist` + - **Causa**: Database server usa `dest_ip`/`src_ip` invece di `destination_ip`/`source_ip` + - **Soluzione**: Migrazione SQL 003 rinomina colonne in formato corretto +- **Fix Applicati**: + - ✅ `server/routes.ts`: Corretto signal in fetch monitoring + - ✅ `database-schema/migrations/003_fix_network_logs_columns.sql`: Migrazione rinomina colonne +- **Deploy**: + 1. Eseguire `./update_from_git.sh --db` per applicare migrazione + 2. Riavviare backend Node.js + 3. Dashboard mostrerà correttamente tutti i servizi (pallini verdi) + +## Fix Recenti (Novembre 2025) + ### 🚨 Database Full - Auto-Cleanup Fix (21 Nov 2025 - 18:00) - **Problema**: Database PostgreSQL pieno con **417 MILIONI di log** accumulati - Syslog parser ha processato 417.7M righe senza limite di retention diff --git a/server/routes.ts b/server/routes.ts index 64dafe3..2789039 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -370,7 +370,7 @@ export async function registerRoutes(app: Express): Promise { const servicesResponse = await fetch(`${ML_BACKEND_URL}/services/status`, { headers: getMLBackendHeaders(), - signal: controller2.abort, + signal: controller2.signal, }); clearTimeout(timeout2);