자동 확장 처리 로그 보기


자동 확장을 사용 설정하면 자동 확장 처리는 개발자가 지정하는 옵션에 따라 확장 결정을 내립니다. 각 확장 결정은 Cloud Logging에 의해 로깅됩니다. 자동 확장 처리의 확장 결정을 명확하게 이해하려면 로그 탐색기에서 이러한 로그를 읽어보세요.

로그 탐색기를 사용하여 다음과 관련된 이벤트를 볼 수 있습니다.

  • 관리형 인스턴스 그룹(MIG) 크기 조정을 위한 자동 확장 처리 권장사항. 자동 확장 처리가 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

자동 확장 처리 로그 보기

자동 확장 처리 로그를 보려면 Google Cloud 콘솔, gcloud CLI 또는 REST를 사용합니다.

콘솔

자동 확장을 설정한 경우 Google Cloud 콘솔에서 자동 확장 로그를 볼 수 있습니다.

  1. 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

  2. 리소스 드롭다운 메뉴를 풀다운하여 자동 확장 처리를 선택합니다.

MIG에서 다음과 같이 로그 탐색기 페이지로 이동할 수도 있습니다.

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 로그를 보려는 MIG 이름을 클릭합니다.

  3. 모니터링 탭을 클릭합니다.

  4. 모니터링 탭에서 로그 패널은 페이지 아래에 있습니다. 이 패널 끝에 있는 아이콘을 클릭하여 패널을 엽니다.

  5. 로그 탐색기 페이지를 열려면 이 패널에서 로그 탐색기에서 보기 아이콘을 클릭합니다. MIG의 모든 자동 확장 처리 로그를 가져오도록 로그 탐색기가 기본 쿼리로 열립니다.

gcloud

자동 확장과 관련된 모든 로그를 조회하려면 logging read 명령어를 사용합니다. 예를 들면 다음과 같습니다.

gcloud logging read "resource.type=autoscaler" --limit 10 \
    --format json

특정 MIG의 자동 확장 처리 로그를 보려면 다음과 같이 instance_group_manager_name을 지정합니다.

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm" \
    --limit 10 --format json

자동 확장 처리 크기 조절 작업과 관련된 로그 항목을 보려면 compute.autoscalers.resize 메서드 이름을 지정합니다.

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.resize" \
    --limit 10 --format json

자동 확장 처리 상태 변경사항과 관련된 로그 항목을 보려면 compute.autoscalers.changeStatus 메서드 이름을 지정합니다.

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.changeStatus" \
    --limit 10 --format json

REST

Logging V2 API에 요청을 수행합니다. 요청 본문에는 로그를 검색할 때 사용할 filter 매개변수와 로그를 보려는 project가 포함되어 있어야 합니다. 예를 들어 특정 MIG의 크기 조절 작업 목록을 가져오는 요청을 수행하려면 다음 안내를 따르세요.

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.resize",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

특정 MIG의 상태 변경사항 목록을 가져오는 요청을 수행하려면 다음 안내를 따르세요.

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.changeStatus",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

로그 항목 크기 조절

자동 확장 처리가 MIG에 대해 권장 크기를 계산하면 Compute Engine이 신규 및 기존 권장 크기를 캡처하여 로그 항목을 만듭니다. 영역 MIG의 경우 로그 항목에 권장 크기 변경 이유도 캡처됩니다.

