모니터링

Prometheus 및 Grafana로 카펠라 앱 서비스를 모니터링하는 방법

카펠라 앱 서비스 는 모바일, IoT 및 엣지 애플리케이션에 특별히 맞춤화된 완전 관리형 BaaS(서비스형 백엔드)입니다. 개발자와 조직이 다음과 원활하게 통합할 수 있도록 지원합니다. 카우치베이스 카펠라 를 활용하여 다양한 에지 애플리케이션에서 데이터를 동기화하고 카우치베이스 라이트

Capella 앱 서비스는 관리형 환경이지만 모니터링을 통해 귀중한 인사이트와 제어 기능을 제공합니다. 모니터링을 통해 리소스 사용률, 처리량, 오류율 등에 대한 주요 메트릭을 추적할 수 있으므로 성능 병목 현상과 확장성 문제를 파악하는 데 도움이 됩니다. 

또한 알림을 통한 사전 문제 감지 기능으로 애플리케이션의 다운타임을 최소화하고 지속적인 운영을 보장합니다. 모니터링을 통해 리소스 사용 패턴을 분석하고 인프라 확장 및 비용 최적화에 대한 정보에 기반한 의사 결정을 내릴 수 있으므로 용량 계획도 더욱 효과적입니다. 

이 블로그 게시물에서는 다음을 사용하여 카펠라 앱 서비스를 쉽게 모니터링하는 방법을 살펴봅니다. 프로메테우스 메트릭 및 Grafana. Capella 앱 서비스에서 메트릭을 수집하고 저장하기 위해 Prometheus를 설정하는 과정을 안내해 드립니다. 또한 Grafana를 활용하여 애플리케이션의 동작 성능에 대한 실시간 인사이트를 제공하는 매력적인 대시보드를 만드는 방법도 보여드립니다. 

전제 조건

튜토리얼을 시작하기 전에 다음 전제 조건이 충족되었는지 확인하세요:

배경

Capella 앱 서비스 웹 UI 지표

Capella 앱 서비스는 웹 UI를 통해 바로 모니터링 기능을 제공합니다. 앱 엔드포인트 모니터링 문서. 웹 UI의 모니터링 탭은 앱 서비스 및 특정 앱 엔드포인트를 통해 동기화되는 문서의 양과 처리량과 관련된 다양한 메트릭을 그래프로 표시하는 직관적인 인터페이스를 제공합니다. 이러한 메트릭에는 다음이 포함됩니다:

    • 앱 서비스 노드 수준: 
      • 노드별 송수신 바이트
      • CPU 및 메모리 사용률
    • 앱 엔드포인트 수준: 
      • 총 인증 실패 및 성공 건수
      • 델타 동기화 요청 및 전송
      • 가져온, 읽은, 쓴, 거부된 총 문서 수
      • 활성 개수 풀 전용 복제

Capella 앱 서비스 메트릭 API

웹 UI는 포괄적인 메트릭 세트를 제공하지만, 특정 모니터링 요구 사항을 충족하기 위해 보다 세분화되고 사용자 지정 가능한 정보가 필요할 수 있습니다. 이러한 경우 앱 서비스 지표 API를 활용할 수 있습니다. 이 API는 프로그래밍 방식으로 다양한 지표를 가져올 수 있도록 Prometheus 형식의 데이터를 제공합니다.

그리고 앱 서비스 메트릭 API 는 Capella 앱 서비스와 관련된 실시간 메트릭에 액세스할 수 있는 방법을 제공합니다. 시스템 성능을 모니터링하고 분석할 수 있는 다양한 수준의 포괄적인 메트릭 세트를 제공합니다. 

이러한 메트릭에는 앱 서비스 노드의 전반적인 리소스 소비에 대한 인사이트를 제공하는 글로벌 클러스터 사용률 통계가 포함됩니다. 앱 서비스 인스턴스는 여러 노드로 구성됩니다. 

