그리고 카우치베이스 모바일 2.5 릴리스에서 광범위한 통계 보고 기능에 대한 동기화 게이트웨이통계는 Couchbase Mobile 배포의 상태에 대한 주요 인사이트를 제공하며 모든 배포에서 필수적인 부분을 구성합니다.
이 게시물에서는 다음을 사용하는 방법에 대해 설명합니다. 프로메테우스동기화 게이트웨이 노드를 모니터링하기 위한 오픈 소스 모니터링 및 알림 플랫폼입니다. Grafana 를 사용하여 통계를 시각화할 수 있습니다. 다음 관련 게시물에서는 Prometheus로 모니터링을 설정하는 방법에 대해 설명합니다. 카우치베이스 모바일 쿠버네티스 클러스터.
배경
동기화 게이트웨이 통계 보고
동기화 게이트웨이 통계는 JSON 형식으로 보고되며 다음을 통해 사용할 수 있습니다. _expvar 동기화 게이트웨이를 통한 엔드포인트 관리자 REST 인터페이스.
다음은 보고되는 통계의 범주입니다.
프로메테우스
프로메테우스 는 오픈 소스 시스템 모니터링 및 알림 플랫폼으로, 다음에서 호스팅합니다. 클라우드 네이티브 컴퓨팅 재단. 그 핵심은 프로메테우스 서버 는 "Prometheus 대상"의 통계를 폴링하고 이를 시계열 데이터로 저장하는 역할을 합니다. 프로메테우스 타겟은 정적으로 구성되거나 프로메테우스에 의해 발견될 수 있습니다.
Grafana
Grafana 는 오픈 소스 데이터 시각화 및 알림 플랫폼입니다. Prometheus를 데이터 소스로 지원하며 종합적인 대시보드를 구축하는 데 사용할 수 있습니다.
Prometheus 동기화 게이트웨이 익스포터 소개
Prometheus가 동기화 게이트웨이를 모니터링하려면 동기화 게이트웨이에 해당하는 "Prometheus 대상"이 필요합니다. 이 타겟은 동기화 게이트웨이 내보내기이하 "수출자"라고 합니다. 간단히 말해 내보내기 는 동기화 게이트웨이 통계를 Prometheus 메트릭으로 내보내는 작업을 담당합니다.

배포 아키텍처
이 모든 것을 종합하면 일반적인 배포는 다음과 같습니다.