다음은 영역 MIG의 로그 항목 예시입니다. 이 예시에서는 예측적인 자동 확장을 기반으로 자동 확장 처리가 3개의 VM을 계산하여 35%의 CPU 활용률 목표를 달성했습니다. 하지만 자동 확장 정책에 구성된 최대 인스턴스 수는 2개뿐입니다. 따라서 자동 확장 처리가 권장 크기를 2로 제한합니다.

    {
    insertId: "1l68z7sg4jw7kzo"
    logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload: {
      @type: "type.googleapis.com/google.cloud.audit.AuditLog"
      metadata: {
        @type: "type.googleapis.com/autoscaler.AutoscalerSizeChangeExplanation"
        autoscalingMode: "ON"
        autoscalingReason: {
          scalingLimit: {
            limitPolicy: {
              maxNumReplicas: 2
            }
            limitSize: 2
            name: "MAX_INSTANCES"
          }
          scalingSignal: {
            calculatedSize: 3
            calculationDetails: {
              servingSize: 1
              signalTarget: 0.35
              signalValue: 1.03533
            }
            name: "PREDICTED_CPU_UTILIZATION"
            signalPolicy: {
              coolDownPeriodSec: 15
              cpuUtilization: {
                predictiveMethod: "OPTIMIZE_AVAILABILITY"
                utilizationTarget: 0.35
              }
            }
          }
          summary: "The autoscaler's recommended size changed from 1 to 2
          because the autoscaler predicted that in 15 seconds the average CPU
          utilization across 1 serving instance will be 103.533%, which is above
          the utilization target of 35%. The calculated size was 3 to achieve
          the target CPU utilization but the size was limited by the maximum
          number of instances set in the autoscaling policy."
        }
        newSize: 2
        oldSize: 1
      }
      methodName: "compute.autoscalers.resize"
      resourceName: "projects/example-project/zones/us-east1-d/autoscalers/example-autoscaler"
      serviceName: "compute.googleapis.com"
    }
    receiveTimestamp: "2022-06-13T22:34:43.045973046Z"
    resource: {
      labels: {
        autoscaler_id: "1234567890123456789"
        autoscaler_name: "example-autoscaler"
        instance_group_manager_id: "1357908642148074125"
        instance_group_manager_name: "example-igm"
        location: "us-east1-d"
        project_id: "example-project"
      }
      type: "autoscaler"
    }
    severity: "INFO"
    timestamp: "2022-06-13T22:34:42.810216614Z"
    }

다음 표에서는 로그 항목의 필드를 설명합니다.

속성
autoscalingMode 항목이 기록된 시간의 자동 확장 모드입니다. 모드에 관계없이 자동 확장 처리가 로그에서 newSize로 표시되는 권장 크기를 계산합니다. 자동 확장 모드에 따라 자동 확장 처리가 MIG를 다음과 같이 크기 조절합니다.
  • ON: 자동 확장 처리가 MIG를 newSize로 크기 조절합니다.
  • OFF: 자동 확장 처리가 MIG를 크기 조절하지 않습니다.
  • ONLY_SCALE_OUT: newSize가 MIG의 대상 크기보다 큰 경우에만 자동 확장 처리가 MIG를 크기 조절합니다.
autoscalingReason 자동 확장 이유에 대한 세부정보입니다. 이 필드는 영역 MIG에만 표시됩니다.
autoscalingReason.scalingLimit 자동 확장 신호에 따라 자동 확장 처리로 계산된 크기인 calculatedSize를 제한한 자동 확장 기능에 대한 세부정보입니다. calculatedSize를 제한할 수 있는 자동 확장 기능은 최대 또는 최소 인스턴스 수, 수평 축소 제어, 안정화 기간입니다. calculatedSize에 제한이 적용되지 않으면 scalingLimit 필드가 로그에 표시되지 않습니다.
autoscalingReason.scalingLimit.limitPolicy calculatedSize를 제한한 자동 확장 기능의 구성입니다. 안정화가 자동 확장의 기본 기능이기 때문에 안정화로 calculatedSize가 제한되는 경우 limitPolicy 필드가 설정되지 않습니다.
autoscalingReason.scalingLimit.limitSize calculatedSize를 제한한 자동 확장 기능을 기반으로 하는 VM 수입니다.
autoscalingReason.scalingLimit.name calculatedSize를 제한한 자동 확장 기능의 이름입니다.
autoscalingReason.scalingSignal MIG에 필요한 VM 수를 계산하는 데 사용되는 자동 확장 신호에 대한 세부정보입니다. 자동 확장 정책에 여러 신호가 포함된 경우 자동 확장 처리는 가장 많은 수의 VM이 필요한 신호를 고려합니다.
autoscalingReason.scalingSignal.calculatedSize 자동 확장 신호를 기반으로 MIG에 필요한 VM 수입니다. scalingLimit가 적용되는 경우 자동 확장 처리가 calculatedSizescalingLimit.limitSize로 제한합니다.
autoscalingReason.scalingSignal.calculationDetails calculatedSize를 결정하는 데 사용되는 세부정보입니다.
  • servingSize: 초기화 기간에 있는 VM을 제외하고 MIG에 있는 VM 수입니다.
  • signalTarget: CPU 사용률(실시간), 예상 CPU 사용률, 부하 분산 사용률, 사용률 목표로 구성된 측정항목에 대해 자동 확장 처리가 유지관리하는 목표 값입니다.
  • singleInstanceAssignment: 확장이 수행할 총 작업량을 나타내는 측정항목 값을 기반으로 하는 경우 singleInstanceAssignment는 각 VM이 처리할 수 있는 작업 수량입니다.
  • signalValue: 자동 확장 신호의 값입니다. signalTarget이 설정된 경우 자동 확장 처리가 signalValuesignalTarget과 비교하여 calculatedSize로 표시되는 필요한 VM 수를 계산합니다.