각 노드에 대해 API는 앱별 엔드포인트 메트릭도 제공하여 사용자가 노드 내 개별 엔드포인트의 특정 성능 특성 및 사용률 패턴을 조사할 수 있습니다. 이러한 메트릭에는 캐시 사용률, 델타 동기화, 가져오기, 카우치베이스 라이트 복제(푸시 및 풀) 및 쿼리 관련 메트릭이 포함됩니다.

프로메테우스

프로메테우스 에서 호스팅하는 오픈 소스 시스템 모니터링 및 알림 플랫폼입니다. 클라우드 네이티브 컴퓨팅 재단. 그 핵심은 프로메테우스 서버 메트릭을 위해 "Prometheus 대상"을 폴링하고 이를 시계열 데이터로 저장하는 역할을 합니다. 프로메테우스 타깃은 정적으로 구성되거나 프로메테우스에 의해 발견될 수 있습니다.

Grafana

Grafana 는 오픈 소스 데이터 시각화 및 알림 플랫폼입니다. Prometheus를 데이터 소스로 지원하며 종합적인 대시보드를 구축하는 데 사용할 수 있습니다.

배포 아키텍처

 

    • 프로메테우스 서버 는 메트릭에 대한 Prometheus 형식을 반환하는 메트릭 API를 지속적으로 폴링합니다. 서버는 rules.yaml 를 눌러 알림을 푸시하려면 알림 관리자.
    • Grafana 서비스는 Prometheus 서버에서 메트릭을 폴링하여 웹 브라우저를 통해 액세스할 수 있는 웹 기반 대시보드에 그래프로 표시합니다. 

메트릭 액세스를 위한 Capella 앱 서비스 구성

이 단계를 진행하기 전에 Capella 앱 서비스를 설정하고 실행하고 있는지 확인하는 것이 중요합니다. 아직 설정하지 않은 경우 자세한 내용은 튜토리얼 를 사용하여 샘플 데이터베이스를 설정하고, 관련 데이터를 가져오고, 앱 엔드포인트를 만들 수 있습니다. 이렇게 하면 이 튜토리얼을 효과적으로 따라가는 데 필요한 기초를 갖추게 됩니다. 

먼저 연결 화면의 앱 엔드포인트:

관리자 자격 증명 설정하기: 앱 엔드포인트에 대한 관리자 자격 증명을 설정합니다. 이렇게 하면 관리자 권한이 있는 인증된 사용자만 관리자 및 메트릭 엔드포인트에 액세스할 수 있습니다. 인증을 구현하면 메트릭 API를 통한 데이터 액세스의 보안이 강화되므로 적극 권장합니다.

허용된 IP 주소를 구성합니다: 호스트가 Capella 앱 서비스 메트릭 API에서 메트릭을 가져올 수 있도록 하려면 'IP 주소 허용' 구성에 호스트의 IP 주소를 추가해야 합니다. IP 주소를 CIDR 형식으로 제공해야 합니다. 이 단계를 통해 지정된 호스트가 API에서 메트릭을 액세스하고 검색할 수 있도록 허용됩니다.

메트릭 URL 액세스 유효성 검사: 예를 들어, 제공된 사용자 아이디와 비밀번호로 메트릭에 액세스할 수 있는지 확인하기 위해 cURL을 사용하여 로컬에서 메트릭 API 엔드포인트를 사용해 보세요. curl -u 사용자명:비밀번호 metricsEndpointUrl.

위의 출력에서 특정 앱 서비스 엔드포인트에 대한 인사이트를 제공하는 엔드포인트별 메트릭을 관찰할 수 있습니다. 그러한 메트릭 중 하나입니다, SGW_데이터베이스_DCP_수신 시간는 쓰기 작업 후 DCP를 통해 동기화 게이트웨이가 문서를 수신하는 데 걸리는 시간을 측정합니다. 이러한 엔드포인트별 메트릭 앞에는 SGW_데이터베이스 로 설정하고 각 앱 서비스 노드 및 엔드포인트에 대해 별도의 항목이 있어야 합니다.

