업데이트: v2.8부터 동기화 게이트웨이 Prometheus 내보내기 기본 지원 포함. 통계는 메트릭 엔드포인트를 통해 Prometheus와 호환되는 형식으로 내보내집니다. 이는 더 이상 별도의 내보내기가 필요하지 않다는 것을 의미합니다. 다음에 대한 자세한 내용은 Couchbase 설명서를 참조하세요. 새 엔드포인트를 사용하여 동기화 게이트웨이 v2.8+ 모니터링하기.

그리고 카우치베이스 모바일 2.5 릴리스에서 광범위한 통계 보고 기능에 대한 동기화 게이트웨이. 통계는 Couchbase Mobile 배포의 상태에 대한 핵심 인사이트를 제공하며 모든 배포의 필수적인 부분을 구성합니다.

다음은 단계별 사용 가이드입니다. 프로메테우스 (오픈 소스 모니터링 및 알림)을 동기화 게이트웨이 클러스터와 함께 사용하도록 설정합니다. Kubernetes. 우리는 사용할 것입니다 Grafana 를 사용하여 통계를 시각화할 수 있습니다.

Prometheus와 Kubernetes는 종종 "영적 조상". 두 프로젝트는 모두 클라우드 네이티브 컴퓨팅 재단. 공통의 설계 목표에 따라 추진되기 때문에 Prometheus는 Kubernetes 배포 모니터링에 매우 적합합니다.

In 관련 게시물에서 Kubernetes가 없는 환경에서 Couchbase Mobile 클러스터에서 Prometheus로 모니터링을 설정하는 방법에 대해 설명했습니다. 해당 포스팅을 따라가셨다면 초기 섹션을 건너뛰고 바로 배포 아키텍처 섹션으로 이동합니다.

배경

동기화 게이트웨이 통계 보고

동기화 게이트웨이 통계는 JSON 형식으로 보고되며 다음을 통해 사용할 수 있습니다. _expvar 동기화 게이트웨이를 통한 엔드포인트 관리자 REST 인터페이스.
다음은 보고되는 통계의 범주입니다.

프로메테우스

프로메테우스 는 오픈 소스 시스템 모니터링 및 알림 플랫폼입니다. 핵심은 다음과 같습니다, 프로메테우스 서버 는 "Prometheus 대상"의 통계를 폴링하고 시계열 데이터로 저장하는 역할을 담당합니다. 프로메테우스 타깃은 정적으로 구성되거나 프로메테우스에 의해 발견될 수 있습니다.

Grafana

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

Prometheus 동기화 게이트웨이 익스포터 소개

Prometheus가 동기화 게이트웨이를 모니터링하려면 동기화 게이트웨이에 해당하는 "Prometheus 대상"이 필요합니다. 이 타겟은 동기화 게이트웨이 내보내기이하 "수출자"라고 합니다. 간단히 말해 내보내기 는 동기화 게이트웨이 통계를 Prometheus 메트릭으로 내보내는 작업을 담당합니다.

배포 아키텍처

이 모든 것을 종합하면 일반적인 배포는 다음과 같습니다:

좋아요... 그래서 실제보다 훨씬 더 복잡해 보입니다. 사실 아주 간단합니다:

동기화 게이트웨이 내보내기 컨테이너

내보내기 및 동기화 게이트웨이 컨테이너는 다음을 사용하여 동일한 파드에 함께 위치해야 한다. 사이드카 패턴. 동기화 게이트웨이 관리자 REST API는 기본적으로 기본적으로 노출 로 설정합니다. 프로덕션 환경에서도 이 구성을 강력히 권장합니다. 내보내기는 동기화 게이트웨이 관리 API에서 통계를 폴링하므로 동기화 게이트웨이와 동일한 호스트/노드에 있어야 합니다.

또한 동기화 게이트웨이 통계는 노드 단위로 보고됩니다. 따라서 두 개 이상의 동기화 게이트웨이 노드로 구성된 클러스터에서는 각 동기화 게이트웨이 노드에 자체 내보내기가 있어야 합니다.

동기화 게이트웨이 내보내기 서비스

내보내기를 포함하는 동기화 게이트웨이 파드는 클러스터의 다른 서비스에 노출되어야 합니다. 쿠버네티스에서는, 이를 위해 쿠버네티스 네트워크 서비스. 동기화 게이트웨이 익스포터 서비스는 동기화 게이트웨이 파드를 노출하고 Prometheus 서비스에서 액세스할 수 있도록 합니다.

