설정하기
1. 지원 버전
- PostgreSQL 9.6 이상 버전을 지원합니다.
Cloud 환경 PostgreSQL 지원 현황
| Cloud 환경 | PostgreSQL 지원 여부 |
|---|---|
| AWS | ✅ 지원 |
| Azure | ✅ 지원 |
| OCI | ❌ 미지원 |
| NCP | ✅ 지원 |
| GCP | ✅ 지원 |
| SCP | ✅ 지원 |
2. 필수 권한
기본 모니터링 권한
모니터링 계정(예: exemone)에 다음 권한을 부여해야 합니다:
-- PostgreSQL 10 버전 이상 (superuser 권한 부여가 어려운 경우)
GRANT pg_monitor TO exemone;
-- PostgreSQL 10 버전 미만
ALTER USER exemone WITH SUPERUSER;
SQL 데이터 수집 권한
database2, search_path 옵션에 입력된 DB 및 스키마에 대해 다음 권한이 필요합니다.
GRANT USAGE ON SCHEMA {schema 명} TO exemone;
GRANT CONNECT ON DATABASE {database 명} TO exemone;
Plan 조회 권한
GRANT USAGE ON SCHEMA {schema 명} TO exemone;
GRANT SELECT ON {schema 명}.{table 명} TO exemone;
Session Kill 권한
-- 일반 PostgreSQL
GRANT pg_signal_backend TO exemone;
-- AWS RDS 환경
ALTER USER exemone WITH SUPERUSER;
GRANT rds_superuser TO exemone;
3. 사전 설정 사항
파라미터 설정 (DB 재기동 필요)
postgresql.conf에 다음 파라미터를 설정합니다.
-- 사용자 정의 함수(PL/pgSQL)에 대한 성능 정보 수집 활성화 (기본값: none)
track_functions = 'pl'
-- SQL 실행 정보를 수집하기 위한 확장 모듈 로드 (기본값: null)
shared_preload_libraries = 'pg_stat_statements'
주의: 위 설정 변경 후 반드시 PostgreSQL 재기동이 필요합니다.
SQL 실행 정보 수집 설정
모니터링 대상 DB에 접속하여 다음 설정을 수행합니다.
-- 모니터링 대상 database로 접속
-- 해당 database명은 exemONE Setting > Database > Custom Configuration > database2 옵션에 입력 필요
-- public이 아닌 schema를 사용하는 경우, search_path 옵션에도 입력 필요
\c [모니터링 대상 dbname]
-- pg_stat_statements 확장 기능 생성
CREATE EXTENSION pg_stat_statements;
-- (선택) SQL text 길이 제한 옵션 - PostgreSQL 재기동 필요
-- 기본값: 1024 / 권장값: 1048576
-- 단, pg_stat_statements.max(기본: 1000) × track_activity_query_size 바이트만큼 공유 메모리 사용 증가 → 변경 시 주의
track_activity_query_size = 1048576
exemONE 모니터링 옵션 설정
PostgreSQL 인스턴스는 Setting > Database의 Instance 등록/편집 화면에서 Custom Configuration에 아래 키 값을 설정해 지표 수집 방식을 세부적으로 조정할 수 있습니다.
경로: Setting > Database > Custom Configuration
| 옵션명 | 설명 |
|---|---|
postgresql.database2 | 모니터링 설정 DB와 pg_stat_statements가 설치된 DB가 다른 경우, SQL 데이터 수집을 위해 해당 DB명을 입력합니다. |
postgresql.set_search_path | db-agent v3.0.508.51 이후는 모니터링 대상 DB의 search_path에, v3.0.508.51 이전은 postgresql.database2의 search_path에 적용됩니다. |
postgresql.set_search_path2 | (db-agent v3.0.508.51 / api v3.0.508.109 이상 추가) postgresql.database2의 search_path에 적용되며, SqlMessage·Plan 조회 시 사용됩니다. |
postgresql.sslmode | SSL 모드 여부를 설정합니다. disable(기존 고정값, 기본값), require, verify-ca, verify-full을 지원합니다. |