VM 상태 변경 모니터링


이 문서에서는 관리형 인스턴스 그룹(MIG)에서 VM의 상태 변경 로그 항목을 열람하고 읽는 방법을 설명하며 그룹에서 VM을 모니터링하는 데 도움이 되는 특정 사용 사례를 제공합니다.

관리형 인스턴스 그룹(MIG)에 애플리케이션 기반 상태 점검을 구성한 경우, Compute Engine은 인스턴스가 HEALTHY에서 UNHEALTHY로 변경되는 등 관리형 인스턴스의 상태가 변경될 때마다 로그 항목을 작성합니다. 이러한 로그 항목은 각 관리형 인스턴스의 상태와 MIG의 전체 상태를 모니터링하고 디버깅하는 데 유용합니다.

시작하기 전에

  • 상태 점검 및 자동 복구 설정을 검토합니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

가격 책정

Compute Engine은 Cloud Logging을 사용하여 관리형 인스턴스 상태 변경 로그 항목을 생성합니다. Cloud Logging은 매달 무료 할당량을 제공하며 그 이후에는 데이터 볼륨에 따라 로그 항목의 가격이 책정됩니다. 자세한 내용은 Cloud Logging 가격 책정 요약을 참조하세요.

로깅 비용이 발생하는 것을 방지하려면 상태 변경 로그를 사용 중지할 수 있습니다.

상태 변경 로그 보기

상태 변경 로그가 사용 설정 상태로 유지되면 Compute Engine은 관리형 인스턴스의 상태가 변경될 때마다 플랫폼 로그에 로그 항목을 작성합니다. 사용자는 프로젝트, 특정 MIG, 또는 특정 관리형 인스턴스의 로그를 볼 수 있습니다.

프로젝트 또는 MIG의 로그 보기

프로젝트 또는 특정 MIG의 로그 항목을 보려면 Google Cloud 콘솔, gcloud CLI, REST를 사용합니다.

콘솔

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 다음 쿼리 매개변수를 설정합니다.

    • 리소스 - GCE 인스턴스 그룹 관리자
    • 로그 이름 - instance_group_manager_events
  3. 또는 쿼리 빌더에서 다음 쿼리를 복사할 수 있습니다.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:*
    

    다음 쿼리를 사용하여 검색 범위를 특정 관리형 인스턴스 그룹으로 좁힐 수 있습니다.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"
    
  4. 쿼리 실행을 클릭합니다. 쿼리 결과에 로그가 표시됩니다.

gcloud

로그 항목을 열람하고 읽으려면 gcloud logging read 명령어를 사용하세요.

프로젝트의 모든 상태 변경 로그를 보려면 다음 명령어를 사용합니다.

gcloud logging read 'resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:*'\
    --limit 10

특정 관리형 인스턴스 그룹의 모든 상태 변경 로그를 보려면 다음 명령어를 사용합니다.

gcloud logging read 'resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"' \
    --limit 10

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • MIG_NAME: 상태 변경 로그를 보려는 MIG

REST

상태 변경 로그를 보려면 entries.list 메서드에 대해 POST 요청을 실행합니다.

프로젝트의 모든 상태 변경 로그를 보려면 다음 명령어를 사용합니다.

curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \
'{"filter":
    "resource.type=gce_instance_group_manager AND
    logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND
    jsonPayload.instanceHealthStateChange:*",
    "orderBy": "timestamp desc",
    "pageSize": 10,
    "resourceNames": ["projects/PROJECT_ID"]
}' https://logging.googleapis.com/v2/entries:list?alt=json

특정 관리형 인스턴스 그룹의 상태 변경 로그를 보려면 다음 명령어를 사용합니다.

curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \
'{"filter":
    "resource.type=gce_instance_group_manager AND
    logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name=MIG_NAME",
    "orderBy": "timestamp desc",
    "pageSize": 10,
    "resourceNames": ["projects/PROJECT_ID"]
}' https://logging.googleapis.com/v2/entries:list?alt=json

다음을 바꿉니다.

  • OAUTH2_TOKEN: 애플리케이션의 액세스 토큰. 로컬 테스트의 경우 gcloud auth print-access-token 명령어를 사용하여 토큰을 생성할 수 있습니다.
  • PROJECT_ID: 프로젝트 ID
  • MIG_NAME: 상태 변경 로그를 보려는 MIG

