Se fornisci le tue licenze per sistemi operativi come Windows Server, le obbligazioni contrattuali potrebbero richiedere di monitorare e segnalare quante istanze VM, server fisici e core della CPU fisica utilizzi con queste licenze.
Questo articolo descrive come utilizzare lo strumento open source License Tracker per monitorare il numero di istanze VM, server fisici e core CPU fisici in uso e come visualizzare i risultati utilizzando Looker Studio.
Lo strumento License Tracker funziona analizzando i log di controllo di Compute Engine per determinare i posizionamenti per ogni istanza VM. Un posizionamento descrive il periodo di tempo durante il quale un'istanza VM è in esecuzione su un server fisico specifico. Ogni volta che viene eseguita la migrazione di una VM da un server fisico a un altro, si conclude un posizionamento e ne viene avviato un altro.
Ad esempio, prendi in considerazione un'istanza VM che viene avviata e, diversi mesi dopo, nuovamente interrotta. A un certo punto durante il suo tempo di esecuzione, viene eseguita automaticamente la migrazione della VM da Server 1
a Server 2
e poi di nuovo a Server 1
. Questa cronologia corrisponde a 3 posizionamenti:
Quando esegui lo strumento Tracker delle licenze per la prima volta, analizza l'utilizzo di Compute Engine negli ultimi 90 giorni e scrive il risultato in BigQuery. Nelle esecuzioni successive, lo strumento analizza il delta tra l'ultima esecuzione e il giorno corrente e aggiorna di conseguenza il set di dati BigQuery.
Lo strumento Tracker delle licenze sostituisce la funzionalità di generazione di report sull'utilizzo fornita da IAP Desktop.
Costi
Questa guida utilizza i componenti fatturabili di Google Cloud, tra cui:
Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.
Esegui il deployment dello strumento Tracker delle licenze
Questa sezione descrive come configurare Cloud Run e Cloud Scheduler per eseguire automaticamente lo strumento Tracker delle licenze una volta al giorno.
Il seguente diagramma illustra la soluzione descritta in questo articolo:
- Lo strumento License Tracker viene implementato su Cloud Run e configurato per analizzare i log di uno o più progetti.
- Una volta al giorno, Cloud Scheduler attiva il job Cloud Run, in modo che lo strumento License Tracker aggiorni un set di dati BigQuery.
- Una dashboard di Looker Studio visualizza i dati di BigQuery e li rende disponibili per gli utenti.
Crea un progetto
Per configurare Cloud Run e Cloud Scheduler, crea un nuovo progetto:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Cloud Logging, Resource Manager, Cloud Build, Cloud Scheduler, and Cloud Run APIs.
Esegui il deployment dell'applicazione
Ora esegui il deployment dello strumento License Tracker in Cloud Run:
Nella console Google Cloud, apri Cloud Shell facendo clic sul pulsante Attiva Cloud Shell .
Imposta una variabile di ambiente contenente il tuo ID progetto:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con l'ID del tuo progetto.
Imposta la regione Cloud Run in cui eseguire il deployment:
gcloud config set run/region REGION
Sostituisci REGION con una regione che supporta Cloud Run e Cloud Scheduler.
Crea un account di servizio per lo strumento:
SERVICE_ACCOUNT=$(gcloud iam service-accounts create license-tracker \ --display-name "License Tracker" \ --format "value(email)")
Consenti al servizio di creare e accedere a un set di dati BigQuery e di avviare job Cloud Run nello stesso progetto:
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"
Consenti a Cloud Build di eseguire i deployment di Cloud Run e di gestire i job 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"
Clona il repository GitHub e passa al ramo
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Invia una compilazione a Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
La build esegue il deployment dell'applicazione License Tracker in Cloud Run e configura Cloud Scheduler per attivare il job una volta al giorno.
Il completamento della compilazione richiede circa 3 minuti.
Seleziona i progetti da analizzare
Lo strumento License Tracker analizza tutti i progetti Google Cloud per i quali si applicano tutte le seguenti condizioni:
- L'API Compute Engine è abilitata.
- Il progetto concede i ruoli Visualizzatore Compute (
roles/compute.viewer
) e Visualizzatore log (roles/logging.viewer
) all'account di servizio dello strumento.
Per includere un progetto, una cartella o un'intera organizzazione nell'analisi:
Progetto
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
Sostituisci RESOURCE_PROJECT_ID con l'ID del progetto Google Cloud che vuoi che lo strumento License Tracker analizzi.
Cartella
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
Sostituisci RESOURCE_FOLDER_ID con l'ID della cartella che contiene i progetti che vuoi che lo strumento License Tracker analizzi.
Organizzazione
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
Sostituisci ORGANIZATION_ID con l'ID della tua organizzazione.
Avvia l'analisi iniziale
Ora puoi avviare un'analisi iniziale:
Nella console Google Cloud, vai a Cloud Run > Job.
Seleziona il job license-tracker per aprire i dettagli del job.
Fai clic su Execute (Esegui).
A seconda del numero e delle dimensioni dei progetti selezionati, l'analisi iniziale potrebbe richiedere diverse ore.
Al termine del job, il progetto contiene un set di dati BigQuery denominato
license_usage
.Se vuoi, puoi visualizzare i log in Cloud Logging:
Crea una dashboard
Ora puoi creare una dashboard di Looker Studio creando una copia di una dashboard di esempio:
Copia le origini dati della dashboard:
Per ogni origine dati, svolgi le seguenti operazioni:
- Fai clic sul link indicato sopra per aprire l'origine dati.
- Fai clic su Crea una copia di questa origine dati.
- Fai clic su Copia origine dati.
- Se ti viene chiesto di collegare la dashboard a BigQuery, fai clic su Autorizza.
- Se vuoi, fai clic sull'intestazione e rinomina l'origine dati.
- Nell'elenco dei progetti di fatturazione, seleziona il progetto utilizzato per eseguire il deployment dello strumento Tracker delle licenze.
- Fai clic su Riconnetti.
- Nella finestra di dialogo Applica modifiche alla connessione, seleziona Applica.
Copia la dashboard:
Apri la dashboard di esempio.
La dashboard non è collegata a un'origine dati, pertanto non mostra dati.
Fai clic su … > Crea una copia.
Nella finestra di dialogo Copia questo report, seleziona le copie delle origini dati:
Fai clic su Copia report.
La dashboard ora mostra i dati del set di dati BigQuery.
Concedere ad altri utenti l'accesso alla dashboard
Le origini dati della dashboard sono configurate per utilizzare le credenziali del visualizzatore per accedere a BigQuery. Per concedere l'accesso alla dashboard a un altro utente, devi:
- Condividi la dashboard e concedi all'utente l'autorizzazione per visualizzare il report.
- Concedi all'utente i ruoli Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) e Utente job BigQuery (roles/bigquery.jobUser
). Puoi concedere questi ruoli a livello di set di dati o progetto.
Personalizzare la dashboard
Puoi personalizzare la dashboard utilizzando l'editor di report di Looker Studio per modificare i grafici esistenti o aggiungerne altri.
Tutti i grafici nella dashboard di esempio si basano sulla vista placements
nel set di dati BigQuery. Questa visualizzazione contiene tutti i posizionamenti in tutti i progetti e utilizza lo schema seguente:
Colonna | Tipo di dati | Descrizione |
---|---|---|
instance_id | INTEGER | ID istanza |
instance_name | STRING | Nome dell'istanza |
instance_zone | STRING | ID zona dell'istanza |
instance_project_id | STRING | ID progetto dell'istanza |
Tenancy | STRING | S se in esecuzione su un nodo single-tenant, F in caso contrario |
node_type | STRING | Tipo di nodo single-tenant |
node_project_id | STRING | ID progetto del nodo. Questo valore potrebbe essere diverso da instance_project_id in caso di nodi sole-tenant condivisi |
server_id | STRING | ID univoco del server fisico |
operating_system_family | STRING | WIN , LINUX o null se non riconosciuto |
acquisire in licenza | STRING | Stringa della licenza utilizzata dall'immagine |
license_type | STRING | BYOL , SPLA o null se non riconosciuto |
machine_type | STRING | Tipo di macchina dell'istanza |
memory_mb | INTEGER | Quantità di RAM (in MB) allocata all'istanza |
vcpu_count | INTEGER | Numero di vCPU allocate all'istanza |
vcpu_min_allocated | INTEGER | Numero minimo di vCPU allocate all'istanza. Questo valore potrebbe essere diverso da vcpu_count se stai eseguendo overcommit delle CPU su VM sole-tenant |
maintenance_policy | STRING | Criteri di manutenzione per l'istanza |
start_date | TIMESTAMP | Inizio del posizionamento |
end_date | TIMESTAMP | Fine del posizionamento |
Puoi utilizzare la visualizzazione placement
per personalizzare i grafici esistenti o aggiungerne di personalizzati alla dashboard.
Eseguire l'upgrade dello strumento Tracker delle licenze
Questa sezione descrive come eseguire l'upgrade di un deployment esistente dello strumento License Tracker per utilizzare una versione più recente dell'applicazione o una configurazione diversa.
Nella console Google Cloud, apri Cloud Shell facendo clic sul pulsante Attiva Cloud Shell .
Imposta una variabile di ambiente contenente il tuo ID progetto:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con l'ID del progetto che contiene il tuo deployment esistente.
Seleziona la regione Cloud Run del tuo deployment esistente:
gcloud config set run/region REGION
Clona il repository GitHub e passa al ramo
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Invia una compilazione a Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
La compilazione aggiorna il deployment esistente e richiede circa 3 minuti.