워크로드의 자동 애플리케이션 모니터링 구성


지원되는 워크로드에 자동 애플리케이션 모니터링을 사용 설정하여 Google Kubernetes Engine (GKE)에서 실행되는 모니터링 애플리케이션을 구성하고 유지하는 데 드는 시간과 노력을 절약할 수 있습니다.

자동 애플리케이션 모니터링 작동 방식

자동 애플리케이션 모니터링을 사용 설정하면 GKE는 지원되는 워크로드의 배포된 인스턴스를 감지하고 감지된 각 워크로드 인스턴스에 대해 PodMonitoring 리소스를 배포합니다.

자동 애플리케이션 모니터링은 애플리케이션 모니터링을 위한 즉시 사용 가능한 대시보드도 설치합니다. 측정항목은 Google Cloud Managed Service for Prometheus에서 수집합니다.

지원되는 워크로드

자동 애플리케이션 모니터링은 다음 워크로드를 지원합니다.

수동으로 구성할 수 있는 기타 기본 제공 관측 솔루션에 관한 자세한 내용은 Google Cloud Observability 문서의 내보내기 도구 구성 소개를 참고하세요.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화하세요. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.

자동 애플리케이션 모니터링 요구사항

자동 애플리케이션 모니터링을 사용 설정하려면 GKE 클러스터가 다음 요구사항을 충족해야 합니다.

  • 클러스터가 GKE 버전 1.28 이상을 실행해야 합니다.
  • gcloud CLI 버전 492.0.0 이상이 있어야 합니다.
  • 클러스터에 Google Cloud Managed Service for Prometheus 관리형 수집이 사용 설정되어 있어야 합니다. Google Cloud Managed Service for Prometheus 관리형 수집은 새 클러스터에서 기본적으로 사용 설정됩니다.

자동 애플리케이션 모니터링 사용 설정

Google Cloud 콘솔, Google Cloud CLI 또는 GKE API를 사용하여 신규 또는 기존 GKE 클러스터에 자동 애플리케이션 모니터링을 사용 설정할 수 있습니다.

새 워크로드를 배포하거나 클러스터에 자동 애플리케이션 모니터링을 사용 설정한 후 지원되는 워크로드의 측정항목 스크래핑이 시작되기까지 최대 10분이 걸립니다.

콘솔

새 클러스터에 자동 애플리케이션 모니터링을 사용 설정하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 만들기를 클릭하고 Standard 또는 Autopilot 섹션에서 구성을 클릭합니다.

  3. Autopilot 모드 클러스터의 경우 고급 설정을 클릭합니다. 표준 모드 클러스터의 경우 기능을 클릭합니다.

  4. 작업 섹션에서 자동 애플리케이션 모니터링 사용 설정을 선택합니다.

  5. 만들기를 클릭합니다.

클러스터 세부정보 탭의 작업 섹션에서 자동 애플리케이션 모니터링 사용 설정 필드를 업데이트하여 기존 클러스터에 자동 애플리케이션 모니터링을 사용 설정할 수도 있습니다.

gcloud

새 클러스터에 자동 애플리케이션 모니터링을 사용 설정하려면 --auto-monitoring-scope=ALL 옵션을 사용하세요.

gcloud beta container clusters create-auto CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=ALL

다음을 바꿉니다.

  • CLUSTER_NAME: 새 클러스터의 이름
  • COMPUTE_LOCATION: 클러스터의 Compute Engine 위치입니다.

gcloud beta container clusters update 명령어를 사용하여 기존 클러스터를 업데이트할 수도 있습니다.

API

새 클러스터에 자동 애플리케이션 모니터링을 사용 설정하려면 clusters.create 메서드에 POST 요청을 보냅니다.

POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters

