컨테이너 인스턴스를 사용하여 PostgreSQL 사용자정의 OCI 모니터링 알람 및 대시보드 생성

소개

이 사용지침서에서는 OCI(Oracle Cloud Infrastructure)에서 Docker 기반 Java 애플리케이션을 사용하여 PostgreSQL에 대한 사용자정의 모니터링 솔루션을 배포하기 위한 단계별 지침을 제공합니다. VM(가상 머신) 기반 컨테이너를 사용하여 OCI에서 비활성 복제 슬롯 및 복제 지연에 대한 사용자정의 경보 및 대시보드를 생성하는 방법을 설명합니다. 현재 설정은 PostgreSQL 복제 지연 및 비활성 복제 슬롯 모니터링에 중점을 두지만 설계는 유연하며 응용 프로그램 코드를 수정하여 추가 데이터베이스 측정 단위를 추적하도록 쉽게 확장할 수 있습니다.

목표

작업 1: 모니터링 서비스 다운로드 및 설정

  1. Postgres-monitoring-services.zip에서 Postgres-monitoring-services.zip 파일을 다운로드합니다.

  2. 압축을 풀고 README.md 파일의 지침에 따라 응용 프로그램을 빌드하고 실행합니다.

  3. Docker 빌드 및 배포 지침은 저장소에 포함되어 있습니다.

    주: Docker 이미지 작성 및 푸시 지침은 프로젝트 저장소의 README.md에서 이미 사용할 수 있습니다.

작업 2: 동적 그룹을 생성합니다.

동적 그룹을 사용하면 컨테이너 VM이 하드코딩된 인증서를 사용하거나 이미지에 인증서를 저장하지 않고도 OCI 모니터링, OCI Vault, OCI Registry와 같은 OCI 서비스에 액세스할 수 있습니다.

다음 정보를 사용합니다.

주: compartment.id는 컨테이너 인스턴스가 생성될 컴파트먼트 OCID입니다.

작업 3: 네트워크 구성(VCN 및 서비스 게이트웨이)

원활한 통신을 위해 컨테이너 VM을 PostgreSQL 데이터베이스 시스템과 동일한 전용 서브넷에 배치합니다. 서비스 게이트웨이를 사용하여 OCI 서비스에 대한 액세스를 사용으로 설정합니다.

보안 목록 규칙:

다음 규칙이 프라이빗 서브넷의 보안 목록에 추가되어 있지 않은지 확인하십시오.

유형 소스 CIDR 프로토콜 포트 용도
수신 프라이빗-서브넷-CIDR TCP 5432 PostgreSQL 액세스
송신 0.0.0.0/0 모두 모두 OCI 서비스에 액세스

작업 4: 보안 비밀번호 저장에 OCI 저장소 사용

보안 비밀번호 스토리지에 OCI Vault를 사용하여 데이터베이스 인증서 하드코딩을 방지합니다.

  1. 저장소를 생성하고 PostgreSQL 비밀번호가 포함된 비밀번호를 추가합니다.

  2. 저장소 암호 OCID를 기록합니다.

  3. 암호가 존재하는 경우 재사용합니다.

작업 5: Oracle Cloud Infrastructure Identity and Access Management 정책 정의

이러한 OCI IAM 정책을 첨부합니다.

Allow dynamic-group psql_monitoring_with_container_vm_dg to read vaults in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read secret-bundles in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to use metrics in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read repos in compartment <your-tenancy-id>

작업 6: 컨테이너 인스턴스 실행

OCI 콘솔로 이동하여 개발자 서비스, 컨테이너 아티팩트, 컨테이너 인스턴스, 인스턴스 생성으로 이동하고 다음 정보를 입력합니다.

주: 액세스는 OCI IAM 동적 그룹을 통해 인증서 없이 부여됩니다.

이미지

작업 7: OCI 콘솔에서 로그 확인

OCI 콘솔로 이동하여 Developer Services, Container Artifact, Container Instances로 이동하고 인스턴스를 선택한 다음, Containers 탭을 눌러 로그 및 런타임 상태를 검사합니다.

작업 8: 측정항목 탐색기에서 측정항목 보기

OCI 콘솔로 이동하여 관찰 가능성 및 관리, 측정항목 탐색기로 이동하고 다음 정보를 입력합니다.

예제 Query:

replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.mean()

작업 9: OCI 통지 항목 및 가입 설정

  1. OCI 콘솔로 이동하여 애플리케이션 통합으로 이동하고 통지를 누릅니다.

  2. 항목을 생성합니다. 예를 들어, PostgresCustomMonitoringAlerts입니다.

  3. 구독(전자메일, Webhook 등)을 추가합니다.

  4. 실시간 경고를 위해 이 항목을 알람에 연결합니다.

작업 10: 주요 측정 단위에 대한 OCI 모니터링 알람 구성

이미지

이미지

작업 11: 커스텀 대시보드 생성

  1. OCI 콘솔로 이동하여 관찰 가능성 및 관리로 이동하고 대시보드를 누릅니다.

  2. 새 대시보드를 누릅니다.

  3. 측정항목 차트 또는 질의 작성기를 사용하여 위젯을 추가합니다.

  4. 다음 정보를 입력합니다.

    • 이름 공간: postgres_monitor_with_container_vm를 입력합니다.
    • 측정항목: replication_lag_metricinactive_slot_metric을 선택합니다.
  5. 차트 유형, 필터 및 시간 범위를 사용자정의합니다.

이미지

요약 테이블

구성요소 용도
동적 그룹 컨테이너 VM에 대한 OCI 액세스 권한 부여
OCI Vault 보안 데이터베이스 인증서 스토리지
OCI Registry 호스트 Docker 이미지 저장소
모니터링 에이전트 사용자정의 PostgreSQL 측정항목을 수집합니다.
알람 지연, 슬롯, 누락된 데이터에 대한 경보
컨테이너 VM Java 기반 모니터링 툴 실행
대시보드 실시간으로 측정지표 시각화

서버리스 및 복원력 있는 아키텍처 하이라이트

문제 해결 및 해결

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.