En exportant les données VM Manager de l'inventaire des éléments cloud vers BigQuery, vous pouvez exécuter des requêtes avancées pour vérifier si VM Manager est activé, afficher les versions de l'agent OS Config et inspecter les détails du système d'exploitation dans tous les projets de votre organisation.
Ce document explique comment utiliser VM Manager, l'inventaire des éléments cloud et BigQuery pour afficher les rapports sur l'activation de VM Manager et l'état des systèmes d'exploitation pour les instances Compute Engine de votre organisation.
Avant de commencer
- Configurez VM Manager.
- Activez l'API Cloud Asset Inventory.
- Créez un ensemble de données BigQuery pour stocker les données exportées.
- Vérifiez que vous disposez des autorisations requises pour afficher les rapports sur l'état de VM Manager dans l'ensemble de l'organisation.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
- Définissez une région et une zone par défaut.
Rôles requis
Pour obtenir les autorisations nécessaires pour exporter des données de ressources et exécuter des requêtes dans BigQuery, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet, le dossier ou l'organisation :
- Lecteur d'éléments Cloud (
roles/cloudasset.viewer) - Éditeur de données BigQuery (
roles/bigquery.dataEditor) - Utilisateur de job BigQuery (
roles/bigquery.jobUser)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour exporter les données de ressources et exécuter des requêtes dans BigQuery. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour exporter des données de ressources et exécuter des requêtes dans BigQuery :
-
cloudasset.assets.exportOSInventories -
cloudasset.assets.exportResource -
bigquery.datasets.get -
bigquery.tables.create -
bigquery.tables.update -
bigquery.tables.get -
bigquery.jobs.create
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Exporter des données VM Manager vers BigQuery
Pour exporter les données d'inventaire et de ressources de l'OS vers BigQuery, procédez comme suit :
Identifiez l'ID de votre organisation :
gcloud projects get-ancestors PROJECT_IDRemplacez
PROJECT_IDpar l'ID de votre projet.Exportez les données d'inventaire du système d'exploitation collectées par VM Manager à partir des instances de VM :
gcloud asset export \ --content-type=os-inventory \ --organization=ORGANIZATION_ID \ --per-asset-type \ --bigquery-table="projects/BQ_PROJECT_ID/datasets/DATASET_ID/tables/os"Remplacez les éléments suivants :
ORGANIZATION_ID: l'ID de votre organisation.BQ_PROJECT_ID: ID du projet où se trouve votre ensemble de données BigQuery.DATASET_ID: nom de votre ensemble de données BigQuery.
Exportez les métadonnées des ressources vers une table BigQuery :
gcloud asset export \ --content-type=resource \ --organization=ORGANIZATION_ID \ --per-asset-type \ --bigquery-table="projects/BQ_PROJECT_ID/datasets/DATASET_ID/tables/res"Remplacez les éléments suivants :
ORGANIZATION_ID: votre ID d'organisation.BQ_PROJECT_ID: ID du projet où se trouve votre ensemble de données BigQuery.DATASET_ID: ID de votre ensemble de données BigQuery.
Pour savoir comment exporter des instantanés d'inventaire d'OS, consultez Exporter un instantané d'élément.
Générer un rapport sur l'état de VM Manager pour votre organisation
Une fois les données d'inventaire exportées, vous pouvez exécuter une requête SQL dans BigQuery pour générer un rapport sur l'état de VM Manager. Ce rapport fournit les informations suivantes :
- Indique si les données d'inventaire du système d'exploitation de VM Manager sont signalées (
vmm_data) pour chaque instance de VM. - Nom complet du système d'exploitation (
os_info_reported_by_vmm) et version de l'agentosconfig(osconfig_agent_version) signalés par chaque instance. - Indique si le service d'API
osconfig.googleapis.comest activé (osconfig_enabled_in_project) pour les projets de votre hiérarchie.
Pour générer le rapport, procédez comme suit :
Dans la console Google Cloud , accédez à la page BigQuery.
Dans l'éditeur de requête, collez le script SQL suivant :
SELECT vms.project, vms.zone, vms.instance_name, vms.instance_status, vms.vmm_data, vms.instance_creation_time, vms.vmm_info_update_time, -- vms.gce_image, vms.os_info_reported_by_vmm, vms.service_account, service.resource.data.state AS osconfig_enabled_in_project, vms.osconfig_agent_version -- "INFO N/A" as enable_osconfig_metadata_set_in_project, -- "INFO N/A" as enable_osconfig_metadata_set_in_instance, FROM ( SELECT SPLIT(name, '/')[OFFSET(8)] AS instance_name, SPLIT(name, '/')[OFFSET(4)] AS project, SPLIT(name, '/')[OFFSET(6)] AS zone, instances.ancestors, instances.resource.data.creationTimestamp AS instance_creation_time, instances.resource.data.serviceAccounts[SAFE_OFFSET(0)].email AS service_account, CASE WHEN inventory.os_inventory IS NOT NULL THEN TRUE ELSE FALSE END AS vmm_data, /* SPLIT(resource.data.disks[OFFSET(0)].licenses[OFFSET(0)], '/')[OFFSET(9)] as gce_image, */ inventory.os_inventory.os_info.long_name AS os_info_reported_by_vmm, inventory.os_inventory.update_time AS vmm_info_update_time, instances.resource.data.status AS instance_status, inventory.os_inventory.os_info.osconfig_agent_version FROM DATASET_ID.res_compute_googleapis_com_Instance AS instances LEFT JOIN DATASET_ID.os_compute_googleapis_com_Instance AS inventory USING (name) -- WHERE instances.resource.data.status = "RUNNING" ) AS vms LEFT JOIN DATASET_ID.res_serviceusage_googleapis_com_Service AS service ON vms.ancestors[OFFSET(0)] = service.resource.data.parent WHERE service.resource.data.name = "osconfig.googleapis.com"Remplacez
DATASET_IDpar le nom de votre ensemble de données BigQuery.Cliquez sur Exécuter.
Pour en savoir plus sur l'interrogation de données, consultez Exécuter des requêtes.
Une fois le rapport généré, vous pouvez utiliser Data Studio pour créer un tableau de bord personnalisé. Pour en savoir plus, consultez Analyser les données avec Data Studio.
Étapes suivantes
- Provisionnez des ressources VM Manager à l'aide de Terraform.
- En savoir plus sur l'inventaire des systèmes d'exploitation dans VM Manager
- Découvrez comment exporter les métadonnées des composants vers BigQuery.
- Utilisez Data Studio pour visualiser les données BigQuery.