Memantau penggunaan node tenant tunggal dan VM untuk pelaporan lisensi


Jika Anda menggunakan lisensi sendiri untuk sistem operasi seperti Windows Server, kewajiban kontrak mungkin mengharuskan Anda memantau dan melaporkan jumlah instance VM, server fisik, dan core CPU fisik yang menggunakan lisensi ini.

Artikel ini menjelaskan cara menggunakan alat open source License Tracker untuk memantau jumlah instance VM, server fisik, dan core CPU fisik yang Anda gunakan, serta cara memvisualisasikan hasilnya menggunakan Looker Studio.

Alat License Tracker berfungsi dengan menganalisis log audit Compute Engine untuk menentukan penempatan setiap instance VM. Penempatan menjelaskan periode waktu saat instance VM berjalan di server fisik tertentu. Setiap kali VM dimigrasikan dari satu server fisik ke server fisik lain akan menandai akhir dari satu penempatan dan memulai penempatan lainnya.

Sebagai contoh, bayangkan instance VM yang dimulai, dan beberapa bulan kemudian dihentikan lagi. Pada titik tertentu selama runtime-nya, VM akan otomatis dimigrasikan dari Server 1 ke Server 2 dan kemudian kembali ke Server 1 lagi. Histori ini terkait dengan 3 penempatan:

Beberapa penempatan

Saat pertama kali dijalankan, alat License Tracker akan menganalisis penggunaan Compute Engine selama 90 hari terakhir dan menulis hasilnya ke BigQuery. Pada proses berikutnya, alat ini akan menganalisis delta antara proses terakhir dan hari ini, serta memperbarui set data BigQuery.

Alat License Tracker menggantikan fitur pelaporan penggunaan yang disediakan oleh Desktop IAP.

Biaya

Panduan ini menggunakan komponen Google Cloud yang dapat dikenakan biaya, termasuk:

Gunakan kalkulator harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.

Men-deploy alat License Tracker

Bagian ini menjelaskan cara menyiapkan Cloud Run dan Cloud Scheduler untuk menjalankan alat License Tracker secara otomatis satu kali sehari.

Diagram berikut menggambarkan solusi yang dijelaskan dalam artikel ini:

  • Alat License Tracker di-deploy di Cloud Run dan dikonfigurasi untuk menganalisis log dari satu atau beberapa project.
  • Sekali sehari, Cloud Scheduler memicu tugas Cloud Run, yang menyebabkan alat License Tracker memperbarui set data BigQuery.
  • Dasbor Looker Studio memvisualisasikan data dari BigQuery dan menyediakannya bagi pengguna.

Arsitektur

Buat project

Untuk menyiapkan Cloud Run dan Cloud Scheduler, buat project baru:

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.

    Enable the APIs

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  7. Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.

    Enable the APIs

Men-deploy aplikasi

Sekarang Anda men-deploy alat License Tracker ke Cloud Run:

  1. Di konsol Google Cloud, buka Cloud Shell dengan mengklik tombol Aktifkan Cloud Shell Aktifkan Cloud Shell..

    Buka konsol Google Cloud.

  2. Tetapkan variabel lingkungan untuk memuat project ID Anda:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Anda.

  3. Setel region Cloud Run yang akan di-deploy ke:

    gcloud config set run/region REGION
    

    Ganti REGION dengan region yang mendukung Cloud Run dan Cloud Scheduler.

  4. Buat akun layanan untuk alat tersebut:

    SERVICE_ACCOUNT=$(gcloud iam service-accounts create license-tracker \
      --display-name "License Tracker" \
      --format "value(email)")
    
  5. Izinkan layanan membuat dan mengakses set data BigQuery serta memulai tugas Cloud Run di project yang sama:

    gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \
      --member "serviceAccount:$SERVICE_ACCOUNT" \
      --role "roles/bigquery.admin"
    
    gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \
      --member "serviceAccount:$SERVICE_ACCOUNT" \
      --role "roles/run.invoker"
    
  6. Izinkan Cloud Build menjalankan deployment Cloud Run dan mengelola tugas Cloud Scheduler:

    PROJECT_NUMBER=$(gcloud projects describe $(gcloud config get-value core/project) --format='value(projectNumber)') \
    
    gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT \
      --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
      --role "roles/iam.serviceAccountUser"
    
    gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \
      --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
      --role "roles/run.developer"
    
    gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \
      --member "serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
      --role "roles/cloudscheduler.admin"
    
  7. Clone repositori GitHub dan beralih ke cabang latest:

    git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git
    cd gce-license-tracker
    git checkout latest
    
  8. Kirim build ke Cloud Build:

    gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
    

    Build ini men-deploy aplikasi License Tracker ke Cloud Run dan mengonfigurasi Cloud Scheduler untuk memicu tugas satu kali sehari.

    Proses build memerlukan waktu sekitar 3 menit.