프로메테우스 운영자

내보내기에서 통계를 계속 폴링하고, 이 통계는 다시 동기화 게이트웨이 REST 엔드포인트를 폴링합니다. 서버는 rules.yaml 를 눌러 알림을 푸시하려면 알림 관리자. 쿠버네티스 클러스터에 프로메테우스를 배포하는 가장 간단한 방법은 프로메테우스 운영자. Prometheus 운영자는 알림 관리자 및 Grafana를 포함한 Prometheus 스택 배포를 처리합니다.
오퍼레이터는 여러 사용자 정의 리소스 정의(CRD)에 따라 작동합니다. 가장 흥미로운 것은 서비스 모니터. 서비스 모니터는 서비스를 모니터링하는 방법을 정의하는 역할을 담당합니다. 이 경우 동기화 게이트웨이 익스포터 서비스를 통해 노출되는 동기화 게이트웨이 파드가 모니터링됩니다.

Grafana

이 서비스는 Prometheus 서버에서 통계를 폴링하여 웹 브라우저를 통해 액세스할 수 있는 웹 기반 대시보드에 그래프로 표시합니다. 클러스터 외부에서 Grafana 대시보드에 액세스하려면 포트 포워딩을 사용해야 합니다. 또한 Kubernetes에서 NodePort 또는 이와 동등한 것을 사용하여 노출할 수도 있습니다. 다시 말하지만, Prometheus 운영자가 동일한 배포를 처리해야 합니다.

내보내기 소스 코드

동기화 게이트웨이 익스포터는 오픈 소스입니다. 카우치바스랩 프로젝트에서 다운로드할 수 있습니다. Couchbase 동기화 게이트웨이 2.5 이상과 호환됩니다. 이를 위해 동기화 게이트웨이의 최신 버전으로 최신 상태를 유지하기 위해 노력할 것이지만, 이를 보장할 수는 없습니다. 좋은 소식은 오픈 소스이며 자세한 내용이 포함되어 있다는 것입니다. 추가 통계를 지원하도록 확장하는 방법에 대한 지침을 참조하세요..

Github에서 내보내기 소스를 복제하고 관련 서브모듈을 업데이트합니다. 리포지토리에는 모든 yaml 배포에 사용할 구성 파일을 만듭니다.

그리고 yaml 이 게시물에서 참조한 구성 파일은 "kubernetes" 폴더에서 사용할 수 있습니다.

설치

이 글의 나머지 부분에서는 Kubernetes 클러스터의 Couchbase Mobile 클러스터에서 모니터링을 설정하는 단계를 안내해드리겠습니다. 여기서의 지침은 모든 관리형 Kubernetes 배포에 적용되어야 합니다.

카우치베이스 서버 클러스터 배포하기

지침을 따르세요. 여기 를 사용하여 최신 버전의 Couchbase Server 클러스터를 배포합니다.

동기화 게이트웨이 클러스터 배포

지침을 따르세요. 여기 를 사용하여 쿠버네티스에 동기화 게이트웨이 클러스터를 배포합니다.

Prometheus 및 Grafana 배포하기

몇 가지가 있습니다. 선택 사항 를 사용하여 Prometheus를 배포할 수 있습니다. 실제로 대부분의 관리형 Kubernetes 서비스에는 다음과 같은 옵션이 있을 수 있습니다.
가장 간단한 옵션 중 하나는 다음을 사용하여 배포하는 것입니다. 프로메테우스 운영자 사용 헬름.

Prometheus 차트는 Prometheus 서버, Grafana, 알림 관리자 등을 포함한 전체 모니터링 스택을 배포합니다.

헬름 설치하기

클러스터에서 이미 헬름을 실행하고 있다면 이 단계를 건너뛴다.

Prometheus 설치

복제된 리포지토리의 루트에서 이 명령을 실행하여 Prometheus 오퍼레이터를 설치합니다.

  • 라는 이름의 새 구성 파일을 만듭니다. values.yaml 텍스트 편집기를 사용하세요. 중요한 것은 Grafana 대시보드에 로그인할 때 사용하는 기본 관리자 비밀번호입니다. 초기 로그인 후 비밀번호를 변경할 수 있습니다.
  • 그리고 values.yaml 파일은 소스 리포지토리.

  • 헬름 차트 배포
    Prometheus 차트는 다음과 같이 배포됩니다. 프로메테우스 네임스페이스

  • 설치 확인
    출력에는 프로메테우스 스택에 해당하는 파드가 표시되어야 한다.

