Zabbix로 Oracle 19c 데이터베이스 모니터링 완전 가이드

Oracle 19c 데이터베이스를 위한 Zabbix 통합 설정 절차

본 문서는 Zabbix Agent 2를 활용하여 Oracle 19c 데이터베이스의 상태를 실시간으로 모니터링하는 전체 과정을 단계별로 설명합니다. 초보자도 독립적으로 구성할 수 있도록 구조화된 안내를 제공합니다.

  1. 시스템 환경 준비
  • 대상 시스템: Oracle 19c 설치된 서버
  • 모니터링 서버: Zabbix Server (5.0 이상), Zabbix Agent 2
  • 권한 조건: Oracle DB 관리자 권한, 서버 관리자 계정 접근 권한
  1. Zabbix Agent 2 설치

Oracle 서버에 다음 명령어로 Zabbix Agent 2를 설치합니다.

# Zabbix 저장소 추가
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# Agent 설치
yum install -y zabbix-agent2

# 서비스 시작 및 부팅 자동 실행 설정
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
  1. Agent 기본 설정 수정

설정 파일 /etc/zabbix/zabbix_agent2.conf 을 편집하여 다음 항목을 입력합니다.

Server=<Zabbix 서버 주소>
Hostname=<서버 고유 이름>

변경 후 서비스 재시작:

systemctl restart zabbix-agent2
  1. 모니터링용 사용자 생성

SYS 계정으로 접속하여 아래 SQL을 실행해 모니터링 전용 사용자를 생성합니다.

-- 사용자 생성
CREATE USER C##zabbix_monitor IDENTIFIED BY secure_password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
CONTAINER=ALL;

-- 기본 권한 부여
GRANT CREATE SESSION TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ANY DICTIONARY TO C##zabbix_monitor CONTAINER=ALL;

-- 핵심 뷰 조회 권한 부여
GRANT SELECT ON SYS.DBA_TABLESPACE_USAGE_METRICS TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.DBA_TABLESPACES TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.DBA_DATA_FILES TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$DATABASE TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$INSTANCE TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$LOG TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SESSION TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$ACTIVE_SESSION_HISTORY TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$ASM_DISKGROUP TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$OSSTAT TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$PGASTAT TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$PROCESS TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SYSTEM_PARAMETER TO C##zabbix_monitor CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SYSMETRIC TO C##zabbix_monitor CONTAINER=ALL;
  1. Oracle 연결 설정 파일 작성

/etc/zabbix/zabbix_agent2.d/oracle_custom.conf 파일을 생성하고 아래 내용을 기입합니다.

Plugins.Oracle.Sessions.cdb1.Uri=tcp://localhost:1521
Plugins.Oracle.Sessions.cdb1.User=C##zabbix_monitor
Plugins.Oracle.Sessions.cdb1.Password=secure_password
Plugins.Oracle.Sessions.cdb1.Service=cdb1
  1. Oracle 환경 변수 설정

시스템 서비스 설정 파일(/etc/systemd/system/zabbix-agent2.service)에 다음과 같은 환경 변수를 추가합니다.

[Service]
Environment="ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1"
Environment="LD_LIBRARY_PATH=/u01/app/oracle/product/19.0.0/dbhome_1/lib"
Environment="PATH=$PATH:/u01/app/oracle/product/19.0.0/dbhome_1/bin"

변경 사항 반영 후 재시작:

sudo systemctl daemon-reload
sudo systemctl restart zabbix-agent2
  1. Zabbix Web 인터페이스에서 호스트 등록

  2. Zabbix 웹 대시보드에 로그인

  3. Configuration → Hosts 메뉴 진입

  4. Create host 클릭

  5. 필수 정보 입력:

  • Host name: 실제 서버 이름 입력
  • Groups: 적절한 그룹 선택
  • Interfaces: Agent 타입, IP 및 포트(기본 10050) 입력
  1. Templates 탭에서 Template DB Oracle by Zabbix agent 2 적용
  2. Macros 섹션에 다음 값을 설정:
  • {$ORACLE.CONNSTRING} = tcp://localhost:1521
  • {$ORACLE.SERVICE} = cdb1
  • {$ORACLE.USER} = C##zabbix_monitor
  • {$ORACLE.PASSWORD} = secure_password
  1. Add 버튼 클릭하여 저장

  2. 모니터링 정상 작동 확인

  3. Monitoring → Latest data 선택

  4. 새로 등록한 오라클 호스트 선택

  5. oracle 관련 아이템들이 정상적으로 수집되는지 확인

  6. 주요 문제 해결 방법

9.1 Oracle 연결 실패

  • 오류 메시지: Cannot connect to Oracle
  • 원인 및 조치:
  • Oracle 리스너가 실행 중인지 확인 (lsnrctl status)
  • oracle_custom.conf 내 연결 정보 재확인
  • 방화벽에서 1521 포트 허용 여부 점검

9.2 DPI-1047 에러 발생

  • 오류 메시지: ORA-00000: DPI-1047: Cannot locate a 64-bit Oracle client library
  • 해결책:
  • ORACLE_HOME, LD_LIBRARY_PATH 설정 검토
  • 64비트 클라이언트 라이브러리 설치 여부 확인
  • Zabbix Agent 재시작

9.3 권한 부족

  • 현상: 일부 메트릭 수집 불가
  • 조치:
  • C##zabbix_monitor 사용자에게 추가 조회 권한 부여
  • 필요 시 SELECT 권한을 특정 시스템 뷰에 직접 부여

9.4 데이터 수집 지연

  • 원인: 수집 주기 지연 또는 시스템 부하
  • 개선 방법:
  • Zabbix 서버 및 에이전트 리소스 상태 점검
  • Update interval 조정
  • 복잡 쿼리 최적화 또는 분산 수집 구조 고려

9.5 사용자 생성 실패

  • 원인: 권한 부족 또는 문법 오류
  • 대응:
  • 반드시 SYS 계정으로 실행
  • 비밀번호 강도 요건 충족 여부 확인
  • 멀티테넌트 환경에서는 컨테이너 지정 필수

9.6 테이블스페이스 문제

  • 현상: 사용자 생성은 성공했으나 접속 불가
  • 원인 및 해결:
  • users, temp 테이블스페이스 존재 여부 확인
  • 할당 용량 부족 시 확장 또는 공간 확보
  • 사용자 할당량(QUOTA) 설정 확인
  1. 마무리 조언

위 절차를 완료하면, 안정적인 오라클 19c 모니터링 시스템이 구축됩니다. 주기적으로 수집 데이터를 점검하고, 환경 변화에 따라 설정을 조정해야 합니다. 문제가 발생할 경우 공식 문서 또는 커뮤니티 지원을 활용하세요.

✅ 보안 팁:

  • 모든 암호는 복잡성 기준 충족
  • 정기적으로 모니터링 사용자의 권한 검토
  • Zabbix 및 오라클 소프트웨어는 최신 상태 유지
  • 필요 시 모니터링 항목과 트리거 조정

정교한 설정과 신속한 장애 대응을 통해 안정성 높은 데이터베이스 운영 환경을 확보할 수 있습니다.

태그: Oracle 19C Zabbix Agent 2 Database Monitoring Linux System Administration SQL Privileges

6월 15일 02:27에 게시됨