Memilih project untuk dianalisis

Alat License Tracker menganalisis semua project Google Cloud yang memenuhi semua kondisi berikut:

  • Compute Engine API diaktifkan.
  • Project ini memberi Compute Viewer (roles/compute.viewer) dan Logs Viewer (roles/logging.viewer) akses ke akun layanan alat tersebut.

Untuk memasukkan proyek, folder, atau seluruh organisasi dalam analisis, lakukan hal berikut:

Project

SCOPE_ID=RESOURCE_PROJECT_ID
SCOPE_TYPE=projects

gcloud projects add-iam-policy-binding $SCOPE_ID \
  --member "serviceAccount:$SERVICE_ACCOUNT" \
  --role "roles/compute.viewer" \
  --condition None
gcloud projects add-iam-policy-binding $SCOPE_ID \
  --member "serviceAccount:$SERVICE_ACCOUNT" \
  --role "roles/logging.viewer" \
  --condition None

Ganti RESOURCE_PROJECT_ID dengan ID project Google Cloud yang ingin Anda analisis dengan alat License Tracker.

Folder

SCOPE_ID=RESOURCE_FOLDER_ID
SCOPE_TYPE=folders

gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \
  --member "serviceAccount:$SERVICE_ACCOUNT" \
  --role "roles/compute.viewer" \
  --condition None
gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \
  --member "serviceAccount:$SERVICE_ACCOUNT" \
  --role "roles/logging.viewer" \
  --condition None

Ganti RESOURCE_FOLDER_ID dengan ID folder yang berisi project yang ingin Anda analisis dengan alat License Tracker.

Organisasi

SCOPE_ID=ORGANIZATION_ID
SCOPE_TYPE=organizations

gcloud organizations add-iam-policy-binding $SCOPE_ID \
  --member "serviceAccount:$SERVICE_ACCOUNT" \
  --role "roles/compute.viewer" \
  --condition None
gcloud organizations add-iam-policy-binding $SCOPE_ID \
  --member "serviceAccount:$SERVICE_ACCOUNT" \
  --role "roles/logging.viewer" \
  --condition None

Ganti ORGANIZATION_ID dengan ID organisasi Anda.

Memulai analisis awal

Sekarang Anda dapat memulai analisis awal:

  1. Di konsol Google Cloud, buka Cloud Run > Tugas.

    Buka tugas Cloud Run

  2. Pilih tugas license-tracker untuk membuka detail tugas.

  3. Klik Jalankan.

    Bergantung pada jumlah dan ukuran project yang Anda pilih, analisis awal mungkin memerlukan waktu beberapa jam.

    Setelah tugas selesai, project Anda berisi set data BigQuery yang bernama license_usage.

  4. Atau, lihat log di Cloud Logging:

    Buka Logging

Membuat dasbor

