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 du système 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 Cloud de Confiance by S3NS . 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 Cloud de Confiance pour accéder aux services et aux API Cloud de Confiance by S3NS , vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud init
-
- 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 des 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 les données VM Manager vers BigQuery
Pour exporter les données d'inventaire et de ressources de l'OS vers BigQuery :
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 de l'OS 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 dans lequel se trouve votre ensemble de données BigQuery.DATASET_ID: nom de votre ensemble de données BigQuery.
Exportez les métadonnées de 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 dans lequel 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 du système d'exploitation, consultez Exporter un instantané d'asset.
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 de l'OS de VM Manager sont signalées (
vmm_data) pour chaque instance de VM. - Le nom long du système d'exploitation (
os_info_reported_by_vmm) et la 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) dans les projets de votre hiérarchie.
Pour générer le rapport, procédez comme suit :
Dans la console Cloud de Confiance , 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 des 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 d'OS dans VM Manager
- Découvrez comment exporter des métadonnées d'éléments vers BigQuery.
- Utilisez Data Studio pour visualiser les données BigQuery.