다음 로그 파일은 /obs/diagnostic/ 디렉터리에 있습니다.
- postgresql.audit: 이 로그 파일은 세션 및 객체 액세스 감사 로그를 수집합니다. 감사 로그를 수집하려면 감사 로그를 사용 설정해야 합니다.
- postgresql.log: 이 로그 파일은 PostgreSQL 서버 로그를 수집합니다. 이러한 로그는 항상 수집되며 사용 설정되지 않아도 됩니다.
로그 파일이 순환되면 다음과 같은 결과가 발생합니다.
- 로그 파일이 - /obs/diagnostic/archive/디렉터리에 복사됩니다. 이름이 같은 로그 파일이 해당 디렉터리에 있으면 덮어씁니다.
- 파일이 비어 있도록 원래 순환된 로그 파일의 콘텐츠가 삭제됩니다. 
- 로그 정보가 즉시 비어 있는 순환 로그 파일에 기록되기 시작합니다. 로그 정보는 파일이 크기 또는 기간 기준점에 도달할 때까지 로그 파일에 기록되며 이 시점에서 다시 순환됩니다. 로그가 너무 커지지 않도록 순환됩니다. 
기본적으로 순환은 크기가 200MB에 도달하면 각 로그 파일이 순환되도록 설정되어 있습니다. 기본 순환에는 기간 설정이 포함되지 않습니다.
보관처리된 각 파일은 Gzip(.gz) 파일 형식을 사용하여 개별적으로 압축됩니다.
보관처리된 파일은 7일 동안 보관됩니다. 보관처리된 파일 중 7일이 지난 파일은 직전 순환에서 보관처리된 파일을 제외하고 자동으로 삭제됩니다. 예를 들어 log_rotation_age가 7일보다 오래된 경우, 현재 파일이 순환되기 전에 보관처리된 파일이 7일 기준점에 도달합니다. 이 경우 다음 순환에서 보관처리된 새 파일이 생성될 때까지 이 보관처리된 파일이 삭제되지 않습니다.
각 보관처리된 로그 파일의 이름은 다음 형식을 따릅니다. postgresql-%Y-%m-%d_%H%M%S.log.gz.
타임스탬프는 로그 순환 시에 결정되며 협정 세계시(UTC)로 표시됩니다. 예를 들어 2024년 12월 20일 13시 1분 2초(UTC)에 로그가 순환되면 보관처리된 파일 이름은 postgresql-2024-12-20_130102.log.gz입니다.
보관처리된 파일을 영구적으로 저장하려면 kubectl cp를 사용하여 데이터베이스 컨테이너에서 로컬 디렉터리로 복사하면 됩니다.
감사 로그 사용 설정
세션 및 객체 액세스 로그가 postgresql.audit 파일에 수집되려면 pgaudit 데이터베이스 파라미터를 사용 설정해야 합니다. pgaudit을 사용 설정하려면 다음 줄을 Secret 아래의 v1_dbcluster_parameters.yaml 파일 parameters 섹션에 추가합니다.
alloydb.enable_pgaudit: "on"
이에 대한 예시는 다음과 같습니다.
apiVersion: v1
kind: Secret
...
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
   name: DB_CLUSTER_NAME
spec:
  databaseVersion: "15.12.0"
  primarySpec:
    ...
    parameters:
      ...
      alloydb.enable_pgaudit: "on"
자세한 내용은 지원되는 데이터베이스 확장 프로그램 및 PostgreSQL 감사 확장 프로그램의 pgaudit을 참조하세요.
PostgreSQL 서버 로그는 항상 postgresql.log 파일에 수집되며 pgaudit를 사용 설정하지 않아도 됩니다.
감사 로그 파일 경로 보기
SQL 함수 alloydb_audit_current_logfile을 사용하여 감사 로그 파일 경로를 볼 수 있습니다. 감사가 사용 중지되면 결과는 NULL입니다.
SELECT alloydb_audit_current_logfile();
 alloydb_audit_current_logfile
----------------------------------------------------
 /var/log/pglogs/postgresql-2025-03-28_042024.audit
로그 순환 구성
로그 순환 시점을 더 세밀하게 제어하려면 최대 파일 크기, 로그 순환 간 기간 또는 둘 다를 구성합니다. 로그 순환 간 기간을 로그 수명이라고도 합니다. 두 설정 모두 사용하면 각 로그는 기준점 중 하나에 도달하면 순환됩니다.
로그 순환을 구성하려면 DBCluster 매니페스트의 parameters 섹션에서 다음 파라미터 중 하나 또는 둘 다 설정합니다.
- log_rotation_size: 'SIZE_IN_KB'
- log_rotation_age: 'AGE_IN_MINUTES'
로그 순환 설정 중 하나를 사용 중지하려면 0("0")으로 설정합니다. 파일 크기가 200MB에 도달하면 로그를 순환하는 기본 설정을 유지하려면 파라미터를 설정하지 마세요.
로그 순환 최대 로그 크기 및 기간 예시
다음 샘플은 파일 크기가 400MB에 도달하거나 로그 순환 간 시간이 1일에 도달하는 것 중 하나가 먼저 발생하면 로그가 순환되도록 설정합니다.
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
로그 순환 최대 로그 크기 예시
다음 샘플은 파일 크기가 400MB에 도달하면 로그가 순환되도록 설정합니다.
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
로그 순환 기간 예시
다음 샘플은 24시간마다 한 번씩 로그가 순환되도록 설정합니다.
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