Cloud Monitoring 소개

이 페이지에서는 Cloud Monitoring의 도구 및 데이터 모델에 대한 개요를 간략히 설명합니다. Cloud Monitoring을 이용하면 다음과 같은 중요한 질문에 답할 수 있습니다.

  • 서비스의 부하가 어느 정도인가?
  • 내 웹사이트를 액세스할 수 있으며 제대로 응답하고 있는가?
  • 서비스가 제대로 작동하고 있는가?

이 페이지는 서비스 또는 시스템 성능을 모니터링해야 하는 개발자 및 시스템 관리자를 대상으로 합니다.

Cloud Monitoring 개요

Cloud Monitoring은 서비스 및 사용 중인 Google Cloud 리소스의 측정값을 수집합니다. 이 섹션에서는 이러한 측정값을 시각화하고 모니터링하는 데 사용할 수 있는 Cloud Monitoring 도구의 개요를 제공합니다.

알림 정책 및 업타임 체크

서비스 성능이 정의된 기준을 충족하지 않을 때 알림을 받으려면 알림 정책을 만드세요. 예를 들어 서비스에서 HTTP 200 응답 중 지연 시간의 90번째 백분위수가 100ms를 초과하면 대기하는 팀에 알리는 알림 정책을 만들 수 있습니다.

배포된 서비스에 액세스할 수 없거나 제대로 응답하지 않는 경우 알림을 받으려면 업타임 체크를 구성하고 알림 정책을 첨부합니다.

  • 업타임 체크는 서비스를 정기적으로 검사하고 프로브의 성공과 지연 시간을 측정항목 데이터로 저장합니다.
  • 알림 정책은 업타임 체크의 성공 상태를 모니터링하고 프로브가 실패하면 알림을 제공합니다.

차트 및 대시보드

서비스의 현재 부하를 이해하고 싶거나 지난 달의 서비스 성능 데이터를 보려면 차트 및 대시보드 도구를 사용합니다. Cloud Monitoring은 서비스가 사용하는 서비스 및 리소스에 따라 대시보드를 채웁니다. 하지만 커스텀 대시보드를 만들어 데이터를 차트로 표시하거나, 표시기를 표시하거나, 텍스트를 표시할 수도 있습니다.

사용자는 다음을 포함하여 Google Cloud 프로젝트에서 수집한 모든 (숫자) 측정항목 데이터를 차트로 만들고 모니터링할 수 있습니다.

  • Google Cloud 서비스에서 생성한 시스템 측정항목입니다. 이러한 측정항목은 서비스 작동 방식에 대한 정보를 제공합니다. 예를 들어 Compute Engine은 각 가상 머신(VM) 인스턴스에 대해 25개 초과의 고유한 측정항목을 보고합니다. 전체 측정항목 목록은 Google Cloud 측정항목을 참조하세요.

  • Cloud Monitoring 에이전트가 수집하는 시스템 및 애플리케이션 측정항목 이러한 측정항목은 Compute Engine 인스턴스와 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 실행되는 시스템 리소스 및 애플리케이션에 대한 추가 정보를 제공합니다. 선택사항으로 Apache, Nginx 웹 서버, MongoDB 또는 PostgreSQL 데이터베이스와 같은 타사 플러그인의 측정항목을 수집하도록 에이전트를 구성할 수 있습니다.

  • Cloud Monitoring API를 사용하거나 OpenCensus와 같은 라이브러리를 사용하여 서비스가 작성하는 커스텀 측정항목

  • Cloud Logging에 작성된 로그의 숫자 정보를 수집하는 로그 기반 측정항목 Google에서 정의한 로그 기반 측정항목에는 서비스에서 감지한 오류 수와 Google Cloud 프로젝트가 수신한 총 로그 항목 수가 포함됩니다. 로그 기반 측정항목을 정의할 수도 있습니다. 예를 들어 App Engine에 배포된 애플리케이션의 404 Not Found 오류 수를 계산하는 측정항목을 만들 수 있습니다.

측정항목 및 시계열 이해

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

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

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

