외부 데이터베이스에 대한 모니터링 및 로깅 설정

외부 PostgreSQL 데이터베이스 시스템은 성능 모니터링 및 문제 해결을 위한 다양한 로깅 옵션을 제공하지만 기본적으로 활성화되어 있지 않습니다. 이 섹션에서는 자가 관리 PostgreSQL에 대한 권장 사항과 PostgreSQL 관리 서비스의 주요 제공업체에 대한 권장 사항을 제공합니다.

권장 PostgreSQL 로깅 설정

다음 로깅 설정을 활성화해야 합니다:

  • log_statement=ddl: 데이터베이스 모델 정의(DDL)의 변경 사항을 기록합니다. CREATE, ALTER, DROP과 같은 객체의 변경 사항을 기록합니다. 이는 성능 문제를 유발할 수 있는 최근 모델 변경 사항을 추적하고 보안 위반 및 인적 오류를 식별하는 데 도움이 됩니다.
  • log_lock_waits=on: 오랜 기간 동안 잠금을 보유하고 있는 프로세스를 기록합니다. 이는 낮은 쿼리 성능의 일반적인 원인입니다.
  • log_temp_files=0: 비정상적으로 긴급한 임시 파일 사용을 기록하여 낮은 쿼리 성능을 나타낼 수 있는 경우를 확인합니다.
  • log_autovacuum_min_duration=0: 모든 자동 진공 실행을 기록합니다. 자동 진공은 전체 PostgreSQL 엔진 성능의 핵심 구성 요소입니다. 테이블에서 죽은 튜플이 제거되지 않는 경우 문제 해결 및 조정에 필수적입니다.
  • log_min_duration_statement=1000: 느린 쿼리(1초보다 느른 쿼리)를 기록합니다.

위의 매개변수 설정에 대한 전체 설명은 PostgreSQL 오류 보고 및 로깅 문서에서 확인할 수 있습니다.

Amazon RDS

Amazon 관계형 데이터베이스 서비스(RDS)는 많은 모니터링 메트릭로깅 인터페이스를 제공합니다. 여기 몇 가지를 설정해야 합니다:

  • 모든 위의 권장 PostgreSQL 로깅 설정RDS 매개변수 그룹을 통해 변경합니다.
    • 권장 로깅 매개변수는 RDS에서 동적으로, 이러한 설정을 변경한 후에 재부팅이 필요하지 않습니다.
    • PostgreSQL 로그는 RDS 콘솔을 통해 확인할 수 있습니다.
  • RDS 성능 인사이트를 활성화하여 PostgreSQL 데이터베이스 엔진의 많은 중요한 성능 메트릭을 통해 데이터베이스 부하를 시각화할 수 있습니다.
  • RDS 향상된 모니터링을 활성화하여 운영 체제 메트릭을 모니터링합니다. 이러한 메트릭은 데이터베이스 성능에 영향을 미치는 기본 하드웨어 및 운영 체제의 병목 현상을 나타낼 수 있습니다.
    • 프로덕션 환경에서는 모니터링 간격을 10초(또는 그 이하)로 설정하여 많은 성능 문제의 원인이 될 수 있는 리소스 사용의 미세한 급증을 캡처합니다. 콘솔에서는 Granularity=10으로 설정하거나 CLI에서는 monitoring-interval=10으로 설정합니다.