DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Requisiti per il Monitoraggio dell’Attività del Database PostgreSQL

Requisiti per il Monitoraggio dell’Attività del Database PostgreSQL

Introduzione

PostgreSQL elabora oltre 10.000 transazioni al secondo in ambienti ad alto carico. Ogni transazione richiede un monitoraggio accurato. Uno studio recente mostra che il 60% delle violazioni della sicurezza del database si verifica a causa di un monitoraggio insufficiente (statistica tratta da Verizon DBIR, 2023). Esaminiamo come implementare un monitoraggio completo dell’attività del database PostgreSQL e l’audit dei dati.

Comprendere il Monitoraggio degli Accessi e dell’Autenticazione

PostgreSQL fornisce strumenti robusti per tracciare l’accesso degli utenti. Ecco come implementare il monitoraggio essenziale dell’autenticazione:

-- Monitora le sessioni attive
SELECT pid, usename, application_name, client_addr, 
       backend_start, state, query
FROM pg_stat_activity;

pg_stat_activity contiene tutte le sessioni attive e inattive del momento:

Monitora la durata delle sessioni degli utenti come segue:

SELECT usename, count(*), 
       avg(extract(epoch from now() - backend_start))::integer 
FROM pg_stat_activity 
GROUP BY usename;

Monitoraggio delle Modifiche dei Dati

Il monitoraggio delle modifiche ai dati aiuta a rilevare modifiche non autorizzate. Implementare questi meccanismi di tracciamento:

Crea una funzione trigger per l’audit

CREATE OR REPLACE FUNCTION audit_trigger_func() 
RETURNS trigger AS $$
BEGIN
    INSERT INTO audit_log(
        table_name, action, user_name, 
        changed_fields, row_data
    )
    VALUES (
        TG_TABLE_NAME, TG_OP, current_user,
        row_to_json(NEW), row_to_json(OLD)
    );
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

Applica il trigger alle tabelle sensibili

CREATE TRIGGER audit_trigger
AFTER INSERT OR UPDATE OR DELETE ON sensitive_table
FOR EACH ROW EXECUTE FUNCTION audit_trigger_func();

Prima di implementare il trigger di audit, sostituisca “sensitive_table” con il nome reale della tabella che si desidera monitorare. Sebbene i trigger forniscano un approccio semplice all’audit, essi possono impattare le prestazioni in sistemi ad alto carico e richiedere manutenzione aggiuntiva. Consideri l’utilizzo di soluzioni dedicate per la registrazione dei log di audit, come pgAudit per ambienti di produzione.

Monitoraggio della Configurazione della Sicurezza

Traccia le modifiche relative alla sicurezza con queste query:

1. Monitora le modifiche ai ruoli

SELECT rolname, rolsuper, rolcreaterole, 
       rolcreatedb, rolcanlogin
FROM pg_roles;

Questo potrebbe restituire la matrice degli accessi come segue per il nostro PostgreSQL locale:

2. Traccia le modifiche alle autorizzazioni.

SELECT grantor, grantee, table_schema, 
       table_name, privilege_type
FROM information_schema.role_table_grants;

3. Controlla le impostazioni di sicurezza correnti.

SHOW all;

Operazioni di Backup e Ripristino

Implementi il monitoraggio dei backup con questi approcci:

-- Traccia lo stato del WAL (Write-Ahead Log)
SELECT * FROM pg_stat_wal;

-- Monitora la cronologia dei backup
SELECT start_time, end_time, 
       success, database_name
FROM pg_backup_history;

-- Controlla lo stato della replica
SELECT * FROM pg_stat_replication;

Monitoraggio dell’Attività delle Query

Traccia le prestazioni e i modelli delle query:

-- Abilita il tracciamento delle query
CREATE EXTENSION pg_stat_statements;

-- Monitora le query in esecuzione da lungo tempo
SELECT pid, age(clock_timestamp(), query_start), 
       usename, query 
FROM pg_stat_activity 
WHERE state != 'idle' 
AND query_start < now() - interval '5 minutes';