각 로그 항목에 대한 상세 설명은 로그 항목 형식을 참조하세요.

로그 보관처리, 분석용 로그 사용, 다른 애플리케이션에 로그 스트리밍, Cloud 함수 트리거 여부 등에 따라 로그를 Cloud Storage, BigQuery 또는 Pub/Sub 등의 대상으로 내보낼 수 있습니다. 로그 내보내기에 대한 상세 설명은 로그 내보내기 개요를 참조하세요.

특정 VM의 상태 변경 로그 보기

특정 관리형 인스턴스의 로그 항목을 보려면 Google Cloud 콘솔, gcloud CLI 또는 REST를 사용합니다.

콘솔

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 쿼리 빌더에서 다음 쿼리를 복사합니다.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
    
  3. 쿼리 실행을 클릭합니다.

gcloud

로그 항목을 열람하고 읽으려면 gcloud logging read 명령어를 사용하세요.

관리형 인스턴스의 상태 변경 로그를 보려면 다음 명령어를 사용합니다.

gcloud logging read 'resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"' \
    --limit 10

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • INSTANCE_NAME: 상태 변경 로그를 확인할 관리형 인스턴스

REST

관리형 인스턴스의 상태 변경 로그를 보려면 entries.list 메서드에 대해 POST 요청을 실행합니다.

curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \
'{"filter":
    "resource.type=gce_instance_group_manager AND
        logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND
        jsonPayload.instanceHealthStateChange:* AND
        labels.\"compute.googleapis.com/instance_name\"=\"INSTANCE_NAME\"",
    "orderBy": "timestamp desc",
    "pageSize": 10,
    "resourceNames": ["projects/PROJECT_ID"]
}' https://logging.googleapis.com/v2/entries:list?alt=json

다음을 바꿉니다.

  • OAUTH2_TOKEN: 애플리케이션의 액세스 토큰. 로컬 테스트의 경우 gcloud auth print-access-token 명령어를 사용하여 토큰을 생성할 수 있습니다.
  • PROJECT_ID: 프로젝트 ID
  • INSTANCE_NAME: 상태 변경 로그를 확인할 관리형 인스턴스

로그 항목의 형식

인스턴스 상태 변경 로그 항목에는 관리형 인스턴스의 상태를 모니터링하고 디버깅하는 데 유용한 정보가 포함되어 있습니다.

로그는 로그 이름이 instance_group_manager_events플랫폼 로그에 기록됩니다. 플랫폼 로그는 문제를 디버깅하고 해결하는 데 도움이 됩니다.

logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events"

상태 변경 로그 항목에는 다음과 같은 유형의 정보가 포함됩니다.

  • 심각도, 프로젝트 ID, MIG 이름 및 ID, 프로젝트 번호, 타임스탬프 등과 같이 대부분의 로그에 표시되는 일반 정보
  • 인스턴스의 상태와 관련된 필드

각 상태 변경 로그 항목 내에서 jsonPayload.instanceHealthStateChange 필드에는 다음 정보가 포함됩니다.

필드 설명
instance 문자열 프로젝트 ID와 인스턴스 이름을 기반으로 한 인스턴스의 URL입니다.
instanceWithId 숫자 프로젝트 ID와 인스턴스 ID를 기반으로 한 인스턴스의 URL입니다.
ipAddress 상태 점검으로 프로브한 인스턴스의 IP 주소입니다.
network 문자열 프로젝트 ID 및 네트워크 이름을 기준으로 하는 이 인스턴스의 네트워크 리소스 URL입니다.
networkWithId 숫자 프로젝트 ID 및 네트워크 ID를 기반으로 하는 해당 인스턴스의 네트워크 리소스 URL입니다.
healthCheck 관리형 인스턴스 그룹에 구성된 상태 점검의 URL입니다.
previousDetailedHealthState 인스턴스의 이전 상태입니다. 가능한 상태 목록은 상태를 참조하세요.
detailedHealthState 인스턴스의 현재 상태입니다. 가능한 상태 목록은 상태를 참조하세요.
notificationTime 상태가 변경된 시점의 타임스탬프입니다.

부울 형식의 로그 필드는 true 값이 있을 때만 표시됩니다. 불리언 필드의 값이 false면 해당 필드는 로그에서 생략됩니다.

