Afficher l'état de VM Manager pour votre organisation à l'aide de l'inventaire des éléments cloud et de BigQuery

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

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 :

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 :

  1. Identifiez l'ID de votre organisation :

    gcloud projects get-ancestors PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID de votre projet.

  2. 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.
  3. 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'agent osconfig (osconfig_agent_version) signalés par chaque instance.
  • Indique si le service d'API osconfig.googleapis.com est activé (osconfig_enabled_in_project) pour les projets de votre hiérarchie.

Pour générer le rapport, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page BigQuery.

    Accéder à BigQuery

  2. 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_ID par le nom de votre ensemble de données BigQuery.

  3. 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