{
  "cluster": {
    "name": CLUSTER_NAME
    "initialNodeCount": 1,
    "monitoringConfig": {
      "managedPrometheusConfig": {
        "enabled": true,
        "autoMonitoringConfig": {
          "scope": ALL
        }
      }
    }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • CLUSTER_NAME: 새 클러스터의 이름
  • COMPUTE_LOCATION: 클러스터의 Compute Engine 위치입니다.

자동 애플리케이션 모니터링이 사용 설정되어 있는지 확인

Google Cloud 콘솔, gcloud CLI 또는 GKE API를 사용하여 클러스터에서 자동 애플리케이션 모니터링이 사용 설정되어 있는지 또는 사용 중지되어 있는지 확인할 수 있습니다.

콘솔

다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 클러스터 이름을 클릭합니다.

  3. 기능 섹션의 자동 애플리케이션 모니터링 필드는 자동 애플리케이션 모니터링이 사용 설정되어 있는지 또는 사용 중지되어 있는지 나타냅니다.

gcloud

클러스터를 설명합니다.

gcloud container clusters describe CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'

다음을 바꿉니다.

출력은 다음과 비슷합니다.

autoMonitoringConfig.scope: ALL

출력에서 autoMonitoringConfig.scope 필드의 값이 ALL이면 자동 애플리케이션 모니터링이 사용 설정된 것입니다. 그렇지 않으면 자동 애플리케이션 모니터링이 사용 중지됩니다.

API

clusters.get 메서드에 대해 GET 요청을 실행합니다.

GET https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • CLUSTER_NAME: 클러스터의 이름입니다.
  • COMPUTE_LOCATION: 클러스터의 Compute Engine 위치입니다.

출력은 다음과 비슷합니다.

autoMonitoringConfig.scope: ALL

출력에서 autoMonitoringConfig.scope 필드의 값이 ALL이면 자동 애플리케이션 모니터링이 사용 설정된 것입니다. 그렇지 않으면 자동 애플리케이션 모니터링이 사용 중지됩니다.

대시보드 보기

자동 애플리케이션 모니터링을 사용 설정하면 GKE는 클러스터에 배포된 지원되는 워크로드의 애플리케이션을 모니터링하기 위한 기본 제공 대시보드를 설치합니다. 클러스터에서 실행된 적이 없는 지원되는 워크로드의 대시보드는 표시되지 않습니다.

Google Kubernetes Engine 페이지에서 자동으로 모니터링되는 워크로드의 원격 분석이 포함된 대시보드를 보려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 자동 모니터링 워크로드의 대시보드를 보려는 클러스터의 이름을 클릭합니다.

  3. 관측 가능성 탭을 클릭합니다. 통합 섹션에는 클러스터에서 실행되는 지원되는 워크로드에 대해 구성된 대시보드가 표시됩니다.

Cloud Monitoring 페이지에서 자동으로 모니터링되는 워크로드의 원격 분석이 포함된 대시보드를 보려면 다음 단계를 따르세요.

  1. 대시보드 페이지로 이동합니다.

    대시보드로 이동

  2. 대시보드 목록 탭을 클릭합니다.

  3. 통합 카테고리를 선택합니다.

  4. 대시보드 이름을 클릭합니다. 예를 들어 RabbitMQ Prometheus 개요를 선택합니다.

자동 애플리케이션 모니터링 사용 중지

클러스터에서 자동 애플리케이션 모니터링을 사용 중지하면 GKE에서 만든 PodMonitoring 리소스는 그대로 유지되고 GKE는 기존 지원되는 워크로드를 계속 모니터링합니다. GKE는 클러스터에 배포하는 지원되는 워크로드의 새 인스턴스를 자동으로 모니터링하지 않습니다. 기존의 지원되는 워크로드 모니터링을 중지하려면 GKE에서 만든 PodMonitoring 리소스를 삭제해야 합니다. 클러스터의 자동 애플리케이션 모니터링을 다시 사용 설정하면 GKE는 이전에 만든 PodMonitoring 리소스를 감지하고 조정합니다.

Google Cloud 콘솔, gcloud CLI 또는 GKE API를 사용하여 클러스터의 자동 애플리케이션 모니터링을 사용 중지할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 이름을 클릭합니다.

  3. 기능 목록에서 자동 애플리케이션 모니터링 필드를 찾습니다.

  4. 수정을 클릭합니다.

  5. 자동 애플리케이션 모니터링 사용 설정을 선택 해제합니다.

  6. 저장을 클릭합니다.

gcloud

--auto-monitoring-scope=NONE 옵션을 사용하여 클러스터를 업데이트합니다.

gcloud beta container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=NONE

다음을 바꿉니다.

API

clusters.update 메서드에 대해 PUT 요청을 실행합니다.

PUT https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME

{
  "update": {
    "desiredMonitoringConfig": {
      "managedPrometheusConfig": {
        "autoMonitoringConfig": {
          "scope": NONE
        }
      }
    }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • CLUSTER_NAME: 클러스터의 이름입니다.
  • COMPUTE_LOCATION: 클러스터의 Compute Engine 위치입니다.

지원되는 워크로드의 자동 모니터링 맞춤설정

지원되는 워크로드의 개별 인스턴스에 대한 모니터링 구성을 맞춤설정하거나 지원되는 워크로드의 개별 인스턴스 모니터링을 선택 해제할 수 있습니다.

다른 워크로드의 자동 애플리케이션 모니터링에 영향을 주지 않으면서 지원되는 워크로드의 배포된 인스턴스에 대한 PodMonitoring 리소스를 맞춤설정하려면 자동 애플리케이션 모니터링에서 인스턴스를 제외한 다음 구성을 업데이트하거나 대상 워크로드 인스턴스와 연결된 PodMonitoring 리소스를 교체해야 합니다.

연결된 워크로드를 제외하지 않고 GKE에서 만든 PodMonitoring 리소스를 업데이트하거나 삭제하면 GKE는 PodMonitoring 리소스를 복원하여 다른 지원되는 워크로드를 모니터링하는 동안 연속성을 보장합니다.

워크로드의 PodMonitoring 리소스 찾기

Google Cloud 콘솔을 사용하여 GKE가 워크로드용으로 만든 PodMonitoring 리소스를 식별할 수 있습니다.

  1. 객체 브라우저 페이지로 이동합니다.

    객체 브라우저로 이동

  2. 클러스터 필드에 클러스터 이름을 입력합니다.

  3. 네임스페이스 필드에 네임스페이스 이름을 입력합니다.

  4. 객체 종류 필터에서 PodMonitoring을 선택합니다.

  5. monitoring.googleapis.com에서 PodMonitoring을 선택합니다.

  6. 객체 이름을 클릭하여 객체를 검사합니다. 메타데이터 라벨 source:gke-auto-monitoring는 GKE에서 PodMonitoring 리소스를 만들었음을 나타냅니다.

자동 모니터링에서 배포된 인스턴스 제외

지원되는 워크로드의 배포된 인스턴스를 모니터링하지 않으려는 경우 또는 워크로드의 모니터링 구성을 맞춤설정하려는 경우 자동 애플리케이션 모니터링에서 워크로드를 제외할 수 있습니다.

워크로드를 제외하려면 대상 워크로드 구성에 메타데이터 라벨 allow-gke-auto-monitoring: false를 추가해야 합니다. 예를 들어 다음 매니페스트는 자동 애플리케이션 모니터링에서 모니터링하지 않는 RabbitMQ StatefulSet를 설명합니다.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rabbitmq
  allow-gke-auto-monitoring: false
spec:
  serviceName: rabbitmq
  replicas: 3

워크로드 인스턴스를 제외한 후에는 GKE에서 워크로드용으로 만든 PodMonitoring 리소스를 삭제할 수 있습니다. PodMonitoring 리소스를 삭제하거나 수정해도 GKE는 PodMonitoring 리소스를 복원하려고 시도하지 않습니다. 메타데이터 라벨 allow-gke-auto-monitoring: false로 새 워크로드를 배포하면 GKE는 워크로드의 PodMonitoring 리소스를 만들지 않습니다.

워크로드의 모니터링 구성 삭제

워크로드 모니터링을 중지하거나 워크로드에 맞게 맞춤설정된 자체 PodMonitoring 리소스를 배포하려면 모니터링 구성을 삭제하면 됩니다.

개별 워크로드의 자동 애플리케이션 모니터링 구성을 삭제하려면 다음 단계를 따르세요.

  1. 자동 애플리케이션 모니터링에서 워크로드를 제외합니다.
  2. GKE에서 워크로드용으로 만든 PodMonitoring 리소스를 식별합니다.
  3. PodMonitoring 리소스를 삭제합니다.

    kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
    

    다음을 바꿉니다.

    • POD_MONITORING_NAME: PodMonitoring 리소스의 이름입니다.
    • NAMESPACE: PodMonitoring 리소스의 네임스페이스입니다.

클러스터의 모든 워크로드에 대한 자동 애플리케이션 모니터링 구성을 삭제하려면 다음 단계를 따르세요.

  1. 자동 애플리케이션 모니터링을 사용 중지합니다.
  2. 메타데이터 라벨이 source:gke-auto-monitoring인 클러스터의 모든 PodMonitoring 리소스를 삭제합니다.

    kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
    

가격 책정

자동 애플리케이션 모니터링을 통해 지원되는 워크로드의 자동 애플리케이션 모니터링 구성 및 즉시 사용 가능한 대시보드 설치는 추가 비용 없이 제공됩니다. 하지만 Monitoring 가격 책정에 따라 Google Cloud Managed Service for Prometheus에서 측정항목을 처리하는 데는 Monitoring 요금이 청구됩니다.

다음 단계