동기화 게이트웨이 내보내기 배포

Prometheus 모니터링 스택이 설정되었으면 이제 모니터링을 위해 내보내기를 설치할 차례입니다.

내보내기 컨테이너는 사이드카 컨테이너 패턴을 사용하여 동기화 게이트웨이와 동일한 파드에 배포됩니다. 이를 위해 동기화 게이트웨이 클러스터를 업데이트합니다. 배포 를 사용하여 내보내기 컨테이너의 배포를 포함할 수 있습니다. 카우치베이스샘플/동기화 게이트웨이-프로메테우스-엑포터:최신 이미지를 사용할 수 있습니다.

  • 열기 sgw-deployment.yaml 를 텍스트 편집기에서 열고 아래와 같이 내보내기 컨테이너를 포함하도록 업데이트합니다.

동기화 게이트웨이 가져오기 노드가 있는 경우 다음을 업데이트해야 합니다. sgw-deployment-import.yaml 도 마찬가지입니다.

  • yaml 파일을 업데이트한 후 클러스터에 적용합니다.

  • 배포 상태를 확인합니다. 이 샘플 클러스터에는 두 개의 동기화 게이트웨이 노드가 포함되어 있습니다.

  • 동기화 게이트웨이 파드의 세부 정보를 보고 내보내기 컨테이너가 포함되어 있는지 확인할 수 있습니다.

동기화 게이트웨이 내보내기 서비스 배포하기

다음으로, 동기화 게이트웨이 노드를 노출하고 클러스터의 다른 노드에서 사용할 수 있도록 하는 Kubernetes 서비스를 배포합니다.

  • 라는 이름의 새 구성 파일을 만듭니다. svc.yaml 텍스트 편집기를 사용합니다. 텍스트 편집기의 svc.yaml 파일은 소스 리포지토리.

  • 서비스 배포

  • 설치를 확인합니다. 출력에서 주목해야 할 핵심 사항은 서비스가 두 개의 동기화 게이트웨이 엔드포인트를 가리키고 있다는 점입니다.

Prometheus 서비스 모니터 설정

Prometheus가 동기화 게이트웨이 내보내기 서비스를 검색하려면 다음과 같이 정의해야 합니다. 서비스 모니터. 앞서 설명한 것처럼 Prometheus 서비스 모니터 는 서비스를 모니터링하는 방법을 지정합니다. Prometheus 운영자는 정의에 따라 Prometheus 스크랩 구성을 생성합니다.

  • 라는 이름의 새 구성 파일을 만듭니다. servicemonitor.yaml 텍스트 편집기를 사용합니다. 텍스트 편집기의 servicemonitor.yaml 파일은 소스 리포지토리.

  • 서비스 배포

Prometheus 알림 구성

이 단계는 선택 사항이며 Prometheus 알림 관리자가 알림을 보내도록 하려는 경우에만 필요합니다. 알림은 구성된 알림 규칙 집합을 기반으로 합니다:

  • 샘플 rules.yaml 파일은 소스 리포지토리. 여기에는 이 규칙에 따라 정의된 몇 가지 예제 규칙이 포함되어 있습니다. 사양. 사용자 환경에 맞게 편집할 수 있습니다.
  • 규칙 적용

모든 것을 하나로 묶기

Prometheus 모니터링 확인

이제 Prometheus ServiceMonitor가 동기화 게이트웨이 서비스에 액세스하고 모니터링할 수 있는지 확인하겠습니다.

  • 로컬 컴퓨터에서 포트 9090의 원격 Prometheus 서버로 포트 포워딩을 활성화합니다. 이는 테스트 목적으로만 필요합니다. 정상적인 작업에는 포트 포워딩을 활성화할 필요가 없습니다.

로컬 브라우저에서 Prometheus 웹UI에 액세스합니다.

모든 것이 정상적으로 진행되면 동기화 게이트웨이 내보내기 노드가 동기화 게이트웨이 내보내기 노드의 타겟 메뉴