- 동기화 게이트웨이 내보내기 동기화 게이트웨이 관리자 REST API는 기본적으로 다음과 같습니다. 노출 를 설정합니다. 프로덕션 환경에서도 이 구성을 강력히 권장합니다. 결과적으로 내보내기는 동기화 게이트웨이 관리 API에서 통계를 폴링하므로 내보내기는 동기화 게이트웨이와 동일한 호스트/노드에 있어야 합니다. 또한 동기화 게이트웨이 통계는 노드 단위로 보고됩니다. 따라서 두 개 이상의 동기화 게이트웨이 노드로 구성된 클러스터에서는 각 동기화 게이트웨이 노드마다 자체 내보내기가 있어야 합니다.
- 프로메테우스 서버 는 계속해서 내보내기에 통계를 폴링하고, 내보내기는 다시 동기화 게이트웨이 REST 엔드포인트를 폴링합니다. 서버는 rules.yaml 를 눌러 알림을 푸시하려면 알림 관리자.
- Grafana 서비스는 Prometheus 서버에서 통계를 폴링하여 웹 브라우저를 통해 액세스할 수 있는 웹 기반 대시보드에 그래프로 표시합니다.
설치
이 글의 나머지 부분에서는 익스포터, Prometheus 서버 및 Grafana로 모니터링하기 위해 Couchbase Mobile 클러스터를 설정하는 단계를 안내해 드리겠습니다. 이 지침은 개발 환경을 위한 것이지만 프로덕션 환경에 맞게 쉽게 사용자 지정할 수 있습니다.
우리는 다음을 사용할 것입니다. 도커를 사용하면 매우 간단하게 일어나서 이동할 수 있습니다.
익스포터 소스 코드 다운로드
동기화 게이트웨이 익스포터는 오픈 소스입니다. 카우치바스랩 프로젝트에서 다운로드할 수 있습니다. 이 프로젝트는 카우치베이스 동기화 게이트웨이 2.5와 호환됩니다. 이를 위해 동기화 게이트웨이의 최신 버전으로 최신 상태를 유지하기 위해 노력할 것이지만, 이를 보장할 수는 없습니다. 그러나 좋은 소식은 오픈 소스이며 자세한 내용이 포함되어 있다는 것입니다. 지침 를 참조하여 추가 통계를 지원하도록 확장하는 방법에 대해 알아보세요.
깃허브에서 익스포터 소스 다운로드
1 |
git 복제 https://github.com/couchbaselabs/couchbase-sync-gateway-exporter |
카우치베이스 모바일 클러스터 배포하기
이 섹션의 모든 명령은 복제된 깃허브 리포지토리의 루트 폴더에서 실행해야 합니다.
1 |
cd /경로/에/수출자/복제/repo |
이미 docker에서 실행 중인 Couchbase Mobile 클러스터가 있는 경우 이 단계를 건너뛰고 "동기화 게이트웨이 익스포터 배포" 단계로 넘어갈 수 있습니다. 아래 지침에서 기존 설정에 해당하는 docker 네트워크 이름으로 대체하는 것을 잊지 마세요.
도커 네트워크 만들기
도커를 사용할 때는 동일한 도커 네트워크에서 모든 컴포넌트를 실행하는 것이 좋습니다.
"demo"라는 이름의 도커 네트워크를 만듭니다.
1 |
도커 네트워크 create 데모 |
카우치베이스 서버 배포
여기서는 "TravelSample"이라는 사전 설치된 샘플 버킷과 동기화 게이트웨이가 Couchbase 서버에 연결할 수 있는 "애플리케이션 액세스"가 있는 사전 구성된 RBAC 사용자가 포함된 Couchbase Server v6.0.1의 특수 도커 이미지를 사용할 것입니다.
원하는 경우 바닐라 도커 이미지 최신 버전의 카우치베이스 서버와 수동 구성 버킷 및 동기화 게이트웨이 RBAC 사용자와 함께 사용합니다.
1 |
도커 실행 -d -이름 cb -네트워크 데모 -p 8091-8094:8091-8094 -p 11210:11210 connectsv/서버:6.0.1-엔터프라이즈 |
동기화 게이트웨이 배포
동기화 게이트웨이는 다음과 같은 이름의 구성 파일로 시작됩니다. 동기화 게이트웨이-config.json 복제된 리포지토리의 "testdata" 폴더에 있습니다.
1 |
도커 실행 -p 4984-4985:4984-4985 -네트워크 데모 -이름 동기화-게이트웨이 -d -v `pwd`/테스트 데이터/동기화-게이트웨이-구성.json:/등/동기화 게이트웨이/동기화 게이트웨이.json 카우치베이스/동기화-게이트웨이:2.5.0-엔터프라이즈 -관리자 인터페이스 :4985 /등/동기화 게이트웨이/동기화 게이트웨이.json |
사용해 보기
다음을 실행하여 동기화 게이트웨이가 실행 중이고 _expvar 엔드포인트에 액세스할 수 있는지 확인합니다. curl
명령을 실행해 보세요. 예상대로 작동한다면 콘솔에 많은 통계가 출력되는 것을 볼 수 있을 것입니다.
1 |
curl GET http://localhost:4985/_expvar |
동기화 게이트웨이 내보내기 배포
동기화 게이트웨이 내보내기의 도커 이미지는 다음 링크에서 사용할 수 있습니다. 카우치베이스샘플/동기화 게이트웨이-프로메테우스-엑포터:최신
.
그리고 sgw.url
구성 옵션이 특히 흥미롭습니다. 이것은 동기화 게이트웨이 서버를 가리킵니다. 기존 Couchbase Mobile 배포로 작업하는 경우, 동기화 게이트웨이 서버의 sgw.url
를 설정하여 설정에서 동기화 게이트웨이 노드를 가리키도록 합니다.
내보내기는 다음에 바인딩됩니다. 0.0.0.0
를 기본값으로 설정합니다. 다음을 사용하여 재정의할 수 있습니다. --web.listen-address
옵션을 선택합니다.
1 |
도커 실행 -p 9421:9421 -네트워크 데모 -이름 수출자 -d 카우치베이스샘플/동기화-게이트웨이-프로메테우스-수출자:최신 --로그.레벨=debug --sgw.URL=http://sync-gateway:4985 |
사용해 보기
다음을 사용하여 내보내기가 실행 중인지 확인합니다. curl
명령을 사용합니다.
1 |
curl http://localhost:9421/metrics |
정상적으로 작동하면 콘솔에 여러 가지 메트릭이 출력됩니다. "sgw_up 1"이 출력되는지 확인합니다.