예를 들어 다음은 시계열을 보여줍니다.

  "timeSeries": [
    {
      "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": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      },
      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",

    },

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

  • 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 하위 필드에는 Compute Engine VM 인스턴스에서 측정된 것임을 나타내는 gce_instance가 모니터링 리소스에 나열됩니다.

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

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

    앞의 예시에서 metric 필드는 다음과 같습니다.

      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
    
    • Google 서비스의 경우 type 필드는 서비스 및 모니터링되는 항목을 지정합니다. 이 예시에서 Cloud Monitoring 에이전트는 서비스이며 사용되는 디스크의 비율을 측정합니다. type 필드가 custom 또는 external로 시작되는 경우 측정항목은 커스텀 측정항목이거나 타사에서 정의한 측정항목입니다.

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

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

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

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

    • DELTA 측정항목은 지정된 기간 동안 측정된 항목의 가치 변화를 저장합니다(예: 주식의 이익 또는 손실을 보여주는 일일 주식 요약).

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

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

  • 모든 VM 인스턴스의 디스크 사용률을 표시할 수 있습니다.
  • state 라벨별 VM 인스턴스를 기준으로 그룹화한 다음 평균 디스크 사용률을 표시할 수 있습니다. 다음 스크린샷은 이 구성을 사용한 차트를 보여줍니다.

    주별로 그룹화한 평균 디스크 사용량입니다.

  • instance_id 라벨의 단일 값에 시계열을 필터링하여 특정 VM 인스턴스의 디스크 사용률을 표시할 수 있습니다. 다음 스크린샷은 이 구성을 사용한 차트를 보여줍니다.

    특정 디스크의 디스크 사용률

차트 및 대시보드로 시계열 데이터 보기

Cloud Monitoring은 다양한 방법으로 시계열 데이터를 시각화합니다.

  • 사전 정의된 대시보드: Google Cloud 프로젝트에서 사용되는 리소스를 기반으로 Cloud Monitoring에서 자동으로 대시보드를 채웁니다.

    예를 들어 Google Cloud 프로젝트에 Compute Engine VM 인스턴스가 포함되어 있으면 VM 인스턴스 및 디스크의 대시보드가 자동으로 생성됩니다. 예를 들어 VM 인스턴스 대시보드를 사용하면 메모리 및 디스크 사용량과 같은 세부정보를 열람하고 IP 주소를 식별하며 어느 VM이 네트워크 패킷을 삭제하고 있는지 파악할 수 있습니다. 또한 이 대시보드에는 Cloud Monitoring 에이전트 사용량에 대한 정보가 표시되며 측정에 대한 제안 사항이 제공됩니다.

  • 커스텀 대시보드: 사용자가 만들거나 설치하는 대시보드입니다. 커스텀 대시보드를 사용하면 보고자 하는 데이터와 해당 데이터를 보는 방법을 정의할 수 있습니다. 대시보드에서 차트, 텍스트, 게이지, 스코어카드를 표시하는 위젯을 추가할 수 있습니다. Dashboards API 또는 Cloud Console을 사용하여 커스텀 대시보드를 만들 수 있습니다.

  • 차트: 커스텀 대시보드에 차트를 추가할 수도 있고 시계열 데이터를 빠르게 차트로 표시하고 탐색할 수 있도록 해주는 독립형 차트 작성 도구인 측정항목 탐색기를 사용할 수도 있습니다. 측정항목 탐색기로 차트를 만들면 차트를 커스텀 대시보드에 저장 할 수 있습니다.

차트를 만들 때 모니터링 리소스와 시계열 데이터를 확인할 측정항목 유형을 선택합니다. 선택한 후 필터를 적용하여 특정 라벨 값과 일치하는 시계열을 선택하고 라벨을 기준으로 데이터를 그룹화할 수 있습니다. 예를 들어, us-east-1d 영역에 위치한 Compute Engine VM 인스턴스의 시계열만 차트에 표시되도록 필터를 추가할 수 있습니다.

차트 설정을 사용하면 현재 데이터를 이전 데이터와 비교하고 여러 측정항목에 대한 시계열 데이터를 표시하는 차트를 만들 수 있습니다. 예를 들어 다음 스크린샷은 단일 VM에서 읽고 쓰는 바이트 수를 표시하는 차트를 보여줍니다.

디스크 읽기 및 쓰기 바이트를 표시하는 측정항목 탐색기

시계열 데이터 보기에 대한 자세한 내용은 대시보드 및 차트 사용을 참조하세요.

알림 구성

알림 정책을 만들면 단일 시계열이 특정 조건을 충족할 때 또는 여러 시계열이 해당 조건을 충족할 때 알림을 받을 수 있습니다. 알림 정책은 단순하거나 복잡할 수 있습니다. 예를 들면 다음과 같습니다.

  • example.com 도메인에 대한 업타임 체크가 3분 이상 실패한 경우 알림

  • 서버의 QPS가 15개 미만이면 구별되는 2개의 Google Cloud 위치에 있는 3개 이상의 웹 서버에서 HTTP 200 응답 중 90번째 백분위수가 응답 지연 시간 100ms를 초과하는 경우 대기하는 팀에 알림

  • Google Cloud 프로젝트에서 VM 인스턴스의 CPU 로드가 임곗값 0.6을 초과하면 알림 다음 스크린샷은 이 알림 정책을 보여줍니다.

    CPU 로드를 모니터링하는 알림 정책

