VM Manager 데이터 보기

이 주제에서는 VM의 런타임 정보를 볼 수 있도록 Cloud 애셋 인벤토리와 VM Manager의 OS 인벤토리를 구성하는 방법을 설명합니다.

시작하기 전에

시작하기 전에 다음 단계를 완료하세요.

  1. API 명령어를 실행할 프로젝트에서 Cloud 애셋 인벤토리 API를 사용 설정합니다.
    Cloud 애셋 인벤토리 API 사용 설정

  2. API 또는 gcloud 도구를 사용하여 Cloud 애셋 인벤토리 API를 호출하기 위해 필요한 권한을 구성합니다.

  3. 다음 단계에 따라 환경 설정을 완료합니다.

    gcloud

    gcloud 도구를 사용하여 Cloud 애셋 인벤토리 API를 호출하는 환경을 설정하려면 로컬 클라이언트에 Cloud SDK를 설치합니다.

    API

    Unix curl 명령어로 Cloud 애셋 인벤토리 API를 호출하도록 환경을 설정하려면 다음 단계를 완료합니다.

    1. Google OAuth 시스템과 상호작용할 수 있도록 로컬 머신에 oauth2l을 설치합니다.
    2. Unix curl 명령어에 대한 액세스 권한이 있는지 확인하세요.
    3. 프로젝트, 폴더 또는 조직에서 다음 역할 중 하나를 계정에 부여했는지 확인합니다.

      • Cloud 애셋 뷰어 역할(roles/cloudasset.viewer)
      • 소유자 기본 역할(roles/owner)

OS 인벤토리 사용 설정

VM Manager 제품군의 일부인 OS 인벤토리를 사용 설정하려면 VM Manager 설정의 관련 단계를 완료합니다.

권한 설정

계정에 내보낼 애셋이 포함된 루트 리소스에 대한 cloudasset.assets.exportOSInventories 권한이 있는지 확인합니다. 이 권한을 개별적으로 부여할 수도 있고, 루트 리소스에 다음 역할 중 하나를 부여할 수도 있습니다.

  • Cloud 애셋 뷰어 역할(roles/cloudasset.viewer)
  • Cloud 애셋 소유자 역할(roles/cloudasset.owner)

권한 구성Cloud 애셋 인벤토리 IAM 역할에 대해 자세히 알아보세요.

BigQuery로 VM Manager 데이터 내보내기

지정된 타임스탬프에 OS 인벤토리 스냅샷을 내보내려면 다음 단계를 완료하세요.

gcloud

BIGQUERY_TABLE.

  gcloud asset export \
     --content-type os-inventory \
     --project 'PROJECT_ID' \
     --snapshot-time 'SNAPSHOT_TIME' \
     --bigquery-table 'BIGQUERY_TABLE' \
     --output-bigquery-force

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

  • PROJECT_ID는 메타데이터를 내보내는 프로젝트의 ID입니다. 이 프로젝트는 내보내기를 실행 중인 프로젝트이거나 다른 프로젝트일 수 있습니다.
  • SNAPSHOT_TIME (선택사항)은 애셋의 스냅샷을 만들려는 시간입니다. 값은 현재 시간 또는 과거 시간이어야 합니다. 기본적으로 현재 시간으로 스냅샷을 찍습니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.
  • BIGQUERY_TABLE은 메타데이터를 내보내는 테이블이며 projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME 형식입니다.
  • --output-bigquery-force는 대상 테이블을 덮어씁니다.

조직 또는 폴더의 애셋을 내보내려면 --project 대신 다음 플래그 중 하나를 사용합니다.

API

gcurl -d '{"contentType":"OS_INVENTORY", \
  "outputConfig":{ \
    "bigqueryDestination": { \
      "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",\
      "table": "TABLE_NAME", \
      "force": true \
    } \
  }}' \
  https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

exportAssets 메서드에 대해 자세히 알아보세요.

Cloud Storage로 VM Manager 데이터 내보내기

VM 인스턴스의 VM Manager 인스턴스 인벤토리를 내보내려면 다음 gcloud 도구 명령어를 실행합니다.

gcloud

gcloud asset export \
 --content-type os-inventory \
 --project PROJECT_ID \
 --output-path "gs://YOUR_BUCKET/NEW_FILE"