로그 필드에는 UTF-8 인코딩이 적용됩니다. UTF-8 문자를 제외하고는 모두 물음표로 대체됩니다.

로그 항목 예시

다음 예시에서는 VM 인스턴스의 상태가 HEALTHY에서 UNHEALTHY로 변경되었음을 보여줍니다.

  {
    "logName": "projects/my-project/logs/compute.googleapis.com%2Finstance_group_manager_events",
    "resource": {
      "type": "gce_instance_group_manager",
      "labels": {
        "instance_group_manager_id": "3138236342290985981",
        "instance_group_manager_name": "my-mig",
        "project_id": "my-project",
        "location": "europe-west3"
      }
    },
    "labels": {
      "compute.googleapis.com/instance_id": "6498902454451155884",
      "compute.googleapis.com/instance_location": "europe-west3-a",
      "compute.googleapis.com/instance_name": "my-mig-a"
    },
    "timestamp": "2019-11-19T15:47:57.127Z",
    "severity": "INFO",
    "jsonPayload": {
      "@type": "type.googleapis.com/compute.InstanceGroupManagerEvent",
      "instanceHealthStateChange": {
        "instance": "projects/my-project/zones/europe-west3-a/instances/my-mig-a",
        "instanceWithId": "projects/123456/zones/europe-west3-a/instances/6498902454451155884",
        "ipAddress": "10.0.0.4",
        "network": "projects/my-project/global/networks/net-1",
        "networkWithId": "projects/123456/global/networks/456",
        "healthCheck": "projects/my-project/global/healthChecks/my-mig-health-check",
        "previousDetailedHealthState": "HEALTHY",
        "detailedHealthState": "UNHEALTHY",
        "notificationTime": "2019-11-19T15:47:56.444Z"
      }
    },
    "receiveTimestamp": "2019-11-19T15:47:57.296439184Z"
  }
  

사용 사례

다음과 같은 모니터링 또는 디버깅 시나리오에서 상태 변경 로그를 사용할 수 있습니다.

  • 시간 경과에 따라 특정 VM 인스턴스 상태가 변하는 빈도 확인
  • MIG에서 인스턴스의 상태 변경을 경험한 빈도 평가
  • 자주 UNHEALTHY 상태가 되는 문제가 있는 VM 인스턴스 식별
  • 자동 복구 시도의 원인 알아보기
  • 특정 VM 인스턴스에서 자동 복구 시도가 성공했는지 확인
  • 자동 복구의 적절한 초기 지연을 결정하여 애플리케이션의 상태 점검 구성을 미세 조정

VM의 상태 변경 모니터링

특정 VM의 상태 변경을 추적하는 측정항목을 만들어서 VM 인스턴스의 상태가 변경되는 빈도를 모니터링할 수 있습니다.

측정항목을 만들고 변경사항을 모니터링하려면 다음을 수행하세요.

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 프로젝트 ID와 인스턴스 이름을 사용하여 쿼리 빌더에 다음 쿼리를 입력합니다.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
    
  3. 쿼리 결과 섹션에서 작업을 클릭한 다음 측정항목 만들기를 클릭합니다.

  4. 로그 측정항목 만들기 페이지에서 다음을 수행합니다.

    1. 측정항목 유형카운터로 설정합니다.
    2. 로그 측정항목 이름을 입력합니다(예: health-mig-xyzq).

      빌드 필터 섹션에는 로그 탐색기의 로그 쿼리가 표시됩니다. 필터에 severity>=WARNING를 추가하여 UNHEALTHYTIMEOUT와 같이 중단을 유발하는 상태만 고려하도록 측정항목의 필터를 구성할 수도 있습니다.

    3. 라벨에서 라벨 추가를 클릭합니다.

    4. 라벨 이름을 입력합니다(예: health_state).

    5. 라벨 유형STRING으로 설정합니다.

    6. 필드 이름jsonPayload.instanceHealthStateChange.detailedHealthState로 설정합니다. 이렇게 하면 서로 다른 상태를 변경할 수 있습니다.

    7. 완료를 클릭하여 라벨을 추가합니다

    8. 측정항목 만들기를 클릭합니다.

  5. 로그 기반 측정항목 페이지로 이동하여 새로 생성된 측정항목을 찾습니다.

  6. 측정항목 행에서 메뉴 를 클릭하고 측정항목 탐색기에서 보기를 선택합니다. 측정항목 탐색기가 열리고 쿼리에 지정한 VM 인스턴스의 상태 변경을 나타내는 그래프가 표시됩니다.

