Kubernetes

Prometheus가 포함된 Couchbase Autonomous Operator 2.0 - 2부

전제 조건

에서 언급했듯이 1부 블로그의 경우, Amazon EKS의 Kubernetes 환경에서 Prometheus와 Grafana를 실행해야 합니다. 권장되는 방법은 큐브-프로메테우스오픈 소스 프로젝트입니다. 이렇게 하면 배포가 간소화될 뿐만 아니라 다음과 같은 훨씬 더 많은 구성 요소가 추가됩니다. Prometheus 노드 익스포터 는 Linux 호스트 메트릭을 모니터링하며 일반적으로 Kubernetes 환경에서 사용됩니다. 

복제 https://github.com/coreos/kube-prometheus 리포지토리에 저장하되 아직 매니페스트는 만들지 마세요.

이 패키지에 포함된 구성 요소:

참고:

이 튜토리얼은 Prometheus Operator에 대한 관련 리소스를 불러오는 매니페스트가 여전히 폴더에 있다는 것을 전제로 작동합니다. 매니페스트.

리포지토리는 실험 중이며 변경될 수 있으므로 변경 사항이 있는 경우 그에 따라 조정하세요.

 

카우치베이스 서비스모니터 만들기

ServiceMonitor는 카우치베이스 내보내기가 제공하는 들어오는 메트릭에 대해 Prometheus가 스크랩하는 엔드포인트를 정의하는 서비스 리소스를 모니터링하도록 Prometheus에 지시합니다. 이 파일입니다,couchbase-serviceMonitor.yaml는 다음과 같아야 합니다. 큐브-프로메테우스/매니페스트 디렉터리로 이동합니다. 

범례:

  1. 카우치베이스를 포함할 수 있습니다. 서비스 모니터 에서 모니터링 네임스페이스와 함께 다른 서비스 모니터. 이 튜토리얼의 예제를 위해 방금 만든 기본값 네임스페이스를 사용하여 쉽게 사용할 수 있습니다.
  2. 그리고 포트 는 문자열 값일 수 있으며 이름이 일치하는 한 서비스의 다른 포트 번호에서도 작동합니다.
  3. 간격 는 프로메테우스에게 엔드포인트를 얼마나 자주 스크래핑할지 알려줍니다. 여기서는 네임스페이스와 일치시키려고 합니다. 서비스 다음 단계에서 만들게 될 것입니다,
  4. 네임스페이스는 서비스 가 실행될 네임스페이스는 메트릭을 스크랩하려는 Couchbase 클러스터의 네임스페이스와 동일해야 합니다.
  5. 유사하게 네임스페이스 선택자이 간단한 레이블 선택기 를 클릭하면 생성할 서비스를 선택할 수 있습니다.

Couchbase 메트릭 서비스 만들기

그리고 서비스 에서 서비스 모니터에 설명한 포트를 정의합니다. spec.endpoint[0].port 아까 그 파일요couchbase-service.yaml는 다음과 같아야 합니다. 큐브-프로메테우스/매니페스트 디렉터리로 이동합니다. 

범례:

  1. 앞서 언급했듯이 서비스 가 메트릭을 스크랩하려는 Couchbase 클러스터와 동일한 네임스페이스에 있는지 확인해야 하며, 그렇지 않으면 파드가 선택되지 않고 Prometheus Targets에 엔드포인트가 표시되지 않습니다. 또한 이 값이 다음 값과 일치하는지 확인하세요. spec.namespaceSelector 에서 서비스 모니터.
  2. 이 포트는 카우치베이스 익스포터가 내보낼 포트이므로 기본값인 9091로 유지하세요.
  3. 동일한 네임스페이스에서 둘 이상의 Couchbase 클러스터가 실행되는 시나리오에서는 선택기에 더 세분화된 수준을 추가할 수 있습니다.

프로메테우스 동적 서비스 검색

Prometheus는 ServiceMonitor의 레이블을 클러스터와 엔드포인트(이 경우 포트 9091)를 지정하는 서비스와 일치시켜 모니터링 엔드포인트를 동적으로 검색합니다.

적하목록 생성

에 주어진 특정 명령을 따르십시오. Github README 를 클릭하면 생성된 리소스와 함께 제공된 다른 기본 매니페스트를 불러올 수 있습니다.

그러면 Prometheus, AlertManager, NodeExporter 및 Grafana와 같은 구성 요소가 시작되어야 하며 네임스페이스에서 파드를 검사하여 이를 확인할 수 있습니다. 모니터링.

시작하겠습니다.

쿠버네티스 네임스페이스 및 CRD 생성하기

다음 단계로 넘어가기 전에 몇 분 정도 기다리되, 모든 구성 요소가 성공적으로 생성되려면 명령을 여러 번 실행해야 할 수도 있습니다.

나머지 리소스 만들기

네임스페이스 모니터링 확인

그러면 Prometheus, AlertManager, NodeExporter 및 Grafana와 같은 구성 요소가 시작되어야 하며 네임스페이스에서 파드를 검사하여 이를 확인할 수 있습니다. 모니터링.

ServiceMonitor가 생성되었는지 확인합니다.

서비스가 생성되었는지 확인합니다.

위의 출력에서는 서비스뿐만 아니라 포트도 볼 수 있습니다. 이 정보를 사용하여 Couchbase 관리 UI에서 했던 것처럼 이러한 서비스에 액세스하기 위해 이러한 포트를 전달할 것입니다.

Prometheus 운영자 배포에서 모든 것이 올바르게 작동하는지 확인하려면 다음 명령을 실행하여 로그를 확인합니다:

포트 포워딩

