Cloud Monitoring 개요

이 문서에서는 Cloud Monitoring에서 제공하는 서비스에 대해 간략하게 설명합니다. 이러한 서비스를 통해 애플리케이션 및 다른 Google Cloud 서비스의 동작, 상태, 성능을 이해할 수 있습니다. Cloud Monitoring은 대부분의 Google Cloud 서비스에 대한 성능 정보를 자동으로 수집하고 저장합니다. Google Cloud Managed Service for Prometheus를 사용하여 Prometheus 측정항목을 수집할 수 있습니다. Compute Engine 가상 머신(VM)에 운영 에이전트를 설치하면 애플리케이션 및 타사 애플리케이션에서 측정항목과 로그를 수집할 수 있습니다.

Cloud Monitoring에서 제공하는 알림, 테스트, 시각화 서비스는 다음과 같은 중요한 의문을 해결하는 데 도움이 됩니다.

  • 서비스의 부하가 어느 정도인가?
  • 내 웹사이트가 올바르게 응답하는가?
  • 서비스가 제대로 작동하고 있는가?

Cloud Monitoring은 대부분의 서비스에 Google Cloud 콘솔 및 API 지원을 모두 제공합니다. 일부 서비스는 Google Cloud CLI 또는 Terraform도 지원합니다. alertPolicies.list 페이지와 같은 Cloud Monitoring API 참조 페이지를 사용하면 참조 페이지에서 직접 API 호출을 실험할 수 있습니다.

Cloud Monitoring 서비스

Cloud Monitoring은 애플리케이션 및 사용 중인 다른 Google Cloud 서비스의 상태와 성능을 이해하는 데 사용할 수 있는 다양한 서비스를 제공합니다.

경고 및 알림

성능 측정항목 값이 정의된 기준을 충족할 때 알림을 받으려면 알림 정책을 만드세요. 알림 정책에는 알림을 수신할 사용자 또는 그룹 목록이 포함됩니다. Monitoring은 이메일, Cloud Mobile App, PagerDuty 또는 Slack과 같은 서비스를 비롯한 일반적인 알림 채널을 지원합니다. 예를 들어 VM의 CPU 사용률이 80%를 초과할 때 알림을 받도록 알림 정책을 만들 수 있습니다.

각 알림에는 장애에 대한 관련 정보가 있으며 이슈에 대한 링크가 포함됩니다. 이슈는 오류 문제 해결에 사용할 수 있는 정보를 저장하는 영구 레코드입니다. 일반적으로 레코드는 이슈 상태, 로그 링크, 기록된 측정항목 데이터의 차트, 라벨, 기간을 나열합니다.

알림 서비스는 여러 Google Cloud 서비스와 통합되어 있습니다. 이러한 통합이 있으면 추천 알림을 나열하는 패널이 표시되거나 알림 정책을 만들 수 있는 버튼이 차트에 표시될 수 있습니다. 두 경우 모두 알림 정책이 사전 구성되므로 알림을 받을 사용자 또는 그룹의 목록만 지정하면 됩니다.

Google Cloud 콘솔, Cloud Monitoring API, Google Cloud CLI 또는 Terraform을 사용하여 알림 정책을 만들고 관리할 수 있습니다.

선제적 모니터링 및 검증

서비스, 애플리케이션, 웹페이지, API의 가용성, 일관성, 성능을 테스트하려면 합성 모니터를 만듭니다. 예를 들어 업타임 체크를 사용하여 HTTP, HTTPS, TCP 엔드포인트의 응답성을 조사하고 엔드포인트가 응답하지 않으면 알림을 받을 수 있습니다. 또한 깨진 링크 검사기를 만들어 웹페이지를 크롤링하고 깨진 링크가 감지되면 알림을 제공할 수 있습니다.

Google Cloud 콘솔, Cloud Monitoring API, Google Cloud CLI 또는 Terraform을 사용하여 합성 모니터를 만들고 관리할 수 있습니다.

데이터 시각화

데이터를 시각화해서 추세를 확인하고, 이상점을 식별하고, 데이터에 대한 기타 세부정보를 보려면 대시보드차트 서비스를 사용하면 됩니다.

  • 대시보드 서비스는 Google Cloud 프로젝트에 리소스를 추가할 때 자동으로 Google Cloud 관리 대시보드를 만듭니다. 예를 들어 Compute Engine 인스턴스, 알림 정책 또는 합성 모니터를 만들 때 대시보드가 생성됩니다. 이러한 대시보드를 사용하면 디스크 사용량 또는 IP 주소와 같은 성능 및 구성 정보를 조회하고 이벤트를 확인할 수 있습니다.

    표시할 데이터와 해당 데이터의 표시 형식을 제어하려면 커스텀 대시보드를 만듭니다. 예를 들어 Grafana 대시보드를 가져오거나 템플릿에서 대시보드를 설치할 수 있습니다. 커스텀 대시보드에 차트, 테이블, 로그 및 오류 그룹, 알림 정책 및 이슈, 텍스트가 표시될 수 있습니다. 또한 조직의 사용자 또는 그룹과 커스텀 대시보드를 공유하고 이벤트를 표시하도록 대시보드를 구성할 수 있습니다.

    Google Cloud 콘솔 또는 API를 사용하여 대시보드를 만들고 관리할 수 있습니다.

  • 차트 서비스인 측정항목 탐색기를 사용하면 시계열 데이터를 빠르게 시각화하고 탐색할 수 있습니다. 차트 설정을 사용하면 현재 데이터를 이전 데이터와 비교하고, 이상점 및 백분위수를 표시하고, 여러 측정항목을 표시할 수 있습니다. 커스텀 대시보드에 차트를 저장할 수도 있습니다.