MIG에 있는 모든 VM의 상태 변경 모니터링

관리형 인스턴스의 상태 변경을 추적하는 측정항목을 만들어 모든 관리형 인스턴스의 상태를 모니터링할 수 있습니다.

측정항목을 만들고 변경사항을 모니터링하려면 다음을 수행하세요.

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 프로젝트 ID와 관리형 인스턴스 그룹 이름을 사용하여 쿼리 빌더에 다음 쿼리를 입력합니다.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"
    
  3. 쿼리 결과 섹션에서 작업을 클릭한 다음 측정항목 만들기를 클릭합니다.

  4. 로그 측정항목 만들기 페이지에서 다음을 수행합니다.

    1. 측정항목 유형카운터로 설정합니다.
    2. 로그 측정항목 이름을 입력합니다(예: health-mig-xyzq).
    3. 라벨에서 라벨 추가를 클릭합니다.
    4. 라벨 이름을 입력합니다(예: health_state).
    5. 라벨 유형STRING으로 설정합니다.
    6. 필드 이름jsonPayload.instanceHealthStateChange.detailedHealthState로 설정합니다. 이렇게 하면 서로 다른 상태를 변경할 수 있습니다.
    7. 완료를 클릭하여 라벨을 추가합니다
    8. 측정항목 만들기를 클릭합니다.
  5. 로그 기반 측정항목 페이지로 이동하여 새로 생성된 측정항목을 찾습니다.

  6. 측정항목 행에서 메뉴 를 클릭하고 측정항목 탐색기에서 보기를 선택합니다. 측정항목 탐색기가 열리고 쿼리에 지정한 관리형 인스턴스 그룹의 모든 VM 인스턴스의 상태 변경을 나타내는 그래프가 표시됩니다.

자주 비정상 상태가 되는 VM 식별

MIG에 있는 모든 VM 인스턴스의 상태 변경을 추적하는 측정항목을 만들고 인스턴스별로 측정항목을 그룹화하여 자주 UNHEALTHY 상태가 되는 문제가 있는 VM을 식별할 수 있습니다.

측정항목을 만들고 인스턴스별로 그룹화하려면 다음 안내를 따르세요.

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 프로젝트 ID와 관리형 인스턴스 그룹 이름을 사용하여 쿼리 빌더에 다음 쿼리를 입력합니다.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"
    
  3. 쿼리 결과 섹션에서 작업을 클릭한 다음 측정항목 만들기를 클릭합니다.

  4. 로그 측정항목 만들기 페이지에서 다음을 수행합니다.

    1. 측정항목 유형카운터로 설정합니다.
    2. 로그 측정항목 이름을 입력합니다(예: health-mig-xyzq).
    3. 라벨에서 라벨 추가를 클릭합니다.
    4. 라벨 이름을 입력합니다(예: health_state).
    5. 라벨 유형STRING으로 설정합니다.
    6. 필드 이름jsonPayload.instanceHealthStateChange.detailedHealthState로 설정합니다. 이렇게 하면 서로 다른 상태를 변경할 수 있습니다.
    7. 완료를 클릭하여 라벨을 추가합니다
    8. 마찬가지로 필드 이름jsonPayload.instanceHealthStateChange.instance로 설정하여 두 번째 라벨(예: instance)을 추가합니다.
    9. 측정항목 만들기를 클릭합니다.
  5. 로그 기반 측정항목 페이지로 이동하여 새로 생성된 측정항목을 찾습니다.

  6. 측정항목 행에서 메뉴 를 클릭하고 측정항목 탐색기에서 보기를 선택합니다. 측정항목 탐색기가 열리고 쿼리에 지정한 관리형 인스턴스 그룹의 모든 VM 인스턴스의 상태 변경을 나타내는 그래프가 표시됩니다.

  7. 각 인스턴스의 상태 변경 집계 수를 보려면 그룹화 기준instance로 설정합니다.

상태 변경 집계가 가장 많은 인스턴스가 가장 자주 비정상 상태가 됩니다.

