Fix monitoring errors and database inconsistencies on the dashboard

Fix critical bugs in the Syslog Parser monitoring endpoint fetch and update database schema for network logs.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: a6dcc6ae-9272-494e-a68e-a0a2b865f1c4
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/VDRknFA
This commit is contained in:
marco370 2025-11-22 10:15:19 +00:00
parent 9d5ecf99c4
commit e6fb3aefe3
3 changed files with 72 additions and 1 deletions

View File

@ -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;

View File

@ -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

View File

@ -370,7 +370,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
const servicesResponse = await fetch(`${ML_BACKEND_URL}/services/status`, {
headers: getMLBackendHeaders(),
signal: controller2.abort,
signal: controller2.signal,
});
clearTimeout(timeout2);