Prometheus 서버 배포
이제 동기화 게이트웨이에서 통계를 내보내는 내보내기가 생겼으니, 내보내기가 메트릭을 폴링하도록 Prometheus를 설정하겠습니다.
prometheus.yml 파일 살펴보기
그리고 prometheus.yml
는 Prometheus 서버가 시작되는 구성을 지정합니다. 이 파일은 복제된 리포지토리의 "testdata" 폴더에 있습니다. 이 파일의 내용을 살펴보겠습니다.
1 2 3 |
글로벌: 스크랩_간격: 5s 평가_간격: 5s |
1 2 3 4 5 6 7 8 |
규칙_파일: - &apos;/등/프로메테우스/규칙/*&apos; 스크랩_컨피그: - job_name: swg static_configs: - 대상: - 수출자:9421</코드></pre> |
- 그리고
스크랩_간격
폴링 간격을 지정합니다. 필요에 따라 조정할 수 있습니다. - 그리고
규칙_파일
는 Prometheus 규칙 파일의 위치를 지정합니다. Prometheus 규칙 파일입니다,sync-gateway.rules.yml
는 다음 위치에 있습니다.testdata/규칙/
폴더로 이동합니다. 이 규칙은 Prometheus에서 경고를 트리거하는 데 사용됩니다. 기본 규칙 세트는 시작점으로 제공되었습니다. 필요에 따라 규칙을 사용자 지정할 수 있습니다. 규칙 파일은 다음 위치에 마운트됩니다./etc/prometheus/규칙
도커 컨테이너가 시작될 때 - 그리고
대상
는 내보내기인 Prometheus 대상을 지정합니다. 동기화 게이트웨이가 여러 개 있는 경우 내보내기를 여러 개 가질 수 있습니다. 이 경우 모든 내보내기 엔드포인트를 정적으로 지정하거나 구성 프로메테우스가 대상을 발견합니다.
도커 이미지 설치
공식 도커 이미지를 배포합니다. 프롬/프로메테우스
를 사용하여 prometheus.yml
파일이 복제된 리포지토리에 포함되어 있습니다.
1 |
도커 실행 -p 9090:9090 -네트워크 데모 -이름 프로메테우스 -d -v `pwd`/테스트 데이터/프로메테우스.yml:/등/프로메테우스/프로메테우스.yml -v `pwd`/테스트 데이터/규칙:/등/프로메테우스/규칙 무도회/프로메테우스 |
사용해 보기
URL 열기 http://localhost:9090/graph
웹 브라우저에서
- '커서에 지표 삽입' 버튼을 클릭하면 사용 가능한 동기화 게이트웨이 지표 목록을 볼 수 있습니다.
- "상태"->"대상"을 클릭하여 내보내기의 목록과 해당 통계를 확인합니다.
- '알림' 메뉴 버튼을 클릭하여 알림 상태를 확인합니다.
Grafana 배포
통계를 시각화하기 위해 Prometheus의 웹 UI를 사용할 수도 있지만, Grafana를 사용하면 매우 매력적인 대시보드를 만들 수 있고 Grafana가 Prometheus와 잘 통합되기 때문에 여기서는 Grafana를 사용할 것입니다.
- 공식
그라파나/그라파나:6.2.0
도커 이미지. 그리고그라파나/데이터
복제된 저장소의 폴더에는grafana.db
대시보드 및 기타 메타데이터를 유지하는 데 사용됩니다. 볼륨은 다음 위치에 마운트됩니다.var/lib/grafana
1 |
도커 실행 -p 3000:3000 -네트워크 데모 -이름 그라파나 -d 그라파나/그라파나:6.2.0 -v `pwd`/그라파나/데이터:/var/lib/그라파나 |
- 기본 "카우치베이스 동기화 게이트웨이" 대시보드는 다음과 같습니다.
dashboard.jsonnet
는 복제된 리포지토리에서 jsonnet 파일을 만듭니다. 파일을그라파나
타겟을 생성하여 해당dashboard.json
파일로 내보낸 다음 Grafana로 가져올 수 있습니다. 대시보드에는 내보내기가 내보낸 모든 메트릭이 그래프로 표시됩니다. 필요에 따라 사용자 지정할 수 있습니다.
1 2 3 4 5 6 7 8 |
# jsonnet에 필요한 관련 서브모듈을 가져옵니다. git 서브모듈 업데이트 -init -리베이스 -원격 -재귀적 # 대시보드.json 파일을 생성하기 위해 grafana 대상을 만듭니다. make 그라파나 |
사용해 보기
- URL 열기
http://localhost:3000
를 클릭합니다. 로그인 화면이 표시됩니다. 기본 자격 증명인 'admin'과 비밀번호 'admin'으로 로그인합니다. 최초 로그인 후 비밀번호를 변경할 수 있습니다.

- 다음 단계는 '데이터 소스'로 'Prometheus'를 추가하고 앞서 생성한 '동기화 게이트웨이 대시보드' json 파일을 가져오는 것입니다. 다음과 같이 할 수 있습니다. 수동으로 메뉴 옵션을 따라가면 됩니다. 이 과정을 간소화하고 이 모든 작업을 수행할 수 있는 스크립트를 제공했습니다!
아래 명령을 사용하여 복제된 리포지토리의 루트에서 스크립트를 실행합니다.make
에서그라파나 개발
대상으로 설정합니다. 이렇게 하면 다음과 같은 작업이 수행됩니다.
-
- (재)생성
dashboard.json
대시보드에서dashboard.jsonnet
파일 - Grafana API를 사용하여 Prometheus를 데이터 소스로 추가합니다.
- Grafana API를 사용하여
dashboard.json
이전 단계에서 생성된
- (재)생성
1 |
make 그라파나-dev |
- 스크립트가 성공적으로 실행되면 웹 브라우저에서 Grafana 웹 UI를 새로 고쳐야 합니다. 사용 가능한 대시보드 목록에 "Couchbase 동기화 게이트웨이 대시보드"가 표시됩니다. 대시보드에는 동기화 게이트웨이에서 보고한 모든 통계가 그래프로 표시됩니다. 대시보드를 사용자 지정할 수 있습니다.

- 통계를 보려면 "Couchbase 동기화 게이트웨이 대시보드"를 클릭합니다. 동기화 게이트웨이(둘 이상 있는 경우) 또는 데이터베이스별로 필터링할 수 있습니다.

이제 끝입니다! Prometheus 및 Grafana로 모니터링을 성공적으로 설정했습니다. 이제 Couchbase Lite 클라이언트로 복제를 구동하고 모니터링할 수 있습니다. 기본 동기화 게이트웨이 대시보드가 시작점입니다. 대시보드를 사용자 지정할 수 있습니다. dashboard.jsonnet
파일 또는 Grafana UI를 통해 직접 실행할 수 있습니다.
TL;DR
각 컨테이너를 독립적으로 실행하는 대신 다음을 사용하여 다중 컨테이너 시작을 수행할 수 있습니다. 도커-컴포즈.
리포지토리에는 docker-compose.yml
파일에 Couchbase Server, 동기화 게이트웨이, Exporter, Prometheus 및 Grafana를 포함한 모든 컨테이너를 시작하는 데 사용할 수 있습니다. 몇 가지 주의 사항이 있습니다. 이에 대해 자세히 알아보세요. 여기
1 |
도커-작성 up |
다음 단계
동기화 게이트웨이 내보내기 기능을 사용하면 동기화 게이트웨이 통계를 Prometheus로 내보내고 Grafana와 같은 시각화 도구를 사용하여 시각화할 수 있습니다. 이렇게 하면 Couchbase Mobile 클러스터의 모니터링이 크게 간소화됩니다. Exporter 외에도 사용자 정의할 수 있는 기본 Grafana 대시보드가 제공되며, 대시보드 자체를 사용자 정의하면 알림 규칙도 사용자 정의할 수 있습니다. 도커 컨테이너를 사용한 설치에 대해 설명했지만, 바이너리를 직접 설치할 수도 있습니다.
다음 블로그에서는 Kubernetes를 실행하는 클러스터에 내보내기를 배포하는 방법에 대해 설명하겠습니다. 기대해 주세요!
질문이나 피드백이 있으면 아래에 댓글을 남기거나 트위터로 언제든지 문의해 주세요. @rajagp 또는 이메일을 보내주세요. priya.rajagopal@couchbase.com. . 카우치베이스 포럼 를 통해 질문할 수 있습니다.
감사
다음 분들께 감사드립니다. 카를로스 베커 동기화 게이트웨이 내보내기 첫 번째 버전을 구축한 공로를 인정받았습니다.