카테고리 없음

06. Postgresql 모니터링방법

잘나가는전산쟁이 2026. 8. 5. 02:22
728x90
반응형

PostgreSQL 대상 Zabbix Agent 모니터링

  • 본 문서는 Zabbix에서 PostgreSQL 또는 compatible DB를 Agent 기반으로 모니터링하는 절차를 설명한다.
  • 최신 권장 방식은 Zabbix agent 2와 PostgreSQL plugin, 그리고 Template DB PostgreSQL by Zabbix agent 2 계열 템플릿을 사용하는 방법이다.
  • 구버전 또는 기존 운영 환경에서는 Template DB PostgreSQL by Zabbix agent와 UserParameter 기반 설정도 사용할 수 있다.

구성 개요

{width=700px}

  • Zabbix Server 또는 Proxy: 수집 데이터 저장, 트리거 평가, 알림 처리 담당.
  • PostgreSQL 서버: 대상 DBMS 서버.
  • Zabbix Agent 2: PostgreSQL plugin을 통해 DB 상태를 수집하는 컴포넌트.
  • 통신 포트:
    • Zabbix Server/Proxy -> Agent: 10050/tcp, Passive check.
    • Agent -> Zabbix Server/Proxy: 10051/tcp, Active check.
    • Agent -> PostgreSQL: 5432/tcp.

권장 방식

  • 공식 통합 문서는 PostgreSQL 모니터링에 agent 2와 plugin 사용을 안내한다.
  • Agent 2는 PostgreSQL plugin을 통해 연결 정보와 쿼리 결과를 수집할 수 있다.
  • 실무에서는 OS 모니터링 템플릿과 DB 모니터링 템플릿을 같은 Host에 함께 연결하는 방식이 일반적이다.

사전 준비

  • 대상 서버에는 PostgreSQL이 정상 구동 중이어야 한다.
  • 대상 서버에는 zabbix-agent2가 설치되어 있어야 한다.
  • Zabbix Web UI에서 Host가 생성되어 있어야 하며, Agent interface가 등록되어 있어야 한다.
  • PostgreSQL 접속용 전용 모니터링 계정을 별도로 생성하는 것이 권장된다.

PostgreSQL 모니터링 계정 생성

  • 공식 문서는 zbx_monitor 계정을 생성해 모니터링에 필요한 권한을 부여하는 방식을 사용한다.
  • 예시는 다음과 같다.

sql
CREATE USER zbx_monitor WITH PASSWORD 'StrongPassword';
GRANT CONNECT ON DATABASE postgres TO zbx_monitor;

  • 환경에 따라 추가 권한이 필요할 수 있으나, 기본 원칙은 최소 권한으로 시작하는 것이다.
  • 인증 방식은 pg_hba.conf에서 허용해야 하며, 로컬 TCP 연결 예시는 아래와 같다.

conf
host all zbx_monitor 127.0.0.1/32 md5
host all zbx_monitor ::1/128 scram-sha-256

Agent 2 설치

  • Rocky Linux 계열 예시는 다음과 같다.
  • 운영체제에 맞는 공식 저장소 패키지를 사용한다.
rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rhel/9/noarch/zabbix-release-latest.el9.noarch.rpm
dnf clean all
dnf install -y zabbix-agent2 zabbix-agent2-plugin-postgresql
  • 설치 후 Agent 2 서비스를 활성화한다.
systemctl enable --now zabbix-agent2

PostgreSQL 접속 정보 설정

  • Zabbix 공식 문서는 사용자 매크로 방식으로 DB 접속 정보를 설정한다.

  • 주요 매크로는 아래와 같다.

    • {$PG.HOST}
    • {$PG.PORT}
    • {$PG.USER}
    • {$PG.PASSWORD}
  • 일반적인 로컬 접속 예시는 다음과 같다.

{$PG.HOST}=127.0.0.1
{$PG.PORT}=5432
{$PG.USER}=zbx_monitor
{$PG.PASSWORD}=StrongPassword
  • PostgreSQL이 원격 서버라면 {$PG.HOST}에 실제 DB 주소를 넣고, 포트가 다르면 {$PG.PORT}를 수정한다.

