PostgreSQL · 2026-01-04

PostgreSQL 로그 분석과 pgbadger 활용 사례

pgbadger를 이용해 PostgreSQL 로그를 수집·분석하고 리포트를 생성해 성능 문제와 오류 패턴을 파악하는 실무 중심 분석법

작성일 : 2026-01-04 ㆍ 작성자 : 관리자
post
목차

개요

PostgreSQL 운영 환경에서 로그는 성능 문제와 오류의 출발점이다. pgbadger는 로그를 빠르게 파싱해 시각적 리포트를 만드는 도구다. 이 글은 pgbadger 사용법을 처음 접하는 사람도 따라할 수 있도록 설치부터 리포트 해석, 운영 자동화까지 사례 중심으로 정리한다.

pgbadger란?

주요 기능

  • 로그 파싱과 요약 리포트(HTML, JSON)
  • 슬로우 쿼리, 에러, 연결 패턴, 복제 지연 등 항목별 통계 제공
  • 대용량 로그에 대한 빠른 처리 성능

이 도구는 PostgreSQL의 표준 로그 형식을 전제로 하며, 로그 포맷이 일관되어야 정확한 결과를 얻는다.

준비사항

로그 설정 확인

postgresql.conf에서 로그 관련 설정을 확인한다. 특히 log_line_prefix와 로그 포맷이 pgbadger가 처리할 수 있는 형태인지 검토해야 한다.

log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a '
log_statement = 'none'
log_min_duration_statement = 1000

위 예시는 타임스탬프와 프로세스 ID, 사용자, DB, 애플리케이션 필드를 포함한다. pgbadger는 이러한 정보로 통계를 만든다.

설치 방법

# Debian/Ubuntu
apt-get update && apt-get install pgbadger -y

# 또는 Perl로 설치
cpan install PGBadger

패키지 매니저가 없거나 최신 버전이 필요하면 공식 저장소에서 설치한다.

기본 사용법

가장 간단한 명령은 로그 파일을 입력받아 HTML 리포트를 생성하는 것이다.

pgbadger /var/log/postgresql/postgresql-2025-01-01.log -o report.html

옵션 설명:

  • -o : 출력 파일명
  • -f : 로그 포맷 지정 (example: syslog, stderr)
  • -p : 사용자 지정 쿼리 패턴
  • -I : 인크리멘털 모드로 이전 처리 상태 유지

실무 활용 사례

1) 느린 쿼리 식별

로그에서 기준 시간 이상 실행된 쿼리를 추출해 상위 원인을 찾는다. pgbadger 리포트의 "Top 10 slowest queries"를 우선 확인한다.

2) 연결 이상 패턴 확인

빈번한 접속 및 끊김, 인증 실패 등은 애플리케이션 레이어 문제를 시사한다. 리포트의 connections 섹션에서 시간대별 추이를 확인한다.

3) 오류 및 예외 집계

특정 에러가 반복된다면 소스 코드나 쿼리 패턴을 점검한다. pgbadger는 error와 FATAL 로그를 종류별로 정리한다.

리포트 자동화

일일 리포트를 자동 생성해 운영 대시보드에 연동하면 문제 탐지 속도를 높일 수 있다. 간단한 cron 예시:

# 매일 새벽 2시에 전일 로그로 리포트 생성
0 2 * * * /usr/bin/pgbadger /var/log/postgresql/postgresql-$(date -d 'yesterday' +\%Y-\%m-\%d).log -o /var/www/html/pgbadger/report-$(date -d 'yesterday' +\%Y-\%m-\%d).html

로그 로테이션과 연계해 파일 관리 정책을 세운다. 오래된 로그는 압축 보관한다.

리포트 해석 포인트

  • 총 처리 쿼리 수 대비 느린 쿼리 비율
  • 쿼리별 평균 실행시간과 표준편차
  • 특定 시간대의 오류 급증 여부
  • 복제지연 및 체크포인트 패턴

이 항목들을 꾸준히 모니터링하면 성능 저하의 원인을 빠르게 좁힐 수 있다.

한계와 보완책

pgbadger는 로그에 의존하므로 로그 설정이 바르지 않으면 오탐이 발생한다. 예를 들어 쿼리 파라미터가 생략되면 실제 원인 식별이 어려워진다. 또한 매우 큰 로그 파일은 메모리·CPU 부담을 줄 수 있으므로 분할 처리나 샘플링 전략 병행이 필요하다. 보완책으로는 APM, 통계정보, 쿼리 플랜 분석을 병행해 근본 원인을 찾는 방법이 있다.

결론

pgbadger는 PostgreSQL 운영에서 로그 기반 분석을 효율화하는 강력한 도구다. 기본 설정을 맞추고 정기적인 리포트 생성 체계를 가지면 느린 쿼리와 오류 패턴을 신속하게 파악할 수 있다. 다만 로그 품질 관리와 다른 성능 도구와의 연계를 통해 분석 정확도를 높이는 것이 중요하다.

pgbadger 사용법 postgres 로그 분석 pgbadger pgbadger 리포트 생성 PostgreSQL 로그분석 로그 분석 도구 성능 튜닝 슬로우 쿼리 분석 로그 자동화