-- Analizza i pattern delle query
SELECT query, calls, total_time, rows, 
       mean_time
FROM pg_stat_statements 
ORDER BY total_time DESC;

Monitoraggio degli Eventi del Sistema

Traccia gli eventi critici del sistema:

-- Monitora le statistiche del database (backend, riepilogo transazioni)
SELECT datname, numbackends, xact_commit, 
       xact_rollback, blks_read, blks_hit
FROM pg_stat_database;

Questo produce il seguente output:

Potrebbe riscontrare alcune transazioni annullate (118 in questo caso).

-- Controlla le statistiche delle tabelle
SELECT schemaname, relname, seq_scan, 
       seq_tup_read, idx_scan
FROM pg_stat_user_tables;

Questa query aiuta a comprendere quanto efficientemente le tabelle vengono accessate. Analizzando la frequenza delle scansioni sequenziali rispetto alle scansioni tramite indici, è possibile individuare eventuali problemi di prestazioni, come tabelle esaminate senza l’utilizzo degli indici disponibili, segnalando la necessità di un’ottimizzazione dell’indicizzazione o delle query.

-- Monitora i conflitti di lock
SELECT blocked_locks.pid AS blocked_pid,
       blocked_activity.usename AS blocked_user,
       blocking_locks.pid AS blocking_pid,
       blocking_activity.usename AS blocking_user
FROM pg_locks blocked_locks
JOIN pg_locks blocking_locks
  ON blocked_locks.locktype = blocking_locks.locktype
  AND blocked_locks.locktype = 'transactionid'
  AND blocked_locks.transactionid = blocking_locks.transactionid
JOIN pg_stat_activity blocked_activity 
  ON blocked_locks.pid = blocked_activity.pid
JOIN pg_stat_activity blocking_activity 
  ON blocking_locks.pid = blocking_activity.pid
WHERE blocked_locks.granted = FALSE
  AND blocking_locks.granted = TRUE;

DataSunrise per il Monitoraggio dell’Attività del Database PostgreSQL

DataSunrise innalza il monitoraggio dell’attività del database fornendo caratteristiche di sicurezza robuste in modo coerente attraverso decine di database supportati. Offre cinque modalità di distribuzione flessibili, che consentono di bilanciare la latenza del database, l’insieme delle funzionalità e l’impatto sull’infrastruttura esistente.

Il cruscotto offre una visione completa delle informazioni chiave sui database sotto protezione e monitoraggio:

Tutti i database protetti sono elencati nella pagina Databases con i loro parametri di rete:

Infine, tutti gli eventi monitorati sono presentati in un formato coerente per tutti i database, comodamente visualizzati in un unico luogo:

Oltre al monitoraggio, DataSunrise offre una sicurezza avanzata dei dati, la scoperta dei dati sensibili, la generazione automatica di report di conformità e il mascheramento dei dati. La nostra interfaccia web intuitiva include un assistente basato su AI, che consente un rapido accesso a guide e materiali di riferimento per un utilizzo senza interruzioni del prodotto.

Riepilogo e Conclusioni

Un monitoraggio efficace di PostgreSQL richiede un approccio completo che copra tutti gli aspetti delle operazioni del database. Un monitoraggio regolare contribuisce a mantenere la sicurezza, le prestazioni e l’affidabilità dei sistemi di database.

DataSunrise PostgreSQL Security Solution

DataSunrise fornisce strumenti specializzati per il monitoraggio e la sicurezza di PostgreSQL. La nostra soluzione offre un monitoraggio in tempo reale dell’attività, report di conformità e caratteristiche di sicurezza avanzate progettate specificamente per i database PostgreSQL.

Sperimenti la potenza degli strumenti di sicurezza PostgreSQL di DataSunrise. Visiti il nostro sito web per fissare una demo online e scoprire come possiamo migliorare l’infrastruttura di sicurezza del Suo database.

Successivo

Audit dei Dati per Snowflake

Audit dei Dati per Snowflake

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Informazioni generali:
[email protected]
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
[email protected]