Per monitorare l'attività del database e soddisfare i requisiti di conformità governativi, finanziari e ISO, puoi visualizzare ed eseguire query sui log di controllo dell'accesso ai dati generati da pgAudit per AlloyDB per PostgreSQL in Cloud Logging. Puoi anche esaminare il formato della voce di log pgAudit e monitorare lo stato della pipeline di audit logging in Cloud Monitoring. Per saperne di più su pgAudit, consulta Informazioni su pgAudit.
Prima di iniziare
Per visualizzare gli audit log, devi:
Abilita gli audit log di accesso ai dati per il tuo progetto AlloyDB.
Chiedi all'amministratore di concederti il ruolo Visualizzatore log privati (
roles/logging.privateLogViewer).
Visualizza audit log
I log pgAudit generati per un'istanza specifica vengono inviati a Cloud Logging come audit log di accesso ai dati.
Puoi visualizzare i log pgAudit generati utilizzando l'applicazione Esplora log.
Per visualizzare i log pgAudit, seleziona il filtro dei log cloudaudit.googleapis.com/data_access nell'applicazione Esplora log.
Per visualizzare tutti i log pgAudit per un progetto AlloyDB, esegui questa query utilizzando l'interfaccia Filtro avanzato:
resource.type="alloydb.googleapis.com/Instance" logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access" protoPayload.request.@type="type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
Sostituisci PROJECT_ID con l'ID del tuo progetto AlloyDB.
Formato dei log per pgAudit
Ogni voce di log pgAudit nei log di controllo dell'accesso ai dati contiene campi che rappresentano le informazioni raccolte per una query. Per saperne di più su questi campi voce di log, consulta la documentazione di pgAudit.
Esempio di voce di log pgAudit:
{
protoPayload: {
@type: "type.googleapis.com/google.cloud.audit.AuditLog"
methodName: "alloydb.instances.query"
request: {
@type: "type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
auditClass: "READ"
auditType: "SESSION"
chunkCount: "1"
chunkIndex: "1"
command: "SELECT"
database: "finance"
databaseSessionId: 2209692
parameter: "[not logged]"
statement: "SELECT * FROM revenue"
statementId: 2
substatementId: 1
user: "alice"
}
}
}
Di seguito sono riportate le descrizioni dei campi nei log di controllo dell'accesso ai dati:
- auditClass. Il tipo di istruzione registrata. I valori possibili sono READ, WRITE, FUNCTION, ROLE, DDL, MISC e MISC_SET.
- auditType. SESSION o OBJECT.
- chunkCount. La suddivisione in blocchi può avvenire sui dati forniti nei campi
parameterestatement. Il campochunkCountindica il numero totale di blocchi. Consulta anche la descrizione del campochunkIndex. - chunkIndex. Specifica il numero di indice dei blocchi di dati nei campi
parameterestatementnel containerrequestcorrente. Il numero iniziale è1. Consulta anche la descrizione del campochunkCount. - command. Ad esempio, ALTER TABLE o SELECT.
- parameter. Il campo
chunkIndexpuò determinare i contenuti di questo campo; consulta la descrizione del campochunkIndex. Se il valore del flagpgaudit.log_parameterè impostato, il campoparameterpuò contenere i parametri dell'istruzione come dati CSV tra virgolette. Se non sono presenti parametri, questo campo contiene[none]. In caso contrario, questo campo contiene[not logged]. - statement. Istruzione eseguita sul backend.
Il campo
chunkIndexpuò determinare i contenuti del campostatement; consulta la descrizione del campochunkIndex. - statementId. ID istruzione univoco per questa sessione. Ogni ID istruzione rappresenta una chiamata di backend. Gli ID istruzione sono sequenziali, anche se alcune istruzioni non vengono registrate.
- substatementId. ID sequenziale per ogni istruzione secondaria all'interno dell'istruzione principale.
Monitora lo stato della pipeline degli audit log
AlloyDB elabora gli audit log generati dagli utenti in modo asincrono prima di inoltrarli in modo sicuro a Cloud Logging. Puoi monitorare lo stato, il throughput e il backlog della pipeline di audit logging per le tue istanze e i tuoi nodi utilizzando Cloud Monitoring.
Le seguenti metriche sono disponibili nella risorsa monitorata alloydb.googleapis.com/InstanceNode in Esplora metriche:
| Nome metrica | Nome visualizzato | Tipo di metrica / Tipo di valore | Unità | Descrizione |
|---|---|---|---|---|
alloydb.googleapis.com/node/database/logging/audit/backlog_bytes_count |
Dimensioni del backlog degli audit log | GAUGE / INT64 | Byte (By) |
La dimensione, in byte, del backlog degli audit log sul nodo in attesa di elaborazione e caricamento su Cloud Logging. Un valore elevato o in aumento costante indica una contropressione nella pipeline di forwarding degli audit log. |
alloydb.googleapis.com/node/database/logging/audit/processed_bytes_count |
Byte di audit log elaborati | DELTA / INT64 | Byte (By) |
Il numero totale di byte di dati degli audit log elaborati e inoltrati correttamente a Cloud Logging dal nodo. |
alloydb.googleapis.com/node/database/logging/audit/processed_entries_count |
Voci dei log di controllo elaborate | DELTA / INT64 | Conteggio (1) |
Il numero totale di voci di log degli audit elaborate e inoltrate correttamente a Cloud Logging dal nodo. |
Per saperne di più, consulta il riferimento alle metriche di System Insights.