데이터 수집 및 저장

Cloud Monitoring은 다음 유형의 측정항목 데이터를 수집하고 저장합니다.

  • Cloud Logging에 작성된 로그의 숫자 정보를 기록하는 로그 기반 측정항목. Google에서 정의한 로그 기반 측정항목에는 서비스에서 감지한 오류 수와 Google Cloud 프로젝트가 수신한 총 로그 항목 수가 포함됩니다. 또한 로그 기반 측정항목을 정의할 수 있습니다.

쿼리 언어

알림 정책 또는 차트를 만들 때는 모니터링하거나 차트로 작성할 데이터를 설명하는 쿼리를 제공해야 합니다.

  • Google Cloud 콘솔: 메뉴에서 선택하여 쿼리를 빌드하거나 쿼리를 작성할 수 있습니다. Prometheus Query Language(PromQL)Monitoring Query Language(MQL)에 대한 쿼리 편집기가 제공됩니다. 쿼리 편집기는 문법을 검사하고 제안합니다. Monitoring 필터 표현식을 작성할 수도 있습니다.

  • Cloud Monitoring API: 이 API는 Prometheus 쿼리 언어(PromQL), MQL 쿼리, Monitoring 필터 표현식을 지원합니다.

대규모 시스템 모니터링

이 섹션에서는 컬렉션으로 리소스를 관리하는 방법과 여러 Google Cloud 프로젝트에 저장된 측정항목을 모니터링하는 방법을 설명합니다.

컬렉션으로 리소스 관리

리소스를 개별 항목이 아닌 컬렉션으로 관리하려면 리소스 그룹을 만듭니다. 리소스 그룹은 제공된 일부 조건을 충족하는 동적 리소스 컬렉션입니다. 예를 들어 Compute Engine VM 인스턴스를 Google Cloud 프로젝트에 추가하여 리소스를 추가하고 삭제하면 그룹 멤버십이 자동으로 변경됩니다. 다음은 리소스 그룹의 예시입니다.

  • 이름이 prod- 문자열로 시작하는 Compute Engine 인스턴스
  • test-cluster 태그가 있는 리소스
  • 리전 A 또는 리전 B의 Amazon EC2 인스턴스

리소스 그룹을 정의한 후에는 그룹을 단일 리소스처럼 모니터링할 수 있습니다. 예를 들어 업타임 체크를 구성하여 리소스 그룹을 모니터링할 수 있습니다. 또한 차트 및 알림 정책의 경우 그룹 이름을 기반으로 필터링할 수 있습니다.

자세한 내용은 리소스 그룹 구성을 참조하세요.

여러 Google Cloud 프로젝트의 측정항목 모니터링

단일 인터페이스를 통해 여러 Google Cloud 프로젝트와 AWS 계정의 시계열 데이터를 조회하고 모니터링하려면 다중 프로젝트 측정항목 범위를 구성하면 됩니다.

기본적으로 Google Cloud 콘솔의 Cloud Monitoring 페이지에서는 범위 지정 프로젝트에 저장된 시계열에만 액세스할 수 있습니다. 범위 지정 프로젝트는 Google Cloud 콘솔 프로젝트 선택 도구로 선택한 프로젝트입니다. 범위 지정 프로젝트에는 사용자가 구성한 알림, 합성 모니터, 대시보드, 모니터링 그룹이 저장됩니다.

범위 지정 프로젝트는 측정항목 범위도 호스팅합니다. 측정항목 범위는 측정항목이 범위 프로젝트에 표시되는 프로젝트와 계정을 정의합니다. 다른 Google Cloud 프로젝트 및 AWS 계정의 시계열 데이터를 포함하도록 측정항목 범위를 구성할 수 있습니다. 측정항목 범위를 수정하는 방법에 대한 자세한 내용은 여러 프로젝트의 측정항목 범위 구성을 참조하세요.

Cloud Monitoring 데이터 모델

이 섹션에서는 Cloud Monitoring 데이터 모델을 소개합니다.

  • 측정항목 유형은 측정된 항목을 설명합니다. 측정항목 유형에는 VM의 CPU 사용률과 사용된 디스크 비율이 포함됩니다.

  • 시계열은 측정항목의 타임스탬프 및 측정값의 출처와 의미에 대한 정보를 포함하는 데이터 구조입니다.