자동 복구 시도의 원인 확인

특정 VM 인스턴스의 repair 작업에 대한 로그를 필터링하여 자동 복구 시도의 원인을 확인할 수 있습니다.

복구 작업을 필터링하려면 다음 안내를 따르세요.

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 프로젝트 ID와 인스턴스 이름을 사용하여 쿼리 빌더에 다음 쿼리를 입력합니다.

    resource.type="gce_instance" AND
    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND
    protoPayload.methodName="compute.instances.repair.recreateInstance" AND
    protoPayload.resourceName=~"/INSTANCE_NAME$"
    
  3. 쿼리 실행을 클릭합니다. 쿼리 결과에는 protoPayload.status.message의 자동 복구 이유가 있는 VM의 모든 자동 복구 시도가 표시됩니다.

VM의 자동 복구 성공 여부 확인

repair 작업의 로그와 VM 인스턴스 이름별 상태 변경을 필터링하여 VM 인스턴스의 자동 복구 시도 성공 여부를 확인할 수 있습니다. 복구 작업 후 인스턴스의 상태가 HEALTHY로 변경되면 해당 상태 변경 로그가 표시됩니다. 다음 단계를 따르세요.

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 프로젝트 ID와 인스턴스 이름을 사용하여 쿼리 빌더에 다음 쿼리를 입력합니다.

    (resource.type="gce_instance" AND
    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND
    protoPayload.methodName="compute.instances.repair.recreateInstance" AND
    protoPayload.resourceName=~"/INSTANCE_NAME$")
    OR
    (resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
    

    쿼리의 첫 번째 부분에는 인스턴스 복구 작업이 표시됩니다. 이는 MIG 자동 복구로 인스턴스를 다시 정상으로 만들기 위해 재생성이 트리거되었음을 나타냅니다. 쿼리의 두 번째 부분에는 VM 인스턴스의 모든 상태 변경사항이 표시됩니다.

    쿼리 결과에서 복구 작업이 자동 복구 시도에 성공한 직후에 detailedHealthStateHEALTHY로 설정된 상태 변경 이벤트입니다.

MIG의 초기 지연 값 확인

VM 인스턴스 상태 로깅을 사용하면 MIG 자동 복구에 적절한 초기 지연 값을 결정하기가 더 쉽습니다. 로그를 사용하여 instances.insert 작업이 완료된 시점과 그룹의 인스턴스 그룹에서 첫 번째 정상 신호가 수신된 시점 사이의 시간을 관찰할 수 있습니다. 이 시간 간격은 인스턴스가 완전히 부팅되는 데 걸리는 시간을 나타냅니다. 일부 VM은 다른 VM보다 느리게 부팅될 수 있으므로 자동 복구 정책에서 초기 지연을 지정할 때 관찰된 초기화 시간 (삽입 작업부터 정상 상태까지)에 여유 시간을 추가하는 것이 좋습니다.

인스턴스 삽입 작업과 정상 상태가 되는 인스턴스 간의 시간을 측정하려면 VM 인스턴스 이름으로 insert 작업 및 상태 변경 로그 쿼리를 실행합니다. 두 작업의 타임스탬프를 사용하여 인스턴스의 초기화 시간을 계산합니다. 다음 단계를 따르세요.

  1. Google Cloud Console의 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 프로젝트 ID와 인스턴스 이름을 사용하여 쿼리 빌더에 다음 쿼리를 입력합니다.

    (resource.type="gce_instance" AND
    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND
    protoPayload.request.@type="type.googleapis.com/compute.instances.insert" AND
    operation.last="true" AND
    protoPayload.resourceName=~"/INSTANCE_NAME$") OR
    (resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
    

    쿼리의 첫 번째 부분에서는 VM 삽입 작업의 완료를 보여줍니다. 두 번째 부분은 VM의 모든 상태 변경사항을 보여줍니다.

    쿼리 결과에서 삽입 작업이 완료된 직후 detailedHealthStateHEALTHY로 설정된 상태 변경 이벤트의 타임스탬프는 이 VM이 부팅되는 데 필요한 시간을 표시합니다.

  3. 초기 지연 매개변수의 보다 나은 근사치를 얻기 위해 몇 개의 VM에 이 단계를 반복합니다.