Si vous utilisez vos propres licences pour des systèmes d'exploitation tels que Windows Server, des obligations contractuelles peuvent vous obliger à surveiller et à indiquer le nombre d'instances de VM, de serveurs physiques et de cœurs de processeur physiques sur lesquels vous utilisez ces licences.
Cet article explique comment utiliser l'outil de suivi des licences Open Source pour surveiller le nombre d'instances de VM, de serveurs physiques et de cœurs de processeur physiques que vous utilisez, et comment visualiser les résultats à l'aide de Looker Studio.
L'outil de suivi des licences fonctionne en analysant les journaux d'audit de Compute Engine afin de déterminer les emplacements pour chaque instance de VM. Un emplacement décrit la période pendant laquelle une instance de VM s'exécute sur un serveur physique spécifique. Chaque fois qu'une VM est migrée d'un serveur physique vers un autre, elle marque la fin d'un emplacement et en démarre un autre.
Prenons l'exemple d'une instance de VM qui a démarré et, plusieurs mois plus tard, s'est arrêtée à nouveau. À un moment donné de son environnement d'exécution, la VM est automatiquement migrée de Server 1
vers Server 2
, puis de nouveau vers Server 1
. Cet historique correspond à trois emplacements :
Lorsque vous exécutez l'outil de suivi des licences pour la première fois, il analyse l'utilisation de Compute Engine au cours des 90 derniers jours et écrit son résultat dans BigQuery. Lors des exécutions suivantes, l'outil analyse le delta entre la dernière exécution et le jour en cours, et met à jour l'ensemble de données BigQuery en conséquence.
L'outil de suivi des licences remplace la fonctionnalité de création de rapports d'utilisation fournie par IAP Desktop.
Coûts
Ce guide utilise des composants facturables de Google Cloud, dont :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Déployer l'outil de suivi des licences
Cette section explique comment configurer Cloud Run et Cloud Scheduler pour exécuter automatiquement l'outil de suivi des licences une fois par jour.
Le schéma suivant illustre la solution décrite dans cet article :
- L'outil de suivi des licences est déployé sur Cloud Run et configuré pour analyser les journaux d'un ou plusieurs projets.
- Une fois par jour, Cloud Scheduler déclenche la tâche Cloud Run, ce qui amène l'outil de suivi des licences à mettre à jour un ensemble de données BigQuery.
- Un tableau de bord Looker Studio permet de visualiser les données BigQuery et de les mettre à la disposition des utilisateurs.
Créer un projet
Pour configurer Cloud Run et Cloud Scheduler, créez un projet :
- 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.
Déployer l'application
Vous allez maintenant déployer l'outil de suivi des licences sur Cloud Run :
Dans Google Cloud Console, ouvrez Cloud Shell en cliquant sur le bouton Activer Cloud Shell .
Définissez une variable d'environnement pour contenir votre ID de projet :
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet.
Définissez la région Cloud Run vers laquelle effectuer le déploiement :
gcloud config set run/region REGION
Remplacez REGION par une région compatible avec Cloud Run et Cloud Scheduler.
Créer un compte de service pour l'outil :
SERVICE_ACCOUNT=$(gcloud iam service-accounts create license-tracker \ --display-name "License Tracker" \ --format "value(email)")
Autorisez le service à créer un ensemble de données BigQuery et à y accéder, et à démarrer des jobs Cloud Run dans le même projet :
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"
Autorisez Cloud Build à effectuer des déploiements Cloud Run et à gérer les jobs 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"
Clonez le dépôt GitHub et passez à la branche
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Envoyez une compilation à Cloud Build :
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
Le build déploie l'application de suivi des licences sur Cloud Run et configure Cloud Scheduler pour déclencher le job une fois par jour.
La compilation prend environ trois minutes.
Sélectionner les projets à analyser
L'outil de suivi des licences analyse tous les projets Google Cloud pour lesquels toutes les conditions suivantes s'appliquent :
- L'API Compute Engine est activée.
- Le projet accorde l'accès au compte de service de l'outil à l'aide de Lecteur Compute (
roles/compute.viewer
) et de Lecteur de journaux (roles/logging.viewer
).
Pour inclure un projet, un dossier ou une organisation entière dans l'analyse, procédez comme suit :
Projet
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
Remplacez RESOURCE_PROJECT_ID par l'ID du projet Google Cloud que vous souhaitez que l'outil de suivi des licences analyse.
Dossier
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
Remplacez RESOURCE_FOLDER_ID par l'ID du dossier contenant les projets que vous souhaitez faire analyser par l'outil de suivi des licences.
Organisation
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
Remplacez ORGANIZATION_ID par l'ID de votre organisation.
Démarrer l'analyse initiale
Vous pouvez maintenant commencer une analyse initiale :
Dans la console Google Cloud, accédez à Cloud Run > Jobs.
Sélectionnez la tâche licenses-tracker pour ouvrir les détails de la tâche.
Cliquez sur Exécuter.
Selon le nombre et la taille des projets que vous avez sélectionnés, l'analyse initiale peut prendre plusieurs heures.
Une fois le job terminé, votre projet contient un ensemble de données BigQuery nommé
license_usage
.Vous pouvez éventuellement afficher les journaux dans Cloud Logging :
Create a dashboard
Vous allez maintenant créer un tableau de bord Looker Studio en créant une copie d'un exemple de tableau de bord :
Copiez les sources de données du tableau de bord :
Pour chacune des sources de données, procédez comme suit :
- Cliquez sur le lien ci-dessus pour ouvrir la source de données.
- Cliquez sur Créer une copie de cette source de données.
- Cliquez sur Copier la source de données.
- Si vous êtes invité à connecter le tableau de bord à BigQuery, cliquez sur Autoriser.
- Vous pouvez également cliquer sur l'en-tête et renommer la source de données.
- Dans la liste des projets de facturation, sélectionnez le projet que vous avez utilisé pour déployer l'outil de suivi des licences.
- Cliquez sur Reconnecter.
- Dans la boîte de dialogue Appliquer les modifications des connexions, sélectionnez Appliquer.
Copiez le tableau de bord :
Ouvrez l'exemple de tableau de bord.
Le tableau de bord n'étant pas connecté à une source de données, il n'affiche aucune donnée.
Cliquez sur ... > Créer une copie.
Dans la boîte de dialogue Copier ce rapport, sélectionnez vos copies des sources de données :
Cliquez sur Copier le rapport.
Le tableau de bord affiche désormais les données de votre ensemble de données BigQuery.
Autoriser d'autres utilisateurs à accéder au tableau de bord
Les sources de données du tableau de bord sont configurées pour utiliser les identifiants du lecteur pour accéder à BigQuery. Pour autoriser un autre utilisateur à accéder au tableau de bord, vous devez :
- Partager le tableau de bord et accorder à l'utilisateur l'autorisation d'afficher le rapport.
- Attribuez à l'utilisateur les rôles Lecteur de données BigQuery (
roles/bigquery.dataViewer
) et Utilisateur de job BigQuery (roles/bigquery.jobUser
). Vous pouvez attribuer ces rôles au niveau de l'ensemble de données ou du projet.
Personnaliser le tableau de bord
Vous pouvez personnaliser le tableau de bord en utilisant l'éditeur de rapports Looker Studio pour modifier les graphiques existants ou en ajouter d'autres.
Tous les graphiques de l'exemple de tableau de bord sont basés sur la vue placements
de l'ensemble de données BigQuery. Cette vue regroupe tous les emplacements pour l'ensemble des projets, et utilise le schéma suivant :
Colonne | Data type | Description |
---|---|---|
instance_id | INTEGER | ID d'instance |
instance_name | STRING | Nom de l'instance |
instance_zone | STRING | ID de zone de l'instance |
instance_project_id | STRING | ID du projet de l'instance |
tenancy | STRING | S en cas d'exécution sur un nœud à locataire unique, F dans le cas contraire |
node_type | STRING | Type de nœud à locataire unique |
node_project_id | STRING | ID de projet du nœud ; cette valeur peut être différente de instance_project_id en cas de nœuds à locataire unique partagés |
server_id | STRING | ID unique du serveur physique |
operating_system_family | STRING | WIN , LINUX ou null si non reconnu |
licence | STRING | Chaîne de licence utilisée par l'image |
license_type | STRING | BYOL , SPLA ou null si non reconnu |
machine_type | STRING | Type de machine de l'instance |
memory_mb | INTEGER | Quantité de RAM (en Mo) allouée à l'instance |
vcpu_count | INTEGER | Nombre de processeurs virtuels (vCPU) alloués à l'instance |
vcpu_min_allocated | INTEGER | Nombre minimal de vCPU alloués à l'instance ; cette valeur peut être différente de vcpu_count lorsque vous sursollicitez des processeurs sur des VM à locataire unique |
maintenance_policy | STRING | Stratégie de maintenance de l'instance |
start_date | TIMESTAMP | Début de l'emplacement |
end_date | TIMESTAMP | Fin de l'emplacement |
Vous pouvez utiliser la vue placement
lorsque vous personnalisez des graphiques existants ou lorsque vous ajoutez vos propres graphiques au tableau de bord.
Mettre à jour l'outil de suivi des licences
Cette section explique comment mettre à jour un déploiement existant de l'outil de suivi des licences afin d'utiliser une version plus récente de l'application ou une autre configuration.
Dans Google Cloud Console, ouvrez Cloud Shell en cliquant sur le bouton Activer Cloud Shell .
Définissez une variable d'environnement pour contenir votre ID de projet :
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par l'ID du projet contenant votre déploiement existant.
Sélectionnez la région Cloud Run de votre déploiement existant :
gcloud config set run/region REGION
Clonez le dépôt GitHub et passez à la branche
latest
:git clone https://github.com/GoogleCloudPlatform/gce-license-tracker.git cd gce-license-tracker git checkout latest
Envoyez une compilation à Cloud Build :
gcloud builds submit . --substitutions=_REGION=$(gcloud config get-value run/region)
La compilation met à jour votre déploiement existant, ce qui prend environ trois minutes.