자동 확장 처리 로그 보기

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

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

  • 인스턴스 그룹 크기 조절. 자동 확장 처리에서 인스턴스 그룹의 크기를 조절하는 경우 자동 확장 처리 로그에서 크기 조절이 설명됩니다.
  • 자동 확장 처리 상태 변경: 예를 들어 자동 확장 처리가 예상대로 작동하다가 문제가 발생한 경우 자동 확장 처리 로그에서 상태 변경사항이 설명됩니다. 이러한 일반적인 상태 메시지 중 일부는 자주 반환되는 상태 메시지 섹션에서 설명합니다.

시작하기 전에

  • 자동 확장 문서를 읽어봅니다.
  • 로그를 확인할 활성 상태의 자동 확장 처리를 준비합니다.
  • 로그 뷰어를 사용하는 방법을 검토합니다.

자동 확장 처리 로그 보기

자동 확장 처리 로그를 보려면 Google Cloud Console, gcloud 명령줄 도구 또는 Stackdriver Logging API를 사용합니다.

Console

  1. 로그 뷰어 페이지로 이동합니다.

    로그 뷰어 페이지로 이동

  2. 리소스 드롭다운 메뉴를 풀다운하여 GCE 자동 확장 처리를 선택합니다.
  3. 그 다음 전체 로그 드롭다운을 확장하고 자동 확장 처리를 선택하여 자동 확장 관련 로그를 봅니다.

gcloud

gcloud 도구에서 베타 logging read 명령어를 실행하여 자동 확장과 관련된 로그(예: 활동감사 로그)를 모두 찾을 수 있습니다. 예를 들면 다음과 같습니다.

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

항목을 자동 확장 처리 크기 조절 작업 관련 로그로만 제한하려면 logName 매개변수를 지정하고 jsonPayload.newSize 필드를 기준으로 필터링합니다. logName을 다음과 같이 설정합니다.

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

예를 들면 다음과 같습니다.

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.newSize:*' \
    --limit 10 --format json

자동 확장 처리 상태 변경사항을 확인하려면 logName 매개변수를 사용하고 jsonPayload.new_status 필드를 기준으로 필터링합니다. logName을 다음과 같이 설정합니다.

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

예:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.new_status:*' \
    --limit 10 --format json

API

Logging V2 API에 요청을 수행합니다. 요청 본문에는 로그를 검색할 때 사용할 filter 매개변수와 로그를 보려는 project가 포함되어 있어야 합니다. 예를 들어 크기 조절 작업 목록을 가져오는 요청은 다음과 같습니다.

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

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_size:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

상태 변경사항 목록을 가져오는 요청은 다음과 같습니다.

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

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_status:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

크기 조절 로그

크기 조절 작업 관련 로그에서는 인스턴스 그룹의 이전 크기와 새 크기에 대한 정보를 제공합니다. 이러한 로그 항목은 JSON 페이로드에서 다음과 같은 필드를 통해 식별할 수 있습니다.

jsonPayload.new_size
jsonPayload.old_size

예를 들어 다음 항목에서 로그는 크기가 8인 이전 인스턴스 그룹에서 크기가 10인 새 인스턴스 그룹으로 변경된 것을 설명합니다.

{
"insertId": "1l68z7sg4jw7kzo",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_size": 10,
  "old_size": 8,
  "project_id": "myproject",
  "zone_name": "europe-west1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T16:12:08.294439822Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "europe-west1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T16:12:07.715125478Z"

}

로그에 나와 있는 각 필드에 대한 설명은 다음과 같습니다.