또한 Prometheus 형식의 메트릭 API는 글로벌 노드 사용률을 모니터링할 수 있는 노드별 메트릭을 제공합니다. 이러한 메트릭에는 메모리 사용량, CPU 사용률, 힙 및 스택 통계 등 다양한 측면이 포함됩니다. 접두사 노드와 같은 메트릭은 개별 노드에 특정한 정보를 제공합니다. 예를 들어, 다음과 같은 메트릭은 사용 가능한 메모리 바이트 는 특정 노드에서 사용 가능한 메모리 양을 나타냅니다.

위에서는 다음과 같은 엔드포인트별 메트릭의 예를 볼 수 있습니다. SGW_데이터베이스_DCP_수신 시간를 나타내는 문서 작성과 해당 문서가 DCP를 통해 동기화 게이트웨이에 수신되기까지의 시간입니다. 엔드포인트별 메트릭의 접두사에는 SGW_데이터베이스 로 표시되며 각 앱 서비스 노드에 대해 별도의 항목이 있습니다. 메모리, CPU, 힙 및 스택 관련 통계와 같은 글로벌 노드 사용률 메트릭과 같은 노드별 메트릭도 있습니다. 이러한 항목 앞에는 노드, 와 같은 사용 가능한 메모리 바이트 스크린샷의 예시입니다. 

소비자는 사용 사례에 따라 이러한 메트릭을 집계하고 앱 엔드포인트별로 변환할 수 있습니다. 

모니터링 프레임워크 설정

실제 시나리오에서 모니터링 프레임워크는 일반적으로 데이터 센터나 클라우드에 설정됩니다. 하지만 이 논의에서는 로컬 개발 머신을 사용하겠습니다. 이는 대규모로 구현하기 전에 설정을 이해하기 위한 통제된 환경으로 사용됩니다. 실용적인 가이드는 Amazon CloudWatch의 EC2용 Prometheus 통합을 참조하세요: CloudWatch 에이전트 PrometheusEC2.

Docker 네트워크 만들기

Docker를 사용할 때는 모든 컴포넌트를 동일한 Docker 네트워크에서 실행하는 것이 좋습니다. 다음과 같은 이름의 Docker 네트워크를 만듭니다. 모니터링: 도커 네트워크 생성 모니터링

Prometheus 설정

    • 최신 정보 가져오기 프로메테우스 도커 이미지: 도커 풀 프롬/프로메테우스
    • 로컬 prometheus.yml 구성 파일을 열고 다음을 포함하도록 수정합니다: 

자리 표시자 교체 {관리자_사용자명}} 그리고 {{admin_password}} 에서 생성한 관리자 자격 증명을 사용하여 Capella 앱 서비스 메트릭 API 구성 섹션으로 이동합니다.

