Configura la rotación de registros de AlloyDB Omni

Selecciona una versión de la documentación:

En este documento, se describe cómo configurar la rotación de los registros de diagnóstico de AlloyDB Omni cuando usas el operador de Kubernetes de AlloyDB Omni.

Los siguientes archivos de registro se encuentran en el directorio /obs/diagnostic/:

  • postgresql.audit: Este archivo de registro recopila registros de auditoría de acceso a objetos y sesiones. Para recopilar registros de auditoría, debes habilitarlos.

  • postgresql.log: Este archivo de registro recopila los registros del servidor de PostgreSQL. Estos registros siempre se recopilan y no es necesario habilitarlos.

Cuando se rota un archivo de registro, ocurre lo siguiente:

  1. El archivo de registro se copia en el directorio /obs/diagnostic/archive/. Si existe un archivo de registro con el mismo nombre en ese directorio, se reemplazará.

  2. Se borra el contenido del archivo de registro rotado original para que el archivo esté vacío.

  3. La información de registro comienza a escribirse de inmediato en el archivo de registro rotado vacío. La información de registro se escribe en el archivo de registro hasta que este alcanza un umbral de tamaño o antigüedad, momento en el que vuelve a rotar. Los registros rotan para que no se vuelvan demasiado grandes.

De forma predeterminada, el parámetro de configuración de rotación indica que cada archivo de registro debe rotar cuando su tamaño alcanza los 200 MB. La rotación predeterminada no incluye un parámetro de configuración de edad.

Los archivos archivados se conservan durante 7 días. Los archivos archivados con más de 7 días de antigüedad se quitan automáticamente, excepto el archivo que se archivó durante la última rotación. Por ejemplo, si log_rotation_age tiene más de 7 días, el archivo archivado alcanza el umbral de 7 días antes de la rotación del archivo actual. En este caso, el archivo no se quitará hasta que la próxima rotación genere un archivo nuevo.

Cada nombre de archivo de registro rotado sigue este formato: postgresql-%Y-%m-%d_%H%M%S.log. La marca de tiempo se determina en el momento de la rotación del registro y se expresa en hora universal coordinada (UTC). Por ejemplo, si el registro rota a las 13:01:02 del 20/12/2024 (UTC), el nombre del archivo archivado es postgresql-2024-12-20_130102.log.

Cada archivo archivado se comprime de forma individual con el formato de archivo Gzip.

Habilita registros de auditoría

Para que los registros de acceso a sesiones y objetos se recopilen en el archivo postgresql.audit, debes habilitar el parámetro de base de datos pgaudit. Para habilitar pgaudit, agrega la siguiente línea a la sección parameters del archivo v1_dbcluster_parameters.yaml en Secret:

alloydb.enable_pgaudit: "on"

A continuación, se muestra un ejemplo de cómo podría verse:

apiVersion: v1
kind: Secret
...
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
   name: DB_CLUSTER_NAME
spec:
  databaseVersion: "16.8.0"
  primarySpec:
    ...
    parameters:
      ...
      alloydb.enable_pgaudit: "on"

Para obtener más información, consulta pgaudit en Extensiones de bases de datos compatibles y Extensión de auditoría de PostgreSQL. Los registros del servidor de PostgreSQL siempre se recopilan en el archivo postgresql.log y no requieren que se habilite pgaudit.

Cómo ver la ruta de acceso del archivo de registro de auditoría

La función de SQL alloydb_audit_current_logfile se puede usar para ver la ruta de acceso del archivo de registro de auditoría. Si la auditoría está inhabilitada, el resultado es NULL.

SELECT alloydb_audit_current_logfile();

 alloydb_audit_current_logfile
----------------------------------------------------
 /var/log/pglogs/postgresql-2025-03-28_042024.audit

Configura la rotación del registro

Si quieres tener más control sobre cuándo rotan los registros, configura un tamaño máximo de archivo, una duración entre las rotaciones de registros o ambos. La duración entre las rotaciones de registros también se denomina antigüedad del registro. Si usas ambos parámetros de configuración, cada registro rotará cuando alcance uno de los umbrales.

Para configurar la rotación del registro, establece uno o ambos de los siguientes parámetros en la sección parameters del manifiesto de DBCluster:

  • log_rotation_size: "SIZE_IN_KB"
  • log_rotation_age: "AGE_IN_MINUTES"

Para inhabilitar uno de los parámetros de configuración de rotación del registro, establécelo en cero ("0"). Para conservar el parámetro de configuración predeterminado que rota los registros cuando el tamaño de su archivo alcanza los 200 MB, no establezcas ninguno de los parámetros.

Ejemplo de tamaño y duración máximos del registro de rotación de registros

En el siguiente ejemplo, se configuran los registros para que roten cuando el tamaño del archivo alcance los 400 MB o cuando el tiempo entre las rotaciones de registros alcance un día, lo que ocurra primero:

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

Ejemplo de tamaño máximo de registro de rotación de registros

En el siguiente ejemplo, se configuran los registros para que roten cuando el tamaño de su archivo alcance los 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

Ejemplo de duración de la rotación de registros

En el siguiente ejemplo, se configuran los registros para que roten una vez cada 24 horas:

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

¿Qué sigue?