Aurora PostgreSQL에서의 로깅을 위한 파라미터 - Amazon Relational Database Service

Aurora PostgreSQL에서의 로깅을 위한 파라미터

다양한 파라미터를 수정하여 RDS for PostgreSQL DB 인스턴스의 로깅 동작을 사용자 지정할 수 있습니다. 다음 표에서는 로그 저장 기간, 로그 교체 시기, 로그를 CSV(쉼표로 구분된 값) 형식으로 출력할지 여부 등 다양한 파라미터를 확인할 수 있습니다. 다른 설정에서 STDERR로 전송된 텍스트 출력도 찾을 수 있습니다. 수정 가능한 파라미터의 설정을 변경하려면 에 대한 사용자 지정 DB 파라미터 그룹을 사용하세요. RDS for PostgreSQL 인스턴스 자세한 내용은 Amazon RDS DB 인스턴스용 DB 파라미터 그룹. 섹션을 참조하세요. 테이블에 나와 있는 대로, log_line_prefix는 변경할 수 없습니다.

파라미터 기본값 설명

log_destination

stderr

로그에 대한 출력 형식을 설정합니다. 기본값은 stderr이지만 설정에 csvlog를 추가하여 CSV(쉼표로 구분된 값)를 지정할 수도 있습니다. 자세한 내용은 로그 대상 설정(stderr, csvlog) 섹션을 참조하세요.

log_filename

postgresql.log.%Y-%m-%d-%H

로그 파일 이름의 패턴을 지정합니다. 이 파라미터는 기본값 외에도 postgresql.log.%Y-%m-%d 파일 이름 패턴을 지원합니다.

log_line_prefix

%t:%r:%u@%d:[%p]:

시간(%t), 원격 호스트(%r), 사용자(%u), 데이터베이스(%d) 및 프로세스 ID(%p)를 기록하기 위해 stderr에 기록되는 각 로그 줄의 접두사를 정의합니다. 이 파라미터는 수정할 수 없습니다.

log_rotation_age

60

몇 분 후에 로그 파일이 자동으로 교체됩니다. 이 값을 1분에서 1,440분 사이의 값으로 변경할 수 있습니다. 자세한 내용은 로그 파일 회전 설정 단원을 참조하십시오.

log_rotation_size

로그 교체가 자동으로 이루어질 때의 크기(kB)입니다. 기본적으로 로그는 log_rotation_age 파라미터에 따라 교체되므로 이 파라미터는 사용되지 않습니다. 자세한 내용은 로그 파일 회전 설정을 참조하십시오.

rds.log_retention_period

4320

지정된 시간(분)보다 오래된 PostgreSQL 로그가 삭제됩니다. 기본값인 4,320분으로 지정하면 3일이 지난 로그 파일이 삭제됩니다. 자세한 내용은 로그 보존 기간 설정 단원을 참조하십시오.

애플리케이션 문제를 식별하기 위해 로그에서 쿼리 실패, 로그인 실패, 교착 상태 및 치명적인 서버 오류를 찾아볼 수 있습니다. 예를 들어, 레거시 애플리케이션을 Oracle에서 Amazon RDS PostgreSQL로 변환했지만 일부 쿼리가 올바르게 변환되지 않았다고 가정합시다. 이러한 잘못된 형식의 쿼리는 오류 메시지를 생성하고, 로그에서 오류 메시지를 찾아 문제를 식별할 수 있습니다. 쿼리 로깅에 대한 자세한 내용은 RDS for PostgreSQL DB 인스턴스에 쿼리 로깅을 활성화합니다. 섹션을 참조하세요.

다음 주제에서 PostgreSQL 로깅의 기본 세부 정보를 제어하는 다양한 파라미터에 관한 정보를 찾을 수 있습니다.

로그 보존 기간 설정

rds.log_retention_period 파라미터는 RDS for PostgreSQL DB 인스턴스가 로그 파일을 보관하는 기간을 지정합니다. 기본 설정은 3일(4,320분)이지만 1일(1,440분)에서 7일(10,080분) 사이로 이 값을 설정할 수 있습니다. RDS for PostgreSQL DB 인스턴스에 일정 기간 동안 로그 파일을 보관할 수 있는 충분한 스토리지가 있는지 확인하세요.

로그를 정기적으로 Amazon CloudWatch Logs에 게시하여 로그가 에서 제거된 후에도 시스템 데이터를 보고 분석할 수 있도록 하는 것이 좋습니다. RDS for PostgreSQL DB 인스턴스 자세한 내용은 Amazon CloudWatch Logs에 PostgreSQL 로그 게시 단원을 참조하세요.