Cloud Monitoring APIGoogle Cloud Console을 사용하여 알림 정책을 만들 수 있습니다. 두 경우 모두 알림 페이지를 사용하여 Google Cloud Console에서 정책을 관리하고 확인할 수 있습니다.

조건은 알림 정책의 핵심 구성요소입니다. 조건은 Cloud Monitoring이 감시할 시스템의 잠재적 문제를 설명합니다. 예를 들어 다음과 같은 조건을 설명할 수 있습니다.

  • example.com 도메인에 대한 업타임 체크가 3분 이상 실패합니다.
  • 모니터링하는 VM 인스턴스의 여유 공간이 10% 미만인 경우

알림 정책의 조건이 충족되는 경우(예: 3분 동안 example.com 도메인에 대한 모든 업타임 체크 실패) Cloud Monitoring은 이슈를 열고 알림을 생성합니다.

  • 이슈는 조건이 충족될 때 모니터링 리소스에 대한 정보를 저장하는 영구 레코드입니다. 조건 충족이 중지되면 이슈가 자동으로 종료됩니다. 알림 대시보드를 사용하여 모든 이슈를 보고 열거나 닫을 수 있습니다.
  • 알림 정책을 구성할 때 알림을 받을 사용자를 지정합니다. Monitoring은 이메일, Cloud Mobile App, PagerDuty 또는 Slack과 같은 서비스를 포함한 일반적인 알림 채널을 지원합니다. 알림 채널의 전체 목록은 알림 옵션을 참조하세요.

알림 정책에 대한 자세한 내용은 알림 소개를 참조하세요.

서비스에 액세스할 수 있는지 확인하기

사용자가 서비스에 액세스하는 방법을 모방한 방식을 통해 서비스를 주기적으로 프로브하도록 Cloud Monitoring을 구성할 수 있습니다. 업타임 체크를 구성하면 최소 3개 이상의 위치에 있는 서버가 정기적으로 서비스를 프로브하고 프로브의 성공 및 지연 시간을 기록합니다. 업타임 체크가 실패할 경우 알림을 받으려면 업타임 체크 결과를 기록하는 uptime_check/check_passed 측정항목을 모니터링하는 알림 정책을 만들면 됩니다.

Cloud Monitoring은 업타임 체크 요약을 표시하는 업타임 체크 페이지를 제공합니다. 디스플레이를 필터링하고 삽입된 링크를 사용하여 특정 업타임 체크의 세부정보를 볼 수 있습니다. 업타임 체크의 세부정보 뷰에는 업타임 체크에 대한 세부정보와 함께 응답의 성공 또는 실패와 응답 지연 시간이 표시됩니다.

업타임 체크의 샘플 세부정보 뷰

이 주제에 대한 상세 내용은 업타임 체크 관리를 참조하세요.

대규모 시스템 모니터링

이 섹션에서는 대규모 시스템을 모니터링할 수 있도록 설계된 기능에 대해 설명합니다.

리소스 그룹 사용

Google Cloud 또는 Amazon 리소스를 개별이 아닌 컬렉션으로 관리하려면 리소스 그룹을 만들면 됩니다. 리소스 그룹은 사용자가 제공하는 일부 기준을 충족하는 동적 컬렉션 리소스입니다. Cloud 프로젝트에 Compute Engine VM 인스턴스를 추가하는 등의 방법으로 리소스를 추가 및 삭제하면 그룹의 멤버십이 자동으로 변경됩니다. 다음은 리소스 그룹의 예시입니다.

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

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

이 주제에 대한 자세한 내용은 리소스 그룹 사용을 참조하세요.

여러 Google Cloud 프로젝트의 측정항목 보기

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

기본적으로 Google Cloud Console의 Cloud Monitoring 페이지는 범위 프로젝트(Cloud Console 선택 도구에서 선택한 프로젝트)에 저장된 시계열 데이터에 대한 액세스 권한을 제공합니다. 범위 프로젝트에는 사용자가 구성한 알림, 업타임 체크, 대시보드, 모니터링 그룹이 저장됩니다.

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

프로그래매틱 및 그래픽 인터페이스 사용

Google Cloud Console을 사용하여 측정항목 데이터를 보고 알림 정책, 대시보드, 업타임 체크를 만든 후 관리할 수 있습니다.

또한 Cloud Monitoring API를 직접 사용하여 커스텀 측정항목 데이터를 쓰고 알림 정책, 대시보드, 업타임 체크를 만든 후 관리할 수 있습니다. alertPolicies.list 페이지와 같은 Cloud Monitoring API 참조 페이지를 사용하면 참조 페이지에서 직접 API 호출을 실험할 수 있습니다.

다음 단계