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

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

권장 PostgreSQL 로깅 설정

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

  • log_statement=ddl: 데이터베이스 모델 정의(DDL) 변경(예: CREATE, ALTER 또는 DROP)을 로깅합니다. 이를 통해 성능 문제의 원인이 될 수 있는 최근 모델 변경을 추적하고 보안 침해 및 인적 오류를 식별할 수 있습니다.
  • log_lock_waits=on: 오랜 기간 동안 잠금을 보유한 프로세스를 로깅합니다. 이는 쿼리 성능 저하의 일반적인 원인입니다.
  • log_temp_files=0: 비정상적이고 이질적인 임시 파일의 사용량을 로깅합니다. 이는 쿼리 성능 저하를 나타낼 수 있는 중요한 지표입니다.
  • log_autovacuum_min_duration=0: 모든 autovacuum 실행을 로깅합니다. Autovacuum은 전체 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로 설정하십시오.