로그 파일 회전 설정

Amazon RDS는 기본적으로 매시간 새 로그 파일을 생성합니다. 타이밍은 log_rotation_age 파라미터로 제어됩니다. 이 파라미터의 기본값은 60(분)이지만 1분에서 24시간(1,440분) 사이로 설정할 수 있습니다. 교체 시간이 되면 새 로그 파일이 생성됩니다. 파일의 이름은 log_filename 파라미터로 지정된 패턴에 따라 결정됩니다.

로그 파일은 log_rotation_size 파라미터에 지정된 대로 크기에 따라 교체될 수도 있습니다. 이 파라미터는 로그가 지정된 크기(KB)에 도달하면 교체되도록 지정합니다. RDS for PostgreSQL DB 인스턴스의 경우 log_rotation_size가 설정되지 않습니다. 즉, 지정된 값이 없습니다. 그러나 이 파라미터는 0~2,097,151KB(킬로바이트) 사이로 설정할 수 있습니다.

로그 파일 이름은 log_filename 파라미터에 지정된 파일 이름 패턴을 기반으로 합니다. 이 파라미터에 사용할 수 있는 설정은 다음과 같습니다.

  • postgresql.log.%Y-%m-%d - 로그 파일 이름의 기본 형식입니다. 로그 파일 이름에 년, 월, 일이 포함됩니다.

  • postgresql.log.%Y-%m-%d-%H - 로그 파일 이름 형식에 시간이 포함됩니다.

자세한 내용은 PostgreSQL 설명서의 log_rotation_agelog_rotation_size 섹션을 참조하세요.

로그 대상 설정(stderr, csvlog)

기본적으로 Amazon RDS PostgreSQL은 표준 오류(stderr) 형식으로 로그를 생성합니다. 이 형식이 log_destination 파라미터에 대한 기본 설정입니다. 각 메시지에는 log_line_prefix 파라미터에 지정된 패턴을 사용하여 접두사가 붙습니다. 자세한 내용은 log_line_prefix 파라미터 이해하기 단원을 참조하십시오.

RDS for PostgreSQL도 로그를 csvlog 형식으로 생성할 수 있습니다. csvlog는 로그 데이터를 쉼표로 구분된 값(CSV) 데이터로 분석하는 데 유용합니다. 예를 들어 외부 테이블로 로그를 사용하기 위해 log_fdw 확장을 사용한다고 가정하겠습니다. stderr 로그 파일에 만들어진 외부 테이블에는 로그 이벤트 데이터가 있는 하나의 열이 포함되어 있습니다. log_destination 파라미터에 csvlog를 추가하면 외부 테이블의 여러 열에 대한 구분이 있는 CSV 형식의 로그 파일을 얻게 됩니다. 이제 로그를 더 쉽게 정렬하고 분석할 수 있습니다. log_fdwcsvlog와 함께 사용하는 방법을 알아보려면 log_fdw 확장으로 SQL을 사용하여 DB 로그에 액세스 섹션을 참조하세요.

이 파라미터에 csvlog를 지정하는 경우 stderrcsvlog 파일이 모두 생성된다는 점에 유의하세요. rds.log_retention_period 및 로그 스토리지와 회전율에 영향을 주는 다른 설정을 고려하여 로그에서 사용하는 스토리지를 모니터링해야 합니다. stderrcsvlog를 사용하는 경우 로그에서 소비하는 스토리지가 두 배 이상 늘어납니다.

log_destinationcsvlog를 추가하고 stderr로만 되돌리려면 파라미터를 재설정해야 합니다. 이렇게 하려면 Amazon RDS 콘솔을 연 다음 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 엽니다. log_destination 파라미터를 선택하고 파라미터 편집을 선택한 다음 재설정을 선택합니다.

로깅 구성에 대한 자세한 내용은 Amazon RDS 및 Aurora PostgreSQL 로그 작업: 1부를 참조하세요.

log_line_prefix 파라미터 이해하기

stderr 로그 형식은 다음과 같이 각 로그 메시지에 log_line_prefix 파라미터에 지정된 세부 정보를 접두사로 지정합니다.

%t:%r:%u@%d:[%p]:t

이 설정은 변경할 수 없습니다. stderr에 전송된 각 로그 항목에는 다음 정보가 포함됩니다.

  • %t - 로그 입력 시간

  • %r - 원격 호스트 주소

  • %u@%d - 사용자 이름 @ 데이터베이스 이름

  • [%p] - 프로세스 ID(사용 가능한 경우)