Come posso monitorare i tentativi non riusciti di accesso alla mia istanza database Amazon RDS per PostgreSQL?
Desidero monitorare il numero di connessioni non riuscite alla mia istanza database Amazon Relational Database Service (Amazon RDS) per PostgreSQL.
Risoluzione
PostgreSQL genera nuovi file di log ogni ora. Per monitorare i tentativi non riusciti di accesso a un'istanza database che esegue PostgreSQL, attiva il parametro log_connections. Il parametro si trova nel gruppo di parametri personalizzato associato all'istanza database. Se un utente tenta quindi di accedere all'istanza database utilizzando credenziali errate, i tentativi non riusciti vengono registrati nel log. I tentativi non riusciti sono simili all’esempio seguente: "error/postgresql.log.2018-04-19-10". Per ulteriori informazioni, consulta Gruppi di parametri per Amazon RDS.
Consulta l’esempio seguente di tentativo di accesso non riuscito:
2018-04-19 10:12:31 UTC:123.45.67.8(6789):[unknown]@[unknown]:[12507]:LOG: connection received: host=123.45.67.8port=12345 2018-04-19 10:12:31 UTC:123.45.67.8(6789):test_user@Test_DB:[12507]:FATAL: password authentication failed for user "test_user"
Puoi anche utilizzare il parametro di PostgreSQL log_connections per registrare i tentativi di accesso riusciti a un'istanza database che esegue PostgreSQL.
Consulta l’esempio seguente di tentativo di accesso riuscito:
2018-04-19 10:19:20 UTC:123.45.67.8(6789):[unknown]@[unknown]:[17196]:LOG: connection received: host=123.45.67.8 port=12345 2018-04-19 10:19:20 UTC:123.45.67.8(6789):test_user@Test_DB:[17196]:LOG: connection authorized: user=test_user database=Test_DB SSL enabled (protocol=xxxx, cipher=xxxx, compression=off)
Utilizza i parametri log_connections e log_disconnections per registrare la durata della sessione di un utente.
Consulta l’esempio seguente riguardante la durata di una sessione:
2018-04-19 10:19:43 UTC:123.45.67.8(6789):test_user@Test_DB:[17196]:LOG: disconnection: session time: 0:00:23.753 user=test_user database=Test_DB host=123.45.67.8 port=12345
Nota: l'indirizzo IP del computer client è 123.45.67.8 e 6789 è il PID (ID processo) assegnato al processo del database PostgreSQL.
Analisi del file log
Utilizza l’Interfaccia della linea di comando AWS (AWS CLI) o la console Amazon Aurora e RDS per scaricare il log. Quindi utilizza l'utilità grep per cercare le connessioni non riuscite:
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.
$ grep -B 1 "authentication failed" postgresql.log.2018-04-19-10 2018-04-19 10:12:31 UTC:123.45.67.8(6789):[unknown]@[unknown]:[12507]:LOG: connection received: host=123.45.67.8port=12345 2018-04-19 10:12:31 UTC:123.45.67.8(6789):test_user@Test_DB:[12507]:FATAL: password authentication failed for user "test_user"
Nota: il parametro - B 1 indica a grep di mostrare anche la linea che precede le linee che corrispondono al modello che stai cercando. In questo esempio, il modello è authentication failed (autenticazione non riuscita).
Puoi anche utilizzare l'estensione PostgreSQL log_fdw per accedere a questi log come tabelle esterne. Se desideri conservare i file di log di PostgreSQL per un periodo più lungo del periodo di conservazione, pubblica i log di Amazon RDS per PostgreSQL in Amazon CloudWatch Logs.
Informazioni correlate
File di log del database RDS per PostgreSQL
Esportazione di dati di log in Amazon S3
Pubblicazione dei log di Aurora PostgreSQL in Amazon CloudWatch Logs
- Argomenti
- Database
- Lingua
- Italiano