autoscalingReason.scalingSignal.name 자동 확장 처리에서 로그에 calculatedSize로 표시되는 VM 수를 계산하는 데 기반으로 사용된 자동 확장 신호의 이름입니다.
autoscalingReason.scalingSignal.signalPolicy 자동 확장 처리에서 calculatedSize를 결정하는 데 기반으로 사용된 자동 확장 신호의 구성입니다.
autoscalingReason.summary 자동 확장 이유에 대한 설명입니다.
newSize MIG의 현재 권장 크기입니다. 자동 확장 처리는 autoscalingMode에 따라 다음과 같이 MIG를 newSize로 크기 조절합니다.
  • ON: 자동 확장 처리가 MIG를 newSize로 크기 조절합니다.
  • OFF: 자동 확장 처리가 MIG를 크기 조절하지 않습니다.
  • ONLY_SCALE_OUT: newSize가 MIG의 대상 크기보다 큰 경우에만 자동 확장 처리가 MIG를 크기 조절합니다.
oldSize MIG의 이전 권장 크기입니다.

로그 항목에서 다른 필드에 대한 자세한 내용은 감사 로그 항목의 형식을 참조하세요.

상태 변경 로그 항목

자동 확장 처리의 상태가 변경되면 Compute Engine은 이전 및 신규 상태 메시지를 캡처하는 로그 항목을 만듭니다. 이 상태 메시지를 사용하여 자동 확장 처리가 예상대로 작동하지 않는 이유를 확인하거나 이전에 확인한 문제를 디버깅할 수 있습니다. 일반적인 상태 메시지에 대해서는 일반적으로 반환되는 상태 메시지를 참조하세요.

protoPayload에서 다음 필드는 이전 및 신규 상태를 기술합니다.

  • metadata.newStatus.details: 자동 확장 처리의 신규 상태입니다.
  • metadata.oldStatus.details: 자동 확장 처리의 이전 상태입니다.

다음은 상태 변경을 기술하는 로그 항목의 예시입니다. 이 예시에서는 새 상태 메시지를 보고 부하 분산 구성이 제대로 설정되어 있는지 확인할 수 있습니다.

    {
      insertId: "ivho6kg4icqfio"
      logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload: {
        metadata: {
          @type: "type.googleapis.com/autoscaler.AutoscalerStatusChange"
          newStatus: {
            details: "The autoscaler is configured to scale based on a load
            balancing signal but the instance group has not received any
            utilization data from the load balancer or the utilization is
            constantly 0. Check that the load balancing configuration is
            working"
          }
          oldStatus: {
            details: "OK"
          },
          methodName: "compute.autoscalers.changeStatus"
          resourceName: "projects/example-project/zones/us-east1-b/autoscalers/example-autoscaler"
          serviceName: "compute.googleapis.com"
        }
        receiveTimestamp: "2022-06-08T03:54:12.332329320Z"
        resource: {
          labels: {
            autoscaler_id: "1234567890123456789"
            autoscaler_name: "example-autoscaler"
            instance_group_manager_id: "1357908642148074125"
            instance_group_manager_name: "example-igm"
            location: "us-east1-b"
            project_id: "example-project"
          }
          type: "autoscaler"
        }
        severity: "INFO"
        timestamp: "2022-06-08T03:54:10.675416812Z"
      }
    }

로그 항목에서 다른 필드에 대한 자세한 내용은 감사 로그 항목의 형식을 참조하세요.

다음 단계