RDS for PostgreSQL에서의 로깅을 위한 파라미터
다양한 파라미터를 수정하여 RDS for PostgreSQL DB 인스턴스의 로깅 동작을 사용자 지정할 수 있습니다. 다음 표에서는 로그 저장 기간, 로그 교체 시기, 로그를 CSV(쉼표로 구분된 값) 형식으로 출력할지 여부 등 다양한 파라미터를 확인할 수 있습니다. 다른 설정에서 STDERR로 전송된 텍스트 출력도 찾을 수 있습니다. 수정 가능한 파라미터의 설정을 변경하려면 에 대한 사용자 지정 DB 파라미터 그룹을 사용하세요. RDS for PostgreSQL 인스턴스 자세한 내용은 Amazon RDS DB 인스턴스용 DB 파라미터 그룹. 섹션을 참조하세요. 테이블에 나와 있는 대로, log_line_prefix
는 변경할 수 없습니다.
파라미터 | 기본값 | 설명 |
---|---|---|
log_destination | stderr | 로그에 대한 출력 형식을 설정합니다. 기본값은 |
log_filename |
postgresql.log.%Y-%m-%d-%H |
로그 파일 이름의 패턴을 지정합니다. 이 파라미터는 기본값 외에도 |
log_line_prefix | %t:%r:%u@%d:[%p]: | 시간(%t), 원격 호스트(%r), 사용자(%u), 데이터베이스(%d) 및 프로세스 ID(%p)를 기록하기 위해 |
log_rotation_age | 60 | 몇 분 후에 로그 파일이 자동으로 교체됩니다. 이 값을 1분에서 1,440분 사이의 값으로 변경할 수 있습니다. 자세한 내용은 로그 파일 회전 설정 단원을 참조하십시오. |
log_rotation_size | – | 로그 교체가 자동으로 이루어질 때의 크기(kB)입니다. 기본적으로 로그는 |
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_age
log_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_fdw
를 csvlog
와 함께 사용하는 방법을 알아보려면 log_fdw 확장으로 SQL을 사용하여 DB 로그에 액세스 섹션을 참조하세요.
이 파라미터에 csvlog
를 지정하는 경우 stderr
및 csvlog
파일이 모두 생성된다는 점에 유의하세요. rds.log_retention_period
및 로그 스토리지와 회전율에 영향을 주는 다른 설정을 고려하여 로그에서 사용하는 스토리지를 모니터링해야 합니다. stderr
및 csvlog
를 사용하는 경우 로그에서 소비하는 스토리지가 두 배 이상 늘어납니다.
log_destination
에 csvlog
를 추가하고 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(사용 가능한 경우)