[postgre Log 세팅] postgresql.conf 세팅 기록

박성현·2026년 2월 6일

개발중 학습

목록 보기
39/43

[PostgreSQL] 쿼리 로그 활성화 가이드 (Linux)

PostgreSQL을 운영하다 보면 데이터 변경을 확인해야 할 때가 있습니다. 설정 파일 수정부터 실제 반영까지의 전체 과정을 정리합니다.

1. 설정 파일(postgresql.conf) 찾기

가장 먼저 해야 할 일은 DB가 실제로 읽고 있는 설정 파일의 위치를 찾는 것입니다. 엉뚱한 파일을 수정하면 아무리 재시작해도 반영되지 않습니다.

  • DB 접속 툴(DBeaver 등)에서 실행:
SHOW config_file;

결과 예시: `/var/lib/pgsql/14/data/postgresql.conf`


2. 로그 관련 설정 수정

확인한 경로의 파일을 sudo 권한으로 열고 아래 항목들을 수정합니다.

sudo vi /var/lib/pgsql/14/data/postgresql.conf
#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------

부분을 찾아준 후 값을 세팅합니다.

📋 주요 설정 값

항목설정값설명
logging_collectoron로그 수집기 활성화 (Restart 필수)
log_directory'pg_log'로그 저장 폴더명 (data 경로 내에 생성됨)
log_filename'postgresql-%Y-%m-%d_%H%M%S.log'로그 파일 이름 규칙
log_statement'mod'INSERT, UPDATE, DELETE 등 데이터 변경 쿼리 기록
log_line_prefix'%m [%p] %u@%d %h '로그 머리말(시간, PID, 유저, DB, 접속IP)
log_rotation_age1d하루마다 새 로그 파일 생성

3. 서비스 재시작 (가장 중요한 단계)

logging_collector 설정은 DB 엔진이 부팅될 때만 읽히므로 반드시 서비스 재시작이 필요합니다. 이때 서비스 명칭을 정확히 확인해야 합니다.

  • 서비스 명칭 확인:
systemctl list-units --type=service | grep pgsql

결과: pgsql14.service 확인

  • DB 재시작:
sudo systemctl restart pgsql14

4. 설정 반영 확인 (검증)

재시작 후 DB에서 설정이 정상적으로 on이 되었는지 확인합니다.

SHOW logging_collector; -- 'on'이 나와야 함
SHOW log_statement;     -- 'mod'가 나와야 함

5. 로그 파일 경로 및 내용 확인

이제 PostgreSQL이 자동으로 pg_log 디렉터리를 생성하고 로그를 쌓기 시작합니다.

  • 로그 디렉터리 위치 확인:
SHOW data_directory;
  • 터미널에서 로그 확인 (sudo 필수):
# 경로가 /var/lib/pgsql/14/data 일 경우
cd /var/lib/pgsql/14/data/pg_log
sudo ls -lh  # 생성된 로그 파일 목록 확인
sudo tail -f postgresql-xxxx.log  # 실시간 로그 모니터링

⚠️ 주의사항 및 꿀팁

  1. 권한 문제: pg_log 폴더는 postgres 계정 소유입니다. 일반 계정으로 접근하려면 반드시 앞에 sudo를 붙이세요.
  2. 용량 관리: log_statement = 'all'로 설정하면 모든 조회가 기록되어 디스크가 금방 찰 수 있습니다. 운영 환경에서는 'mod'를 권장합니다.
  3. 주석 제거: 설정 파일 수정 시 줄 맨 앞의 #를 반드시 지워야 설정이 적용됩니다.

profile
개발기록장

0개의 댓글