Se utilizzi il modello Bring Your Own License per sistemi operativi come Windows Server, le obbligazioni contrattuali potrebbero richiedere il monitoraggio e il rapporto su quante istanze VM, server fisici e core CPU fisici su cui utilizzi queste licenze.
Questo articolo descrive come utilizzare lo strumento open source License Tracker per per monitorare il numero di istanze VM, server fisici e core CPU fisici e come visualizzarne i risultati con Looker Studio.
Lo strumento License Tracker analizza gli audit log di Compute Engine per determinare posizionamenti per ogni istanza VM. Un posizionamento descrive il periodo di tempo durante in esecuzione su un server fisico specifico. Ogni volta che viene eseguita la migrazione da un server fisico a un altro segna la fine di un posizionamento ne inizia un altro.
Considera ad esempio un'istanza VM che viene avviata e, diversi mesi dopo,
si è arrestato di nuovo. A un certo punto del runtime, la VM viene migrata automaticamente
da Server 1
a Server 2
e poi di nuovo a Server 1
. Questa cronologia
corrisponde a tre posizionamenti:
Quando esegui lo strumento License Tracker per la prima volta, questo analizza Compute Engine degli ultimi 90 giorni e scrive il risultato in BigQuery. Attivato successive, lo strumento analizza il delta tra l'ultima esecuzione e e aggiorna il set di dati BigQuery di conseguenza.
Lo strumento di monitoraggio delle licenze sostituisce la funzione di segnalazione dell'utilizzo fornita IAP per computer desktop.
Costi
Questa guida utilizza componenti fatturabili di Google Cloud, tra cui:
Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.
Implementare lo strumento License Tracker
Questa sezione descrive come configurare Cloud Run e Cloud Scheduler per eseguire lo strumento License Tracker una volta al giorno.
Il seguente diagramma illustra la soluzione descritta in questo articolo:
- Viene eseguito il deployment dello strumento License Tracker su Cloud Run e configurato per l'analisi i log di uno o più progetti.
- Una volta al giorno, Cloud Scheduler attiva il job Cloud Run, causando il numero di licenze Strumento di monitoraggio per aggiornare un set di dati BigQuery.
- Una dashboard di Looker Studio mostra i dati di BigQuery e li rende disponibili agli utenti.
Crea un progetto
Per configurare Cloud Run e Cloud Scheduler, crea un nuovo progetto:
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
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.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
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 di monitoraggio delle licenze su Cloud Run:
Nella console Google Cloud, apri Cloud Shell facendo clic Attiva Cloud Shell
.
Imposta una variabile di ambiente che contenga 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 avvia 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 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:[email protected]" \ --role "roles/iam.serviceAccountUser" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:[email protected]" \ --role "roles/run.developer" gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:[email protected]" \ --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 build 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 affinché attivi il job una volta al giorno.
Il completamento della build richiede circa 3 minuti.
Seleziona i progetti da analizzare
Lo strumento License Tracker analizza tutti i progetti Google Cloud per cui delle seguenti condizioni:
- L'API Compute Engine è abilitata.
- Il progetto concede il ruolo Visualizzatore Compute (
roles/compute.viewer
) e Accesso in visualizzatore log (roles/logging.viewer
) all'account di servizio dello strumento.
Per includere nell'analisi un progetto, una cartella o un'intera organizzazione:
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 di Google Cloud che deve essere analizzato dallo strumento License Tracker.
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 di monitoraggio delle licenze 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 di tracker licenze per aprire i relativi dettagli.
Fai clic su Execute (Esegui).
A seconda del numero e delle dimensioni dei progetti selezionati, l'analisi potrebbe richiedere diverse ore.
Al termine del job, il progetto contiene un set di dati BigQuery denominato
license_usage
.Facoltativamente, visualizza 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 ciascuna origine dati:
- Fai clic sul link qui sopra per aprire l'origine dati.
- Fai clic su Crea una copia di questa origine dati.
- Fai clic su Copia origine dati.
- Se hai richiesto di connettere 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 che utilizzi il deployment dello strumento License Tracker.
- Fai clic su Riconnetti.
- Nella finestra di dialogo Applica modifiche alla connessione, seleziona Applica.
Copia la dashboard:
Apri la dashboard di esempio.
Poiché la dashboard non è collegata a un'origine dati, non mostra alcun dato.
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 tuo set di dati BigQuery.
Concedere ad altri utenti l'accesso alla dashboard
Le origini dati della dashboard sono configurate in modo da utilizzare le credenziali del visualizzatore per accedere a BigQuery. Per concedere a un altro utente l'accesso alla dashboard: devi:
- Condividere la dashboard e concedi all'utente l'autorizzazione a visualizzare il report.
- Concedi il visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) e Ruoli Utente job BigQuery (roles/bigquery.jobUser
) all'utente. Puoi concedere questi ruoli a livello di set di dati o di progetto.
Personalizzare la dashboard
Puoi personalizzare la dashboard utilizzando l'editor di report di Looker Studio per modificare i grafici esistenti. o aggiungere altri grafici.
Tutti i grafici nella dashboard di esempio sono basati sulla vista placements
nella
set di dati BigQuery. Questa visualizzazione contiene tutti i posizionamenti in tutti i progetti e utilizza il seguente schema:
Colonna | Tipo di dati | Descrizione |
---|---|---|
instance_id | INTEGER | ID istanza |
instance_name | STRINGA | Nome dell'istanza |
instance_zone | STRINGA | ID zona dell'istanza |
instance_project_id | STRINGA | ID progetto dell'istanza |
tenancy | STRINGA | S se in esecuzione su nodo single-tenant, F altrimenti |
node_type | STRINGA | Tipo di nodo single-tenant |
node_project_id | STRINGA | ID progetto del nodo; questo valore potrebbe essere diverso da instance_project_id in caso di nodi single-tenant condivisi |
server_id | STRINGA | ID univoco del server fisico |
operating_system_family | STRINGA | WIN , LINUX o null se non riconosciuti |
acquisire in licenza | STRINGA | Stringa di licenza utilizzata dall'immagine |
license_type | STRINGA | BYOL , SPLA o null se non riconosciuti |
machine_type | STRINGA | 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 quando
overcommit delle CPU sulle VM single-tenant |
maintenance_policy | STRINGA | Criterio di manutenzione per ad esempio |
start_date | TIMESTAMP | Inizio del posizionamento |
end_date | TIMESTAMP | Fine del posizionamento |
Puoi utilizzare la vista placement
per personalizzare i grafici esistenti o aggiungere
i tuoi grafici alla dashboard.
Eseguire l'upgrade dello strumento di monitoraggio delle licenze
Questa sezione descrive come eseguire l'upgrade di un deployment esistente Strumento di monitoraggio delle licenze per utilizzare una versione più recente dell'applicazione o per usare un configurazione diversa.
Nella console Google Cloud, apri Cloud Shell facendo clic Attiva Cloud Shell
.
Imposta una variabile di ambiente che contenga ID progetto:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con l'ID del progetto che contiene al 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 build a Cloud Build:
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
La build aggiorna il deployment esistente e richiede circa 3 minuti.