Questo documento descrive come configurare la rotazione dei log di diagnostica di AlloyDB Omni quando utilizzi l'operatore AlloyDB Omni Kubernetes.
I seguenti file di log si trovano nella directory /obs/diagnostic/
:
postgresql.audit
: questo file log raccoglie i log di controllo dell'accesso alle sessioni e agli oggetti. Per raccogliere gli audit log, devi abilitarli.postgresql.log
: questo file log raccoglie i log del server PostgreSQL. Questi log vengono sempre raccolti e non è necessario attivarli.
Quando un file di log viene ruotato, si verifica quanto segue:
Il file di log viene copiato nella directory
/obs/diagnostic/archive/
. Se nella directory esiste già un file log con lo stesso nome, viene sovrascritto.I contenuti del file di log ruotato originale vengono eliminati in modo che il file sia vuoto.
La scrittura delle informazioni del log inizia immediatamente nel file di log ruotato vuoto. Le informazioni dei log vengono scritte nel file di log fino a quando il file non raggiunge una soglia di dimensione o di età, a quel punto viene eseguito nuovamente il ciclo. I log vengono ruotati in modo che non diventino troppo grandi.
Per impostazione predefinita, l'impostazione di rotazione prevede che ogni file di log venga ruotato quando le sue dimensioni raggiungono i 200 MB. La rotazione predefinita non include un'impostazione relativa all'età.
Ogni file archiviato viene compresso singolarmente utilizzando il formato file Gzip (.gz
).
I file archiviati vengono conservati per 7 giorni. I file archiviati più vecchi di 7 giorni vengono rimossi automaticamente, ad eccezione del file archiviato durante la rotazione precedente. Ad esempio, se log_rotation_age
risale a più di 7 giorni fa,
il file archiviato raggiunge la soglia di 7 giorni prima della rotazione del
file corrente. In questo caso, il file archiviato non viene rimosso finché la rotazione successiva non genera un nuovo file archiviato.
Ogni nome file del log archiviato segue questo formato: postgresql-%Y-%m-%d_%H%M%S.log.gz
.
Il timestamp viene determinato al momento della rotazione dei log ed è espresso in
fuso orario UTC (Coordinated Universal Time). Ad esempio, se il log viene ruotato alle 13:01:02 del 20/12/2024 UTC, il nome file archiviato èpostgresql-2024-12-20_130102.log.gz
.
Per salvare definitivamente un file archiviato, puoi copiarlo dal contenitore del database
nella tua directory locale utilizzando kubectl cp
.
Abilita audit log
Affinché i log di accesso a sessioni e oggetti vengano raccolti nel file postgresql.audit
, devi attivare il parametro del database pgaudit
. Per attivare pgaudit
,
aggiungi la seguente riga alla sezione parameters
del
file v1_dbcluster_parameters.yaml
in Secret
:
alloydb.enable_pgaudit: "on"
Di seguito è riportato un esempio di come potrebbe essere:
apiVersion: v1
kind: Secret
...
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
databaseVersion: "15.7.0"
primarySpec:
...
parameters:
...
alloydb.enable_pgaudit: "on"
Per ulteriori informazioni, consulta pgaudit
in
Estensioni di database supportate e
Estensione di controllo PostgreSQL.
I log del server PostgreSQL vengono sempre raccolti nel file postgresql.log
e
non richiedono l'attivazione di pgaudit
.
Configura la rotazione dei log
Se vuoi un maggiore controllo sulla rotazione dei log, configura una dimensione massima del file, una durata tra le rotazioni dei log o entrambe. La durata tra le rotazioni dei log è anche chiamata età del log. Se utilizzi entrambe le impostazioni, ogni log viene ruotato quando raggiunge una delle soglie.
Per configurare la rotazione dei log, imposta uno o entrambi i seguenti parametri nella sezione parameters
del manifest DBCluster
:
log_rotation_size
: "SIZE_IN_KB"log_rotation_age
: "AGE_IN_MINUTES"
Per disattivare una delle impostazioni di rotazione dei log, impostala su zero ("0"
).
Per mantenere l'impostazione predefinita che esegue la rotazione dei log quando le dimensioni del file
raggiungono i 200 MB, non impostare nessuno dei parametri.
Esempio di dimensione e durata massima dei log di rotazione
Il seguente esempio imposta la rotazione dei log quando le dimensioni del file raggiungono i 400 MB o quando il tempo tra le rotazioni dei log raggiunge un giorno, a seconda dell'evento che si verifica per primo:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
...
primarySpec:
...
parameters:
log_rotation_size: "400000" # 400 MB
log_rotation_age: "1440" # 24 hours * 60 minutes = 1 day
Esempio di dimensione massima del log di rotazione dei log
Il seguente esempio imposta la rotazione dei log quando la dimensione del file raggiunge 400 MB:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
...
primarySpec:
...
parameters:
log_rotation_size: "400000" # 400 MB
log_rotation_age: "0" # Set to 0 to disable
Esempio di durata della rotazione dei log
L'esempio seguente imposta la rotazione dei log una volta ogni 24 ore:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
...
primarySpec:
...
parameters:
log_rotation_size: "0" # Set to 0 to disable
log_rotation_age: "1440" # 24 hours * 60 minutes = 1 day
Passaggi successivi
- Gestire e monitorare AlloyDB Omni
- Generare e diagnosticare i file dump di AlloyDB Omni
- Scopri di più sulla gestione automatica della memoria