PostgreSQL 플러그인
PostgreSQL 플러그인은 PostgreSQL 서버를 Konduo 리소스로 등록하고 접속, 복제, VACUUM, 잠금, 트랜잭션, 쿼리 활동을 운영 화면에 연결합니다.
특징
- 읽기 전용 SQL 쿼리로 서버 상태와 운영 스냅샷을 수집합니다.
- Prometheus 매핑팩과 Konduo 관리형 PostgreSQL 메트릭 수집을 지원합니다.
- 대시보드는 가용성 근거, 접속 압박, 트랜잭션 지속 시간, 잠금 활동, 복제 지연, 캐시/쓰기 동작을 중심으로 구성됩니다.
- 진단 화면은 접속, 권한, 메트릭 수집 범위, 복제, 테이블 팽창과 VACUUM 위험을 분리해서 보여줍니다.
등록 전 확인
- PostgreSQL 호스트, 포트, 데이터베이스, 사용자 이름, 비밀번호, TLS 설정을 준비합니다.
- 읽기 전용 진단 쿼리를 실행할 수 있는 최소 권한 계정을 사용합니다.
- 관리형 수집을 사용하려면 수집 쿼리가 운영 DB에 과도한 부하를 만들지 않도록 제한 시간을 조정합니다.
- 관리형 수집의 쓰기 대상으로 Prometheus를 사용할 경우 Prometheus를
--web.enable-remote-write-receiver옵션으로 실행해야 합니다.
운영 팁
- 접속 압박과 최대 접속 수 설정을 같이 확인합니다.
- 복제 지연은 주 서버와 복제 서버 역할, WAL 수신기 상태, 적용 지연을 함께 봅니다.
- 장기 트랜잭션, 잠금 대기, VACUUM 지연은 단일 지표보다 진단 스냅샷과 메트릭 추세를 함께 보는 것이 좋습니다.
- 트랜잭션 유휴 경보는
pg_stat_activity의 백엔드 세션 문제로 해석합니다. 관리형 수집에서는 PID와 트랜잭션 시작 시각으로 동일 트랜잭션의 지속 여부를 판정하므로, 다른 트랜잭션으로 교체되면 경보 대기 시간도 새로 시작합니다. PID, 사용자, DB, 클라이언트, 마지막 쿼리, 트랜잭션 지속 시간을 함께 확인해야 합니다.
운영 화면
- 활동 화면은 세션 상태, 장기 실행 쿼리, 트랜잭션 지속 시간, 대기 이벤트를 운영자가 조치 가능한 단위로 보여줍니다.
- 트랜잭션 유휴 세션 화면은
idle in transaction상태만 모아 PID, 사용자, DB, 애플리케이션, 클라이언트, 트랜잭션 시작 시각, 상태 변경 시각, 마지막 쿼리를 보여줍니다. - 잠금 화면은 차단/피차단 관계와 잠금 모드를 드러내어 쿼리 취소 또는 세션 종료 판단을 돕습니다.
- 복제 화면은 주 서버와 대기 서버 역할, 재생/적용 지연, 수신기 상태, 아카이버 근거를 함께 보여줍니다.
- 저장소/VACUUM 화면은 데이터베이스 크기, 죽은 튜플, 자동 VACUUM, VACUUM/ANALYZE 필요성을 진단 근거와 연결합니다.
- 장애 조치 계획 근거는 현재 역할과 복제 상태를 확인하는 보조 정보이며 자동 장애 조치 오케스트레이션은 CE 범위가 아닙니다.
트랜잭션 유휴 대응
- PostgreSQL의
idle in transaction은 트랜잭션이 열린 상태로 백엔드 세션이 유휴 상태에 머무는 상황입니다. 실행 중인 쿼리가 없어 보여도 잠금, VACUUM 가시성, 접속 풀 고갈에 영향을 줄 수 있습니다. - Konduo가 사용하는 자체 PostgreSQL 연결에는 기본적으로
idle_in_transaction_session_timeout을 설정해 Konduo 내부 버그가 무기한 유휴 트랜잭션을 남길 가능성을 줄입니다. - 관리 수집 모드의
Long Transaction경보는 현재 데이터베이스의 client backend만 대상으로 PID와 트랜잭션 시작 시각을 함께 추적합니다. PostgreSQL 백그라운드 작업과idle in transaction세션은 제외되며, 다른 트랜잭션이 이전 경보의 대기 시간을 이어받지 않습니다. - 대상 PostgreSQL 리소스에서 경보가 발생하면 트랜잭션 유휴 세션 화면에서 PID와 소유 맥락을 먼저 확인합니다.
- 실행 중인 쿼리가 있으면 우선 쿼리 취소를 검토합니다. 순수
idle in transaction상태는 취소할 실행 쿼리가 없으므로 애플리케이션 담당자 확인 또는 영향도 검토 후 백엔드 세션 종료가 현실적인 조치가 될 수 있습니다. - 종료 전에는 사용자, 데이터베이스, 애플리케이션 이름, 클라이언트 주소, 마지막 쿼리, 트랜잭션 지속 시간을 근거로 남기고 감사 로그와 확인 문구 경계를 유지합니다.
진단과 알림 관점
- 진단은 접속/권한, 접속 압박, 잠금 경합, 장기 트랜잭션, VACUUM/테이블 팽창, 복제, WAL/체크포인트 위험을 나눠 표시합니다.
- 알림 규칙은 수집 상태, 접속 사용률, 장기 트랜잭션, 잠금 경합, 캐시/임시 파일 압박, 체크포인트/WAL 압박, 복제 지연, 아카이버 상태를 다룹니다.
- 관리형 수집은 읽기 전용 SQL 스냅샷을
postgres_exporter계열 샘플로 변환하고 리소스 식별 라벨을 붙여 격리합니다. - 과거 근거가 부족하면 PostgreSQL 상태를 정상으로 추정하지 않고 메트릭 소스 또는 매핑팩 상태를 확인합니다.
관리 경계
- 임의 SQL 콘솔은 제공하지 않습니다.
- 쿼리 취소, 백엔드 세션 종료, ANALYZE, VACUUM ANALYZE는 확인 문구, 사유, 안전 모드 해제가 필요한 관리 작업입니다.
- 트랜잭션 유휴 세션 종료는 사용자 트랜잭션을 중단할 수 있으므로 단순 경보 해소가 아니라 업무 영향도 검토 후 수행합니다.
- 스키마/테이블 변경, 사용자/역할 관리, 백업/복원, 복제 토폴로지 변경은 CE 운영 경계 밖입니다.
- 읽기 전용 계정으로도 일부 카탈로그 뷰 권한이 부족할 수 있으므로 진단 결과의 부분 근거를 권한 문제와 구분해 봅니다.
대표 시나리오
- 접속 포화가 발생하면 활성/유휴 세션, 최대 접속 수, 풀러 설정, 장기 트랜잭션을 함께 확인합니다.
- 트랜잭션 유휴 세션 경보가 발생하면 전용 화면에서 PID와 마지막 쿼리를 확인하고, 풀러 또는 애플리케이션 트랜잭션 경계를 점검합니다.
- 잠금 대기가 길어지면 차단 세션, 쿼리 지속 시간, 대기 이벤트, 업무 영향도를 확인하고 취소와 종료 중 더 낮은 위험 조치를 선택합니다.
- VACUUM 지연이 의심되면 죽은 튜플, 자동 VACUUM 활동, 트랜잭션 지속 시간, 테이블 크기 증가를 함께 봅니다.
- 복제 서버 지연은 WAL 생성량, 수신기 상태, 재생 지연, 네트워크/스토리지 지연을 묶어 판단합니다.
PostgreSQL Enterprise 확장
PostgreSQL Enterprise 확장은 PostgreSQL 리소스에 MCP 설명자, 고급 진단, 로그 근거 매핑, 메트릭 매핑, 이상 징후 규칙을 추가합니다. 세션, 잠금, 접속, 복제, 저장소, VACUUM 상태를 운영 근거로 정리합니다.
특징
- MCP에서 데이터베이스 정보, 모니터링 개요, 연결성 점검, 진단, 토폴로지, 메트릭 매핑을 제공합니다.
- 세션, 잠금, 접속, 설정, 복제, 저장소/VACUUM 근거를 진단에 포함합니다.
- 로그 근거 매핑으로 PostgreSQL 진단을 Enterprise 로그 소스와 연결합니다.
- 이상 징후 규칙은 선언형 메트릭 방식으로 PostgreSQL 논리 메트릭을 평가합니다.
- Community 기반 트랜잭션 유휴 세션 조회와 PID 기반 조치 경로를 Enterprise 로그 근거, MCP 조회, 이상 징후 분석과 연결합니다.
등록 전 확인
- Community PostgreSQL 연결과 읽기 권한이 정상이어야 합니다.
- Prometheus postgres 익스포터 매핑팩과 OpenSearch 로그 소스 연결을 준비합니다.
- 복제와 장애 조치 계획 맥락을 보려면 토폴로지 조회 권한을 확인합니다.
운영 팁
- 잠금 대기, 접속 포화, 복제 지연은 애플리케이션 배포와 VACUUM 상태를 함께 봅니다.
- 트랜잭션 유휴 세션 경보는 별도 트랜잭션 목록이 아니라
pg_stat_activity백엔드 세션 근거로 해석합니다. 관리형 수집에서는 PID와 트랜잭션 시작 시각으로 동일 트랜잭션의 지속 여부를 판정하므로, 다른 트랜잭션으로 교체되면 경보 대기 시간도 새로 시작합니다. - 관리 수집 모드의
Long Transaction경보는 현재 데이터베이스의 client backend만 대상으로 PID와 트랜잭션 시작 시각을 함께 추적합니다. PostgreSQL 백그라운드 작업과idle in transaction세션은 제외되며, 다른 트랜잭션이 이전 경보의 대기 시간을 이어받지 않습니다. - 순수
idle in transaction상태는 취소할 실행 쿼리가 없을 수 있으므로 PID, 사용자, DB, 클라이언트, 마지막 쿼리, 트랜잭션 지속 시간과 애플리케이션 로그를 확인한 뒤 종료 여부를 판단합니다. - 장애 조치 설명자는 계획과 인벤토리 맥락을 제공하며, 실제 상태 변경은 별도 권한과 감사 경계를 따릅니다.
운영 시나리오
- API 지연이나 트랜잭션 적체가 발생하면 세션, 잠금, 접속 풀, VACUUM, 복제 지연을 한 흐름으로 확인합니다.
- 트랜잭션 유휴 경보가 발생하면 전용 세션 목록에서 PID와 마지막 쿼리를 확인하고, 같은 시간대 OpenSearch 로그 근거로 애플리케이션 트랜잭션 경계를 추적합니다.
- 장애 분석 시 PostgreSQL 진단 결과를 OpenSearch 로그 근거와 연결해 같은 시간대의 애플리케이션/데이터베이스 오류를 비교합니다.
- 장애 조치 계획 맥락은 토폴로지와 인벤토리 확인용으로 사용하고, 실제 전환 절차는 승인된 운영 절차를 따릅니다.
경계
- EE 확장 계층은 고급 진단, 로그 근거 매핑, 이상 징후 규칙 메타데이터를 제공하고, 파괴적 유지보수를 자동 실행하지 않습니다.
- PostgreSQL 메트릭 매핑이 없으면 저장소/VACUUM/복제 관련 이상 징후는 사용 불가 또는 부분 근거로 남겨야 합니다.
- 트랜잭션 유휴 세션 종료는 사용자 트랜잭션을 중단할 수 있으므로 Enterprise 상관관계 분석 결과만으로 자동 실행하지 않습니다.