속성
insertId 로그 항목의 고유 식별자입니다.
jsonPayload JSON 객체로 표현되는 구조인 로그 항목 페이로드입니다.
new_size 이 그룹을 자동 확장한 후의 새 크기입니다. 그룹의 크기가 확장된 경우 새 크기는 이전 크기보다 큽니다. 크기가 축소된 경우 새 크기는 이전 크기보다 작습니다.
old_size 변경하기 전 이 그룹의 이전 크기입니다.
instance_group_name 이 로그 항목이 적용되는 관리형 인스턴스 그룹의 이름입니다.
project_id 인스턴스 그룹의 프로젝트 ID입니다. 항상 현재 프로젝트의 ID여야 합니다.
autoscaler_name 이 작업을 담당하는 자동 확장 처리의 이름입니다.
zone_name 자동 확장 처리 및 인스턴스 그룹의 영역입니다.
resource 자동 확장 처리에 대한 세부정보입니다.
type 리소스의 유형입니다. 자동 확장 처리의 경우 이 필드는 항상 gce_autoscaler입니다.
labels 자동 확장 처리와 관련한 메타데이터입니다.
location 자동 확장 처리의 영역입니다.
autoscaler_id 자동 확장 처리의 ID로, 서버에서 생성하는 숫자 값입니다.
project_id 자동 확장 처리가 속한 프로젝트의 프로젝트 ID입니다.
timestamp 로그 항목에서 설명하는 이벤트가 발생한 시간입니다. RFC 3339 UTC 'Zulu' 형식의 타임스탬프로, 정밀도는 나노초 수준입니다.
severity 이 로그의 중요도입니다. 자동 확장 처리 로그의 경우 항상 "INFO"입니다.
logName 이 로그 항목이 속한 로그의 리소스 이름입니다. 자동 확장 처리 크기 조절 로그의 경우 항상 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler입니다.
receiveTimestamp 로그 항목을 Stackdriver Logging에서 수신한 시간입니다. RFC 3339 UTC 'Zulu' 형식의 타임스탬프로, 정밀도는 나노초 수준입니다.

상태 변경 로그

자동 확장 처리의 상태가 변경되면 Compute Engine은 이 상태 변경사항을 캡처하는 로그 항목을 만듭니다. 이러한 로그 항목은 JSON 페이로드에서 다음과 같은 필드를 통해 식별할 수 있습니다.

jsonPayload.old_status
jsonPayload.new_status

예를 들어 다음 항목은 상태가 OK에서 새로운 상태로 변경되었음을 설명합니다.

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

이 상태 메시지를 사용하여 자동 확장 처리가 예상대로 작동하지 않는 이유를 확인하거나 이전에 확인한 문제를 디버깅할 수 있습니다. 이 경우에는 새 상태 메시지를 보고 부하 분산 구성이 제대로 설정되어 있는지 확인할 수 있습니다.

{
"insertId": "ivho6kg4icqfio",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_status": {
    "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."
  },
  "old_status": {
    "details": "OK"
  },
  "project_id": "myproject",
  "zone_name": "us-east1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T15:11:58.076196762Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "us-east1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T15:11:57.619997893Z"

}

로그에 나와 있는 각 필드에 대한 설명은 다음과 같습니다.

속성
insertId 로그 항목의 고유 식별자입니다.
jsonPayload JSON 객체로 표현되는 구조인 로그 항목 페이로드입니다.
new_status 자동 확장 처리의 새 상태입니다. 일부 자주 반환되는 상태 메시지를 참조하세요.
old_status 변경하기 전 자동 확장 처리의 이전 상태입니다.
instance_group_name 이 로그 항목이 적용되는 관리형 인스턴스 그룹의 이름입니다.
project_id 인스턴스 그룹의 프로젝트 ID입니다.
autoscaler_name 이 작업을 담당하는 자동 확장 처리의 이름입니다.
zone_name 자동 확장 처리 및 인스턴스 그룹의 영역입니다.
resource 자동 확장 처리에 대한 세부정보입니다.
type 리소스의 유형입니다. 자동 확장 처리의 경우 이 필드는 항상 gce_autoscaler입니다.
labels 자동 확장 처리와 관련한 메타데이터입니다.
location 자동 확장 처리의 영역입니다.
autoscaler_id 자동 확장 처리의 ID로, 서버에서 생성하는 숫자 값입니다.
project_id 자동 확장 처리가 속한 프로젝트의 프로젝트 ID입니다. 항상 현재 프로젝트입니다.
timestamp 로그 항목에서 설명하는 이벤트가 발생한 시간입니다. RFC 3339 UTC 'Zulu' 형식의 타임스탬프로, 정밀도는 나노초 수준입니다.
severity 이 로그의 중요도입니다. 자동 확장 처리 로그의 경우 항상 "INFO"입니다.
logName 이 로그 항목이 속한 로그의 리소스 이름입니다. 상태 변경 로그의 경우 항상 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler입니다.
receiveTimestamp 로그 항목을 Stackdriver Logging에서 수신한 시간입니다. RFC 3339 UTC 'Zulu' 형식의 타임스탬프로, 정밀도는 나노초 수준입니다.

다음 단계