Ce document explique comment configurer la rotation des journaux de diagnostic AlloyDB Omni lorsque vous utilisez l'opérateur Kubernetes AlloyDB Omni.
Les fichiers journaux suivants se trouvent dans le répertoire /obs/diagnostic/
:
postgresql.audit
: ce fichier journal collecte les journaux d'audit des sessions et de l'accès aux objets. Pour collecter des journaux d'audit, vous devez activer les journaux d'audit.postgresql.log
: ce fichier journal collecte les journaux du serveur PostgreSQL. Ces journaux sont toujours collectés et n'ont pas besoin d'être activés.
Lorsqu'un fichier journal est régénéré, les opérations suivantes sont effectuées:
Le fichier journal est copié dans le répertoire
/obs/diagnostic/archive/
. Si un fichier journal portant le même nom existe dans ce répertoire, il est écrasé.Le contenu du fichier journal d'origine est supprimé pour qu'il soit vide.
Les informations de journalisation commencent immédiatement à être écrites dans le fichier de journal rotatif vide. Les informations de journal sont écrites dans le fichier journal jusqu'à ce qu'il atteigne un seuil de taille ou d'âge, auquel cas il est à nouveau remplacé. Les journaux sont mis en rotation pour qu'ils ne deviennent pas trop volumineux.
Par défaut, chaque fichier journal est régénéré lorsque sa taille atteint 200 Mo. La rotation par défaut n'inclut pas de paramètre d'âge.
Chaque fichier archivé est compressé individuellement au format Gzip (.gz
).
Les fichiers archivés sont conservés pendant sept jours. Les fichiers archivés de plus de sept jours sont automatiquement supprimés, à l'exception du fichier archivé lors de la rotation précédente. Par exemple, si log_rotation_age
a plus de sept jours, le fichier archivé atteint le seuil de sept jours avant la rotation du fichier actuel. Dans ce cas, ce fichier archivé n'est pas supprimé tant que la rotation suivante ne génère pas un nouveau fichier archivé.
Chaque nom de fichier de journal archivé suit le format suivant: postgresql-%Y-%m-%d_%H%M%S.log.gz
.
Le code temporel est déterminé au moment de la rotation des journaux et est exprimé en temps universel coordonné (UTC). Par exemple, si le journal est régénéré à 13:01:02 le 20/12/2024 UTC, le nom de fichier archivé est postgresql-2024-12-20_130102.log.gz
.
Pour enregistrer un fichier archivé de manière permanente, vous pouvez le copier du conteneur de base de données vers votre répertoire local à l'aide de kubectl cp
.
Activer les journaux d'audit
Pour que les journaux d'accès aux sessions et aux objets soient collectés dans le fichier postgresql.audit
, vous devez activer le paramètre de base de données pgaudit
. Pour activer pgaudit
, ajoutez la ligne suivante à la section parameters
du fichier v1_dbcluster_parameters.yaml
sous Secret
:
alloydb.enable_pgaudit: "on"
Voici un exemple de ce à quoi cela pourrait ressembler:
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"
Pour en savoir plus, consultez pgaudit
dans la section Extensions de base de données compatibles et Extension d'audit PostgreSQL.
Les journaux du serveur PostgreSQL sont toujours collectés dans le fichier postgresql.log
et ne nécessitent pas d'activer pgaudit
.
Configurer la rotation des journaux
Si vous souhaitez mieux contrôler la rotation des journaux, configurez une taille de fichier maximale, une durée entre les rotations des journaux ou les deux. La durée entre les rotations de journaux est également appelée "âge du journal". Si vous utilisez les deux paramètres, chaque journal est remplacé lorsqu'il atteint l'un des seuils.
Pour configurer la rotation des journaux, définissez l'un ou les deux paramètres suivants dans la section parameters
du fichier manifeste DBCluster
:
log_rotation_size
: "SIZE_IN_KB"log_rotation_age
: "AGE_IN_MINUTES"
Pour désactiver l'un des paramètres de rotation des journaux, définissez-le sur zéro ("0"
). Pour conserver le paramètre par défaut qui effectue la rotation des journaux lorsque leur taille de fichier atteint 200 Mo, ne définissez aucun paramètre.
Exemple de taille et de durée maximales de rotation des journaux
L'exemple suivant définit la rotation des journaux lorsque leur taille de fichier atteint 400 Mo ou lorsque l'intervalle entre les rotations des journaux atteint un jour, selon la première éventualité:
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
Exemple de taille maximale de journal pour la rotation des journaux
L'exemple suivant définit la rotation des journaux lorsque leur taille de fichier atteint 400 Mo:
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
Exemple de durée de rotation des journaux
L'exemple suivant définit la rotation des journaux toutes les 24 heures:
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
Étape suivante
- Gérer et surveiller AlloyDB Omni
- Générer et diagnostiquer des fichiers de vidage AlloyDB Omni
- En savoir plus sur la gestion automatique de la mémoire