API

gcurl -d '{"contentType":"OS_INVENTORY", "outputConfig":{ \
          "gcsDestination": {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \
          https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets

exportAssets 메서드에 대해 자세히 알아보세요.

VM Manager 데이터 기록 가져오기

Cloud Asset API를 사용하여 특정 기간 내에 프로젝트에서 지정된 애셋의 만들기, 삭제, 업데이트 내역을 가져오려면 아래 프로세스를 따르세요.

gcloud

프로젝트에서 지정된 애셋의 모든 OS 인벤토리 기록을 가져오려면 다음 명령어를 실행합니다.

YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday")
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ")
gcloud asset get-history --project='PROJECT_ID' \
  --asset-names='//compute.googleapis.com/projects/my_project_number/global/instances/instancel' --start-time=$YESTERDAY \
  --end-time=$NOW \
  --content-type='os-inventory'
 

API

이 섹션에 표시된 명령어는 프로젝트 기록을 가져옵니다. 조직 기록을 가져오려면 gcurl 명령어에 https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:batchGetAssetsHistory REST 메서드를 사용합니다.

  1. 계정 구성을 완료하여 Cloud Asset API를 호출할 수 있는지 확인합니다.
  2. 내역을 확인하려는 애셋의 전체 리소스 이름을 결정합니다. Cloud Asset API 형식의 이름 목록은 여기를 참조하세요. 다음 예시는 //compute.googleapis.com/projects/my_project_number/global/instances/instancel을 사용합니다.
  3. RFC 3339 UTC 형식으로 되어 있는 기간의 시작 시간과 종료 시간을 결정합니다. 시작 시간만 필요합니다. 자세한 내용은 TimeWindow를 참조하세요.
  4. 애셋 내역을 가져올 수준을 결정합니다. 다음 예시 명령어는 다양한 종류의 애셋 내역을 가져오는 방법을 보여줍니다.

액세스 토큰을 가져오려면 ~/credentials.json 파일로 다음 명령어를 실행합니다.

oauth2l header --json ~/credentials.json cloud-platform

다음과 비슷한 출력이 표시되어야 하며 액세스 토큰으로 y29.xxxxxx를 가지고 있어야 합니다.

Authorization: Bearer y29.xxxxxxx

TOKEN 변수를 액세스 토큰에 설정합니다.

TOKEN=y29.xxxxxxx

프로젝트에서 지정된 애셋의 모든 OS 인벤토리 기록을 가져오려면 다음 명령어를 실행합니다.

YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday")
curl -X POST  -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"contentType":"OS_INVENTORY", \
          "assetNames": \
            "//compute.googleapis.com/projects/my_project_number/global/instances/instancel", \
          "readTimeWindow": {"startTime": "'$YESTERDAY'"}}' \
     https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory

batchGetAssetsHistory 메서드에 대해 자세히 알아보세요.

VM Manager 데이터의 변경사항 모니터링

gcloud

Windows OS가 설치된 VM을 모니터링하기 위해 gcloud asset feeds create 명령어를 사용하여 피드를 만들려면 다음 명령어를 실행합니다.

gcloud asset feeds create FEED_ID --project=PROJECT_ID \
--content-type=os-inventory --asset-types="compute.googleapis.com/Instance" \
--pubsub-topic="TOPIC_NAME" --condition-title="CONDITION_TITLE" \
--condition-description="CONDITION_DESCRIPTION" \
--condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == 'windows'"

API

Windows OS가 설치된 VM을 모니터링하기 위해 feeds.create() API를 사용하여 피드를 만들려면 다음 명령어를 실행합니다.

curl -H "Authorization: Bearer $TOKEN" \\
    -H "Content-Type: application/json" -X POST \\
    -d '{"feedId": "FEED_ID",
         "feed": { "assetTypes": ["compute.googleapis.com/Instance"],
         "contentType": "OS_INVENTORY",
         "feedOutputConfig": {"pubsubDestination": {"topic":"TOPIC_NAME"}},
         "condition": {"title": "CONDITION_TITLE",
         "description": "CONDITION_DESCRIPTION",
         "expression": "temporal_asset.asset.os_inventory.os_info.short_name == 'windows'"}}}' \\
    https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/feeds

자세한 내용은 여기에서 확인해 보세요.