Web UI 등록

  • Zabbix Web UI에서 대상 Host를 생성하거나 기존 Host를 연다.
  • Templates에서 PostgreSQL by Zabbix agent 2 계열 템플릿을 연결한다.
  • Macros 탭에서 위의 PostgreSQL 접속 매크로를 설정한다.
  • 저장 후 Latest data에서 PostgreSQL 관련 항목이 수집되는지 확인한다.

수집 항목 예시

  • PostgreSQL availability
  • Version
  • Uptime
  • Connections
  • Transactions per second
  • Replication 상태
  • Database size
  • Cache hit ratio
  • WAL 또는 관련 상태값, 구성에 따라 다름

Passive / Active 선택

  • OS Agent 통신은 Passive 또는 Active 중 하나 또는 둘 다 사용할 수 있다.
  • PostgreSQL 메트릭 자체는 Agent 2가 DB에 직접 접속해 가져오므로, 핵심은 Agent <-> Zabbix 경로와 Agent -> PostgreSQL 경로가 모두 정상이어야 한다.
  • 대규모 환경에서는 Agent 쪽은 Active check 중심으로 운영하고, DB 접속은 로컬 또는 근접 네트워크로 제한하는 구성이 안정적이다.

방화벽 및 접근 제어

  • Zabbix Agent 포트는 기존 Agent 운영 정책과 동일하게 적용한다.
    • Passive: 10050/tcp
    • Active: 10051/tcp
  • PostgreSQL은 기본적으로 5432/tcp를 사용한다.
  • 가능하면 Agent와 PostgreSQL을 같은 서버에 두고 127.0.0.1로 접속하게 구성하는 편이 보안상 유리하다.

대용량 운영 추천값

  • 대규모 DB 서버 환경에서는 Agent 2 + Active check + Proxy 조합이 확장성 측면에서 유리하다.
  • PostgreSQL 템플릿은 먼저 기본값으로 시작하고, 불필요한 항목은 운영 중 점진적으로 줄이는 것이 좋다.
  • 추천 시작 기준은 아래와 같다.
항목 추천값
Agent 방식 Zabbix agent 2
템플릿 PostgreSQL by Zabbix agent 2
OS 수집 방식 Active 우선, Passive 보조
DB 접속 경로 가능하면 localhost
계정 권한 모니터링 최소 권한만 부여
Host 그룹 Database 계열로 분리
Proxy 사용 DB 서버가 많거나 망이 분리된 경우 적극 검토

구버전 방식

  • 구버전 템플릿을 사용할 경우 template_db_postgresql.conf 파일을 Agent 설정 디렉터리에 배치하고, PostgreSQL 접속 정보를 별도 파일로 관리하는 방식이 사용된다.
  • 기존 환경이 이미 UserParameter 기반으로 운영 중이라면 즉시 교체하기보다 Agent 2 방식 전환 계획을 별도로 잡는 것이 현실적이다.

점검 항목

  • zabbix-agent2 서비스가 정상 실행 중인지 확인한다.
  • Agent에서 PostgreSQL 5432 접속이 가능한지 확인한다.
  • Web UI 매크로 값이 정확한지 확인한다.
  • Latest data에서 PostgreSQL 관련 항목이 들어오는지 확인한다.
  • 계정 권한 부족, 잘못된 DSN/Host, Hostname 불일치는 가장 흔한 원인이므로 우선 점검한다.

운영 팁

  • OS 템플릿과 PostgreSQL 템플릿을 같은 Host에 함께 연결하면 운영이 단순해진다.
  • DB 서버가 많아질수록 Host group, Template, Macro 값을 표준화하는 것이 중요하다.
  • 계정 비밀번호는 템플릿 하드코딩보다 Host macro 또는 Vault 연계 방식으로 관리하는 편이 안전하다.
  • 복제 환경에서는 replication 관련 상태값까지 함께 확인하도록 템플릿 적용 범위를 검토하는 것이 좋다.
728x90
반응형