보고를 위해 서버 사용량 확인

GCP Console에서 사용할 수 있는 Stackdriver Logging 도구를 통해 이전 서버 사용량 데이터를 볼 수 있습니다. 이를 통해 특정 노드의 VM이 물리적 서버에 배치되는 각각의 경우를 보고 물리적 서버 ID를 가져올 수 있으므로 유용할 수 있습니다.

시작하기 전에

Stackdriver Logging에서 물리적 서버 사용량을 보려면 처음부터 데이터를 수집할 수 있도록 단독 테넌트 노드에서 VM을 실행하기 전에 먼저 Stackdriver Logging API를 사용 설정해야 합니다. 로깅을 사용 설정하지 않고 이미 VM을 실행한 경우에도 서비스를 계속 사용 설정할 수 있지만 로깅이 사용 설정된 시점부터 수집된 데이터에만 액세스할 수 있습니다.

Stackdriver Logging API 사용 설정

서버 ID 가져오기

단독 테넌트 노드의 물리적 서버 ID를 가져오려면 다음 안내를 따르세요.

  1. GCP Console에서 Stackdriver Logging > 로그(로그 뷰어) 페이지로 이동합니다.

    로그 뷰어 페이지로 이동

  2. 메시지가 표시되면 기존 GCP 프로젝트를 선택합니다.

  3. 첫 번째 드롭다운 메뉴에서 GCE VM 인스턴스를 선택합니다.

  4. 세 번째 드롭다운 메뉴에서 결과를 제한하도록 시간 제한을 선택합니다.

  5. 텍스트 필드에 text:NotifyInstanceLocation을 입력합니다.

    필터링 결과 스크린샷

  6. 각 항목의 결과를 확장하고 serverId를 찾습니다. serverId는 단독 테넌트 노드를 지원하는 물리적 머신의 고유 식별자입니다. n1-node-96-624 노드 유형을 지원하는 물리적 서버에는 56개의 물리적 코어가 있습니다.

    서버 ID 스크린샷

BigQuery에 라이선스 데이터 내보내기

코어당 또는 소켓당 사용량을 확인하기 위해 시스템 이벤트 정보를 BigQuery 데이터세트에 내보낼 수 있습니다.

  1. 첫 번째 드롭다운 메뉴에서 GCE VM 인스턴스가 선택되어 있는지 확인합니다.
  2. 로그 뷰어 페이지 상단에서 내보내기 만들기를 클릭합니다.
  3. 싱크 이름을 입력하고 BigQuery를 싱크 서비스로 선택하고 BigQuery 데이터세트를 선택하여 데이터 싱크를 만듭니다.

만들어진 데이터 싱크는 모든 후속 감사 로깅 활동을 수신합니다. 즉, BigQuery가 서버 사용량에 대한 미래의 모든 데이터를 수신합니다. BigQuery 통합을 설정하기 전의 데이터에는 액세스할 수 없습니다.

BigQuery에서 서버 사용량을 식별하기 위한 샘플 쿼리

이 섹션에서는 BigQuery에서의 쿼리 실행에 익숙하다고 가정합니다.

cloudaudit_googleapis_com_activity_[DATE] 테이블에서 다음 쿼리와 함께 커스텀 이미지를 사용하여 인스턴스 목록을 식별합니다.

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT resource.labels.instance_id, resource.labels.project_id, resource.labels.zone, disks.initializeparams.sourceimage
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%'

그런 다음 VM 인스턴스를 사용하여 다음 쿼리를 통해 각 인스턴스의 호스트를 식별할 수 있습니다.

-- QUERY TO IDENTIFY ALL SERVER IDs USED BY A PROJECT
SELECT protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
GROUP BY 1,2

공동 쿼리 예시:

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT
resource.labels.instance_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid as server_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores,
2 AS physical_sockets
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
WHERE resource.labels.instance_id IN (
SELECT resource.labels.instance_id
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%')
GROUP BY 1,2,3
ORDER BY 1 ASC,3 ASC;

각 항목의 의미는 다음과 같습니다.

  • [MY_BYOL_PROJECT_SINK_NAME]은 만든 데이터 싱크의 이름입니다.
  • [BYOL_IMAGE_NAME]은 자체 라이선스를 가져오는 데 사용된 이미지의 이름입니다.

날짜를 선택하기 위해 와일드 카드를 사용하는 방법과 BigQuery에서 Cloud 감사 로그를 쿼리하는 데 유용한 기타 힌트는 Cloud 감사 로그 문서를 참조하세요.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서