다음은 시계열에 포함되는 항목에 대한 세부정보입니다.

  • points 배열은 타임스탬프 측정값을 포함합니다.

    다음은 두 값이 있는 points 배열 예시입니다.

      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
    

    값의 의미를 이해하려면 시계열에 포함된 다른 데이터와 해당 데이터의 정의를 참조해야 합니다.

  • resource 필드는 모니터링되는 하드웨어 또는 소프트웨어 구성요소를 설명합니다. Cloud Monitoring에서는 하드웨어 또는 소프트웨어 구성요소를 모니터링 리소스라고 합니다. 모니터링 리소스의 예시로는 Compute Engine 인스턴스 및 App Engine 애플리케이션이 있습니다. 모니터링 리소스의 전체 목록은 모니터링 리소스 목록을 참조하세요.

    다음은 resource 필드 예시입니다.

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      }
    
    • 모니터링 리소스가 type 필드에 gce_instance로 나열되므로 Compute Engine VM 인스턴스에서 측정이 수행됩니다.

    • labels 필드에는 모니터링되는 리소스에 대한 추가 정보를 제공하는 키-값 쌍이 포함됩니다. gce_instance 유형의 경우 라벨은 모니터링 대상 VM 인스턴스를 식별합니다.

  • metric 필드는 측정 중인 항목을 설명합니다.

    다음은 metric 필드 예시입니다.

      "metric": {
        "labels": {
          "instance_name": "test"
        },
        "type": "compute.googleapis.com/instance/cpu/utilization"
      },
    
    • Google 서비스의 경우 type 필드는 서비스 및 모니터링되는 항목을 지정합니다. 이 예시에서는 CPU 사용률을 측정하는 Compute Engine 서비스입니다. type 필드가 custom 또는 external로 시작할 때 측정항목은 커스텀 측정항목 또는 서드 파티에서 정의된 측정항목입니다.

    • labels 필드에는 측정에 대한 추가 정보를 제공하는 키-값 쌍이 포함됩니다. 이러한 라벨은 측정된 데이터의 속성을 정의하는 데이터 구조인 MetricDescriptor의 일부로 정의됩니다. compute.googleapis.com/instance/cpu/utilization 측정항목의 MetricDescriptor에는 instance_name 라벨이 포함됩니다.

  • metricKind 필드는 시계열 내의 인접한 측정 값 간의 관계를 설명합니다.

    • GAUGE 측정항목은 특정 시점에 측정되는 항목의 값을 저장합니다(예: 시간별 온도 기록).

    • CUMULATIVE 측정항목은 특정 시점에 측정되는 항목의 누적 값을 저장합니다(예: 차량의 주행 거리).

    • DELTA 측정항목은 지정된 기간 동안 측정된 항목의 값 변화량을 저장합니다(예: 주식 종목의 손익을 나타내는 종목 요약).

  • valueType 필드는 측정의 데이터 유형을 묘사하며 INT64, DOUBLE, BOOL, STRING, 또는 DISTRIBUTION 값을 가질 수 있습니다.

Cloud Monitoring은 리소스 및 측정항목 라벨 값의 조합마다 하나의 시계열을 작성합니다. 이러한 라벨을 사용하여 시계열을 그룹화하고 필터링할 수 있습니다. 예를 들어 Google Cloud 프로젝트에 여러 Compute Engine VM 인스턴스가 포함된 경우 각 VM 인스턴스의 CPU 사용률이 고유 시계열입니다. 다음은 이 데이터를 표시하는 몇 가지 방법입니다.

  • 모든 VM 인스턴스의 CPU 사용률을 표시할 수 있습니다.
  • instance_id 라벨의 단일 값에 시계열을 필터링하여 특정 VM 인스턴스의 CPU 사용률을 표시할 수 있습니다.
  • machine_type 라벨별 VM 인스턴스를 기준으로 그룹화한 다음 평균 CPU 사용률을 표시할 수 있습니다. 다음 스크린샷은 이 구성을 사용한 차트를 보여줍니다.

    머신 유형별로 그룹화된 평균 CPU 사용률

가격 책정

일반적으로 Cloud Monitoring 시스템 측정항목은 무료이고 외부 시스템, 에이전트, 애플리케이션의 측정항목은 무료가 아닙니다. 청구 가능한 측정항목은 수집된 바이트 수 또는 샘플 수에 따라 청구됩니다.

Cloud Monitoring 가격 책정에 대한 자세한 내용은 다음 문서를 참조하세요.

다음 단계

  • 여러 Google Cloud 프로젝트 및 AWS 계정의 측정항목을 볼 수 있도록 Google Cloud 프로젝트를 구성하는 방법은 측정항목 범위 개요를 참조하세요.