Sekarang Anda membuat dasbor Looker Studio dengan membuat salinan dasbor contoh:

  1. Salin sumber data dasbor:

    1. Node
    2. Node berlisensi
    3. Histogram node
    4. Histogram instance

    Untuk setiap sumber data, lakukan hal berikut:

    1. Klik link di atas untuk membuka sumber data.
    2. Klik Buat salinan sumber data ini.
    3. Klik Salin sumber data.
    4. Jika Anda diminta untuk menghubungkan dasbor ke BigQuery, klik Beri otorisasi
    5. Atau, klik header dan ganti nama sumber data.
    6. Dalam daftar project penagihan, pilih project yang Anda gunakan untuk men-deploy alat License Tracker.
    7. Klik Hubungkan kembali.
    8. Di kotak dialog Terapkan perubahan koneksi, pilih Terapkan.
  2. Salin dasbor:

    1. Buka dasbor contoh.

      Dasbor tidak terhubung ke sumber data sehingga tidak menampilkan data apa pun.

    2. Klik … > Buat salinan

    3. Dalam dialog Salin laporan ini, pilih salinan sumber data Anda:

      Salin dialog

    4. Klik Salin laporan.

      Dasbor sekarang menampilkan data dari set data BigQuery Anda.

Memberi pengguna lain akses ke dasbor

Sumber data dasbor dikonfigurasi untuk menggunakan kredensial pelihat untuk mengakses BigQuery. Untuk memberi pengguna lain akses ke dasbor, Anda harus:

  1. Membagikan dasbor dan beri pengguna izin untuk melihat laporan.
  2. Memberikan peran Pelihat Data BigQuery (roles/bigquery.dataViewer) dan Pengguna Tugas BigQuery (roles/bigquery.jobUser) kepada pengguna tersebut. Anda dapat memberikan peran ini di tingkat set data atau project.

Menyesuaikan dasbor

Anda dapat menyesuaikan dasbor dengan menggunakan editor laporan Looker Studio untuk mengubah diagram yang sudah ada atau menambahkan diagram lain.

Semua diagram di dasbor contoh didasarkan pada tampilan placements di set data BigQuery. Tampilan ini berisi semua penempatan di semua project dan menggunakan skema berikut:

Kolom Jenis data Deskripsi
instance_id INTEGER ID instance
instance_name STRING Nama instance
instance_zone STRING ID zona instance
instance_project_id STRING ID project instance
tenancy STRING S jika berjalan di node tenant tunggal, F jika tidak
node_type STRING Jenis node tenant tunggal
node_project_id STRING ID project node; nilai ini mungkin berbeda dengan instance_project_id untuk node tenant tunggal yang digunakan bersama
server_id STRING ID unik server fisik
operating_system_family STRING WIN, LINUX, atau null jika tidak dikenali
license STRING String lisensi yang digunakan oleh image
license_type STRING BYOL, SPLA, atau null jika tidak dikenali
machine_type STRING Jenis mesin instance
memory_mb INTEGER Jumlah RAM (dalam MB) yang dialokasikan ke instance
vcpu_count INTEGER Jumlah vCPU yang dialokasikan ke instance
vcpu_min_allocated INTEGER Jumlah minimum vCPU yang dialokasikan ke instance; nilai ini mungkin berbeda dengan vcpu_count jika Anda melakukan overcommit CPU pada VM tenant tunggal
maintenance_policy STRING Kebijakan pemeliharaan untuk instance
start_date TIMESTAMP Awal penempatan
end_date TIMESTAMP Akhir penempatan

Anda dapat menggunakan tampilan placement saat menyesuaikan diagram yang sudah ada atau menambahkan diagram sendiri ke dasbor.

Meng-upgrade alat License Tracker

Bagian ini menjelaskan cara mengupgrade deployment alat License Tracker yang sudah ada untuk menggunakan versi aplikasi yang lebih baru, atau untuk menggunakan konfigurasi yang berbeda.

  1. Di konsol Google Cloud, buka Cloud Shell dengan mengklik tombol Aktifkan Cloud Shell Aktifkan Cloud Shell..

    Buka konsol Google Cloud.

  2. Tetapkan variabel lingkungan untuk memuat project ID Anda:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project yang berisi deployment Anda yang sudah ada.

  3. Pilih region Cloud Run dari deployment Anda yang sudah ada:

    gcloud config set run/region REGION
    
  4. Clone repositori GitHub dan beralih ke cabang latest:

    git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git
    cd gce-license-tracker
    git checkout latest
    
  5. Kirim build ke Cloud Build:

    gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
    

    Build ini memperbarui deployment Anda yang sudah ada dan memerlukan waktu sekitar 3 menit untuk diselesaikan.