Grafana 확인

  • 로컬 컴퓨터에서 원격 Grafana 서버로 포트 포워딩을 사용 설정합니다.

  • 로컬 브라우저에서 Grafana 대시보드 웹UI에 액세스합니다.

  • 기본 자격 증명인 'admin'과 비밀번호 'admin'으로 로그인합니다. 최초 로그인 후 변경할 수 있습니다. 다음 단계는 동기화 게이트웨이 대시보드로 설정하는 것입니다.
  • 기본 "카우치베이스 동기화 게이트웨이" 대시보드는 다음과 같습니다. dashboard.jsonnet 에서 사용할 수 있습니다. 소스 리포지토리 로서 jsonnet 파일을 만듭니다.
  • 다음 단계는 '데이터 소스'로 'Prometheus'를 추가하고 앞서 생성한 '동기화 게이트웨이 대시보드' JSON 파일을 가져오는 것입니다. 다음과 같이 할 수 있습니다. 수동으로 메뉴 옵션으로 이동합니다. 이 프로세스를 간소화하여 스크립트 이 모든 것을 해줄 것입니다!
    먼저 Grafana 서비스가 포트 3000에서 실행 중인지 확인합니다. 복제된 리포지토리의 루트에서 아래 명령을 실행하여 스크립트를 실행합니다. make 에서 그라파나 개발 대상으로 설정합니다. 이렇게 하면 다음과 같은 작업이 수행됩니다:

    • 를 재생성합니다. dashboard.json 대시보드에서 dashboard.jsonnet 파일
    • Grafana API를 사용하여 Prometheus를 데이터 소스로 추가합니다.
    • Grafana API를 사용하여 dashboard.json 이전 단계에서 생성된

Grafana 통계 보기

  • 스크립트가 성공적으로 실행되면 웹 브라우저에서 Grafana 웹 UI를 새로 고쳐야 합니다. 사용 가능한 대시보드 목록에 "Couchbase 동기화 게이트웨이 대시보드"가 표시됩니다. 대시보드에는 동기화 게이트웨이에서 보고한 모든 통계가 그래프로 표시됩니다. 대시보드를 사용자 지정할 수 있습니다.
  • 통계를 보려면 "Couchbase 동기화 게이트웨이 대시보드"를 클릭합니다. 동기화 게이트웨이(둘 이상 있는 경우) 또는 데이터베이스별로 필터링할 수 있습니다.

이제 끝났습니다! Prometheus로 Couchbase 동기화 게이트웨이 Kubernetes 모니터링을 성공적으로 설정했습니다. 이제 Couchbase Lite 클라이언트로 복제를 구동하고 모니터링할 수 있습니다.

기본 동기화 게이트웨이 대시보드가 시작점입니다. 대시보드를 사용자 지정할 수 있습니다. dashboard.jsonnet 파일 또는 Grafana UI를 통해 직접 실행할 수 있습니다.

다음 단계

Prometheus는 Kubernetes 배포를 모니터링하는 데 매우 적합합니다. 동기화 게이트웨이 내보내기 기능을 사용하면 동기화 게이트웨이 통계를 Prometheus로 내보내고 Grafana와 같은 시각화 도구를 사용하여 이를 시각화할 수 있습니다. 이렇게 하면 Couchbase Mobile 클러스터의 모니터링이 크게 간소화됩니다.

내보내기 기능 외에도 사용자 지정할 수 있는 기본 Grafana 대시보드가 제공됩니다. 대시보드 자체를 사용자 지정하는 것 외에도 알림에 대한 규칙도 사용자 지정할 수 있습니다.

질문이나 피드백이 있으면 아래에 댓글을 남겨 주세요. 또는 트위터로 저에게 연락해 주세요. @rajagp 또는 이메일 priya.rajagopal@couchbase.com. . 카우치베이스 포럼 를 통해 질문할 수 있습니다.

감사

다음 분들께 감사드립니다. 카를로스 베커 동기화 게이트웨이 내보내기 첫 번째 버전을 구축한 공로를 인정받았습니다.

 

작성자

게시자 프리야 라자고팔, 제품 관리 부문 선임 이사

프리야 라자고팔은 클라우드 및 엣지용 개발자 플랫폼을 담당하는 Couchbase의 제품 관리 수석 이사입니다. 그녀는 20년 이상 여러 기술 및 제품 리더십 직책을 맡으며 전문적으로 소프트웨어를 개발해 왔으며, 그중 10년 이상은 모바일 기술에 집중했습니다. TISPAN IPTV 표준 대표로서 IPTV 표준 사양에 핵심적인 기여를 했습니다. 네트워킹 및 플랫폼 보안 분야에서 22개의 특허를 보유하고 있습니다.

댓글 남기기