Configure a rotação de registos do AlloyDB Omni

Selecione uma versão da documentação:

Este documento descreve como configurar a rotação dos registos de diagnóstico do AlloyDB Omni quando usa o operador do AlloyDB Omni Kubernetes.

Os seguintes ficheiros de registo estão localizados no diretório /obs/diagnostic/:

  • postgresql.audit: este ficheiro de registo recolhe registos de auditoria de acesso a objetos e sessões. Para recolher registos de auditoria, tem de ativar os registos de auditoria.

  • postgresql.log: este ficheiro de registo recolhe registos do servidor PostgreSQL. Estes registos são sempre recolhidos e não precisam de ser ativados.

Quando um ficheiro de registo é rodado, ocorre o seguinte:

  1. O ficheiro de registo é copiado para o diretório /obs/diagnostic/archive/. Se existir um ficheiro de registo com o mesmo nome nesse diretório, é substituído.

  2. Os conteúdos do ficheiro de registo rotativo original são eliminados para que o ficheiro esteja vazio.

  3. As informações de registo começam imediatamente a ser escritas no ficheiro de registo rotativo vazio. As informações de registo são escritas no ficheiro de registo até o ficheiro atingir um limite de tamanho ou de antiguidade, altura em que é novamente rodado. Os registos são rodados para que não se tornem demasiado grandes.

Por predefinição, a definição de rotação é para cada ficheiro de registo rodar quando o respetivo tamanho atingir 200 MB. A rotação predefinida não inclui uma definição de idade.

Cada ficheiro arquivado é comprimido individualmente através do formato de ficheiro Gzip (.gz).

Os ficheiros arquivados são retidos durante 7 dias. Os ficheiros arquivados com mais de 7 dias são removidos automaticamente, exceto o ficheiro que foi arquivado durante a rotação anterior. Por exemplo, se log_rotation_age tiver mais de 7 dias, o ficheiro arquivado atinge o limite de 7 dias antes da rotação do ficheiro atual. Neste caso, este ficheiro arquivado não é removido até que a rotação seguinte gere um novo ficheiro arquivado.

Cada nome de ficheiro de registo arquivado segue este formato: postgresql-%Y-%m-%d_%H%M%S.log.gz. A indicação de tempo é determinada no momento da rotação do registo e é expressa no Tempo Universal Coordenado (UTC). Por exemplo, se o registo for rodado às 13:01:02 de 20/12/2024 UTC, o nome do ficheiro arquivado é postgresql-2024-12-20_130102.log.gz.

Para guardar um ficheiro arquivado permanentemente, pode copiá-lo do contentor da base de dados para o diretório local através do kubectl cp.

Ative os registos de auditoria

Para que os registos de acesso de sessão e de objetos sejam recolhidos no ficheiro postgresql.audit, tem de ativar o parâmetro da base de dados pgaudit. Para ativar a opção pgaudit, adicione a seguinte linha à secção parameters do ficheiro v1_dbcluster_parameters.yaml em Secret:

alloydb.enable_pgaudit: "on"

Segue-se um exemplo de como isto pode ser apresentado:

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"

Para mais informações, consulte pgaudit em Extensões de base de dados suportadas, e Extensão de auditoria do PostgreSQL. Os registos do servidor PostgreSQL são sempre recolhidos no ficheiro postgresql.log e não requerem a ativação de pgaudit.

Configure a rotação de registos

Se quiser ter mais controlo sobre a rotação dos registos, configure um tamanho máximo do ficheiro, uma duração entre rotações de registos ou ambos. A duração entre as rotações de registos também é denominada idade do registo. Se usar ambas as definições, cada registo é rodado quando atinge um dos limites.

Para configurar a rotação de registos, defina um ou ambos os seguintes parâmetros na secção parameters do manifesto DBCluster:

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

Para desativar uma das definições de rotação de registos, defina-a como zero ("0"). Para manter a predefinição que roda os registos quando o tamanho do ficheiro atinge 200 MB, não defina nenhum parâmetro.

Exemplo de duração e tamanho máximo do registo de rotação de registos

Os seguintes conjuntos de amostras definem a rotação dos registos quando o tamanho do ficheiro atinge 400 MB ou quando o tempo entre as rotações dos registos atinge um dia, consoante o que ocorrer primeiro:

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

Exemplo de tamanho máximo do registo de rotação de registos

Os seguintes conjuntos de amostras registam a rotação quando o tamanho do ficheiro atinge os 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

Exemplo de duração da rotação de registos

O exemplo seguinte define a rotação dos registos uma vez a 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

O que se segue?