이전에 이미 한 CouchBase 노드에서 CouchBase 관리자 UI 포트 8091을 전달한 적이 있지만 이번에는 서비스 관점에서 다시 전달해드리겠습니다. 

이 포트 외에도 실제로는 Grafana 서비스 액세스 포트 3000만 필요합니다. 하지만 Prometheus 서비스 포트 9090에도 액세스해 보겠습니다. 그러면 여러 내보내기의 모든 메트릭을 살펴보고 Prometheus 쿼리 언어인 PromQL도 사용해 볼 수 있습니다. 

이제 위의 3가지로 충분할 것입니다. 그러나 각 개별 서비스의 메트릭도 살펴보면 몇 가지 추가적인 이점이 있습니다. Couchbase 내보내기는 포트 9091에 Couchbase 메트릭을 노출합니다. 따라서 해당 포트도 전달할 수 있습니다. 실제로는 Grafana에 대한 액세스 권한만 있으면 됩니다.

프로메테우스 타깃 확인

액세스: https://localhost:9090/targets

모든 Prometheus 타깃이 UP되어야 합니다. Kube-Prometheus가 많은 내보내기를 배포했기 때문에 이러한 타깃이 꽤 많이 있습니다.

Couchbase 원시 메트릭을 확인하세요.

액세스: https://localhost:9091/metrics

이 출력은 목록을 빠르게 검색할 수 있어 유용합니다.

기본적인 PromQL 쿼리를 사용해 보세요.

위의 UI에서 그래프 먼저.

드롭박스에서 스크랩한 메트릭 목록을 확인할 수 있습니다. 다음은 전체 목록입니다. 모두 에 의해 스크랩된 메트릭 모두 내보내려면 꽤 많은 목록이 필요합니다. 물론 앞서 설명한 대로 9091 엔드포인트에 액세스하여 Couchbase 메트릭으로만 목록을 좁힐 수 있는 한 가지 방법이 있습니다.

Grafana 확인

액세스: https://localhost:3000

사용자 아이디와 비밀번호: admin/admin

Grafana의 큐브-프로메테우스 배포 이미 에는 Prometheus 데이터 소스가 정의되어 있으며 기본 대시보드. 를 확인해 보겠습니다. 기본 노드 대시보드

카우치베이스 메트릭을 모니터링하는 샘플 Grafana 대시보드 만들기

완전한 대시보드는 만들지 않고 몇 개의 패널로 구성된 작은 샘플을 만들어서 그 작동 방식을 보여드리겠습니다. 이 대시보드는 버킷에 있는 항목 수와 GET 및 SET 작업의 수를 모니터링합니다.

참고: 1부에서 설명한 대로 베개 싸움 애플리케이션을 실행하세요. 이렇게 하면 모니터링하고자 하는 작업이 생성됩니다.

프로메테우스 메트릭

액세스: https://localhost:9091/그래프

우리는 버킷의 현재 항목에 관심이 있습니다. 이를 제공하는 몇 가지 메트릭이 있는데, 클러스터 전체와 노드별로 제공됩니다. 노드별 메트릭을 사용하겠습니다. 그러면 모범 사례에 따라 Prometheus가 모든 집계를 처리하도록 할 수 있습니다. 또 다른 장점은 데이터 세트가 왜곡되어 있는지 확인하기 위해 버킷의 현재 항목을 노드별로 표시할 수도 있다는 것입니다.

한 가지 요소를 살펴보겠습니다:

위의 예에서는 이러한 레이블에 관심이 있습니다: 버킷의 일부 노드 (가운데 부분) cb-예시 클러스터 이름인 pod. 또한 다음에도 관심이 있습니다. 서비스 를 사용하여 필터링할 수 있습니다. 이렇게 하면 버킷, 노드 또는 클러스터별로 메트릭을 볼 수 있는 대시보드를 디자인하는 데 도움이 됩니다.

샘플 대시보드

새 빈 샘플 대시보드를 만들어 보겠습니다.

변수 추가

버킷, 노드 및 클러스터별 메트릭이 필요하므로 이러한 변수를 추가하여 드롭박스에서 선택할 수 있도록 하겠습니다.

위의 예는 변수 버킷을 생성합니다. 쿼리 및 정규식 표현식에 주목하세요. 

변수를 2개 더 생성하여 3개의 변수를 만들어 보겠습니다:

이 세 가지 쿼리는 변경되지 않지만 정규식 표현식은 다음과 같습니다:

패널 만들기

현재 항목, GET 및 SET에 대한 3개의 패널 만들기

각 패널을 복제하여 편집할 수 있습니다. 다음은 쿼리입니다:

항목 패널: 합계(cbpernodebucket_curr_items{버킷=~"$버킷",포드=~"$노드"}) by (버킷)

GETs 패널: sum(cbpernodebucket_cmd_get{버킷=~"$버킷",포드=~"$노드"}) by (버킷)

SETs 패널: 합계(cbpernodebucket_cmd_set{버킷=~"$버킷",포드=~"$노드"}) by (버킷)

완성된 샘플 Grafana 대시보드

최종 샘플 대시보드의 모습은 다음과 같습니다.

정리

마지막으로 배포를 정리합니다:

리소스:

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

작성자

게시자 프라사드 도디

Prasad는 Couchbase Cloud의 선임 제품 관리자입니다. Couchbase에 입사하기 전에는 IBM에서 개발, QA, 지원, 기술 영업 등 다양한 부서에서 근무했습니다. Prasad는 뉴욕 클락슨 대학교에서 화학 석사 학위를 받았습니다. 뉴욕 클락슨 대학교에서 화학 석사 학위를 받았습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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