그리고 {{TARGET_APP_SERVICES_METRICS_URL}}메트릭 엔드포인트 URL에서 찾을 수 있습니다. 연결 탭에 추가하세요. 이 URL을 Prometheus 구성 대상 배열에 추가할 때 프로토콜(https://)에 이미 지정되어 있으므로 체계: https 필드에 입력합니다. 또한 /metrics 아래에 지정된 대로 URL에서 metrics_path.

선택 사항: Prometheus 앱 서비스 메트릭을 사용하여 인증 실패, 문서 액세스 등의 이벤트에 대한 경고를 정의하려는 경우 로컬 rules.yml 구성 파일 내부의 /규칙 디렉터리를 시작점으로 삼고 몇 가지 예제를 사용하지만, 파일을 사용자 지정하고 Metrics API의 앱 서비스 메트릭을 기반으로 더 많은 알림을 추가할 수 있습니다. 

또한 규칙_파일을 포함해야 합니다. prometheus.yml 구성에 대한 자세한 내용은 아래 예시를 참조하세요. etc/prometheus/rules/* 경로는 Prometheus 컨테이너 내의 규칙 파일 위치를 나타내며 컨테이너의 파일 시스템에 상대적입니다.

이러한 규칙은 Prometheus 알림의 트리거 역할을 합니다. Prometheus에서 알림을 작성하는 방법에 대한 자세한 지침은 다음을 참조하세요. 프로메테우스 알림 규칙 문서.

다음 명령을 사용하여 Docker Prometheus 컨테이너를 시작합니다. 상황에 맞게 수정하세요: 

    • -이름 프로메테우스: 이 매개변수는 컨테이너의 사용자 지정 이름을 설정합니다. 이 경우 컨테이너의 이름은 프로메테우스. 나중에 컨테이너와 상호 작용할 때 이 이름을 참조할 수 있습니다.
    • -d: 이 매개변수는 컨테이너를 분리 모드로 실행하므로 백그라운드에서 실행되며 터미널에 연결되지 않습니다.
    • -v pwd/prometheus.yml:/etc/prometheus/prometheus.yml: 이 매개변수는 볼륨 마운트를 지정하여 호스트 머신의 파일 또는 디렉터리를 컨테이너 내부의 위치에 매핑할 수 있도록 합니다. 이를 통해 Prometheus에 대한 사용자 지정 구성 파일을 제공할 수 있습니다.
    • (선택 사항) -v pwd/규칙:/etc/prometheus/규칙: 이 매개 변수는 호스트 머신의 규칙 디렉터리에서 컨테이너 내부의 /etc/prometheus/규칙 경로로 규칙 디렉터리를 매핑하는 또 다른 볼륨 마운트를 지정합니다. 이를 통해 Prometheus에 대한 사용자 지정 규칙 파일을 제공할 수 있습니다.
    • -네트워크 모니터링: Prometheus를 "모니터링" 네트워크에 연결하도록 지정합니다.
    • prom/프로메테우스: 컨테이너를 만드는 데 사용할 Docker 이미지의 이름입니다. 이 경우에는 프롬/프로메테우스 이미지에서 가져옵니다.

이제 다음에서 Prometheus 대시보드를 열 수 있습니다. http://localhost:9090 로 응답하는지 확인합니다. 상태=UP. Prometheus 대상은 Prometheus가 메트릭을 위해 스크랩하는 엔드포인트 또는 서비스입니다. 대상이 다음과 같이 레이블이 지정된 경우 상태: up 는 프로메테우스가 목표물에 성공적으로 도달하여 긁어냈으며, 건강하고 사용 가능한 것으로 간주됨을 의미합니다.

메트릭 시각화

Prometheus 웹 UI 사용 

이제 로컬 호스트의 Prometheus 웹 UI를 사용하여 앱 엔드포인트의 메트릭 API에서 데이터를 시각화할 수 있습니다. 메트릭 API는 Prometheus 메트릭 탐색기를 사용하여 탐색할 수 있는 다양한 메트릭을 제공합니다. 그래프 탭을 클릭한 다음 드롭다운에서 다음과 같은 속성 중 하나를 선택할 수 있습니다. SGW_자원_활용도_프로세스_cpu_퍼센트_활용도 를 클릭하고 실행을 클릭합니다.

선택 사항: 다음과 같은 경우 선택적으로 rules.yml 파일에 경고 규칙을 포함하면 사용자 지정 경고 규칙이 도커 이미지에 포함되어 다음 위치에 마운트됩니다. /규칙:/등/프로메테우스/규칙. 그 결과, 이제 Prometheus 웹 UI에서 이러한 알림을 쉽게 확인할 수 있습니다.

Grafana 사용

통계를 시각화하기 위해 Prometheus의 웹 인터페이스를 사용하는 대신, 매력적인 대시보드를 만들 수 있고 Prometheus와 원활하게 통합되는 기능을 제공하는 Grafana를 활용하겠습니다. Grafana를 시작하고 컨테이너화된 Prometheus 서버에서 메트릭을 사용하려면 다음 단계를 따르세요:

최신 가져오기 그라파나 도커 이미지

다음 명령을 사용하여 Grafana Prometheus 컨테이너를 시작하고 상황에 맞게 수정하세요: 

기본적으로 Grafana 컨테이너가 종료되거나 중지되면 컨테이너에 저장된 데이터는 손실됩니다. 데이터베이스를 사용하여 대시보드 및 기타 필수 메타데이터를 유지할 수 있습니다. 자세한 내용은 Grafana 문서.

URL 열기 http://localhost:3000 를 클릭합니다. 브라우저에 로그인 화면으로 이동합니다. 다음의 기본 자격 증명으로 로그인합니다. 관리자 의 비밀번호와 관리자. 최초 로그인 후 변경할 수 있습니다.

Prometheus를 데이터 소스로 추가합니다: Grafana UI에서 다음과 같이 이동합니다. 구성 섹션에서 데이터 소스. 를 클릭합니다. 데이터 원본 추가 을 클릭하고 프로메테우스 를 데이터 소스 유형으로 지정합니다. Prometheus 데이터 소스를 구성합니다: Prometheus 데이터 소스를 구성하는 데 필요한 세부 정보를 입력합니다.

URL을 다음과 같이 설정합니다. http://{{컨테이너IP주소}}:9090 (컨테이너화된 프로메테우스 서버가 포트 9090에서 실행되고 있다고 가정할 때), 여기서 {컨테이너IP주소}} 는 다음 명령어로 얻을 수 있습니다: 

필요에 따라 다른 설정을 구성하고 저장 및 테스트 를 클릭하여 Prometheus 연결을 확인합니다.

Prometheus 데이터 소스와 연결이 설정되면, Grafana 대시보드 구축을 진행할 수 있습니다. Grafana UI에서 대시보드를 가져오려면, 대시보드 섹션으로 이동하여 관리 를 클릭하여 대시보드 관리 페이지에 액세스합니다. 를 클릭합니다. 가져오기 를 클릭하여 새 대시보드를 가져옵니다. 다음은 예제 대시보드.json 를 통해 시작하실 수 있으며, 여기에는 대부분의 Metrics API 핵심 통계에 대한 대시보드가 포함되어 있습니다.

가져오기 프로세스가 완료되면 Grafana 내에서 가져온 대시보드를 보고 상호 작용할 수 있습니다. 이러한 대시보드는 컨테이너화된 Prometheus 서버에 연결되며, 이 서버는 Grafana에서 데이터 소스로 구성됩니다. 메트릭에 액세스하려면 메트릭의 대시보드 섹션을 클릭하고 최근에 가져온 대시보드를 선택합니다. 경우에 따라 대시보드와 관련된 쿼리를 처음에 다시 실행하여 최신 메트릭을 가져와야 할 수도 있습니다.

이제 끝났습니다! 카펠라 앱 서비스용 Prometheus 및 Grafana로 모니터링을 성공적으로 설정했습니다. 이제 Couchbase Lite 클라이언트로 복제를 구동하고 모니터링할 수 있습니다. 기본 동기화 게이트웨이 대시보드가 시작점입니다. 대시보드를 사용자 지정할 수 있습니다. dashboard.json 파일 또는 Grafana UI를 통해 직접 실행할 수 있습니다.

결론

결론적으로, Metrics API를 Prometheus 및 Grafana 배포와 함께 활용하면 Capella 앱 서비스 메트릭을 실시간으로 강력하게 모니터링할 수 있습니다. 이러한 통합을 통해 사용자 지정 알림 규칙을 통해 이상 징후를 즉시 감지하고 해결할 수 있는 기능을 갖추고 애플리케이션 복원력을 향상시킬 수 있습니다. 이러한 기술을 활용하면 Couchbase 애플리케이션의 성능을 최적화하고 의미 있는 인사이트를 얻을 수 있습니다.

질문이나 피드백이 있으시면 아래에 댓글을 남기거나 다음 주소로 언제든지 문의해 주세요. iveta.dulova@couchbase.com. 그리고 카우치베이스 포럼 에 접속할 수 있는 또 다른 장소입니다. 를 통해 의견을 보내주세요. 여러분의 의견을 소중하게 생각하며 여러분의 의견을 기다리겠습니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 이베타 둘로바, 수석 제품 관리자

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.