Consulta el estado de VM Manager para tu organización con Cloud Asset Inventory y BigQuery

Si exportas datos de VM Manager de Cloud Asset Inventory a BigQuery, puedes ejecutar consultas avanzadas para verificar si VM Manager está habilitado, ver las versiones del agente de OS Config y examinar los detalles del sistema operativo en todos los proyectos de tu organización.

En este documento, se describe cómo usar VM Manager, Cloud Asset Inventory y BigQuery para ver los informes de habilitación de VM Manager y de estado del sistema operativo para las instancias de Compute Engine en toda tu organización.

Antes de comenzar

  • Configura VM Manager.
  • Habilita la API de Cloud Asset Inventory.
  • Crea un conjunto de datos de BigQuery para almacenar los datos exportados.
  • Verifica que tengas los permisos necesarios para ver los informes de estado de VM Manager en toda la organización.
  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los Google Cloud servicios y las APIs. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras en esta página:

    Console

    Cuando usas la Google Cloud consola de para acceder a los Google Cloud servicios y las APIs, no necesitas configurar la autenticación.

    gcloud

    1. Instala la Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

  • Configura una región y una zona predeterminadas.

Roles obligatorios

Para obtener los permisos que necesitas para exportar datos de recursos y ejecutar consultas en BigQuery, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto, la carpeta o la organización:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para exportar datos de recursos y ejecutar consultas en BigQuery. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para exportar datos de recursos y ejecutar consultas en BigQuery:

  • cloudasset.assets.exportOSInventories
  • cloudasset.assets.exportResource
  • bigquery.datasets.get
  • bigquery.tables.create
  • bigquery.tables.update
  • bigquery.tables.get
  • bigquery.jobs.create

También puedes obtener estos permisos con roles personalizados o otros roles predefinidos.

Exporta datos de VM Manager a BigQuery

Para exportar datos de inventario del SO y de recursos a BigQuery, haz lo siguiente:

  1. Identifica el ID de tu organización:

    gcloud projects get-ancestors PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto.

  2. Exporta los datos de inventario del SO recopilados por VM Manager desde las instancias 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"
    

    Reemplaza lo siguiente:

    • ORGANIZATION_ID: Es el ID de tu organización.
    • BQ_PROJECT_ID: Es el ID del proyecto en el que se encuentra tu conjunto de datos de BigQuery.
    • DATASET_ID: Es el nombre de tu conjunto de datos de BigQuery.
  3. Exporta los metadatos de recursos a una tabla de BigQuery:

    gcloud asset export \
        --content-type=resource \
        --organization=ORGANIZATION_ID \
        --per-asset-type \
        --bigquery-table="projects/BQ_PROJECT_ID/datasets/DATASET_ID/tables/res"
    

    Reemplaza lo siguiente:

    • ORGANIZATION_ID: Es el ID de tu organización.
    • BQ_PROJECT_ID: Es el ID del proyecto en el que se encuentra tu conjunto de datos de BigQuery.
    • DATASET_ID: Es el ID de tu conjunto de datos de BigQuery.

Para obtener información sobre cómo exportar instantáneas de inventario del SO, consulta Exporta instantáneas de recursos.

Genera un informe de estado de VM Manager para tu organización

Después de exportar los datos de inventario, puedes ejecutar una consulta en SQL en BigQuery para generar un informe de estado de VM Manager. Este informe proporciona la siguiente información:

  • Si se informan los datos de inventario del SO de VM Manager (vmm_data) para cada instancia de VM.
  • El nombre largo del sistema operativo (os_info_reported_by_vmm) y la versión del agente osconfig (osconfig_agent_version) informados por cada instancia.
  • Si el servicio de la API de osconfig.googleapis.com está habilitado (osconfig_enabled_in_project) en los proyectos de tu jerarquía.

Para generar el informe, sigue estos pasos:

  1. En la Google Cloud consola de, ve a la BigQueryBigQuery.

    Ir a BigQuery

  2. En el editor de consultas, pega la siguiente secuencia de comandos SQL:

    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"
    

    Reemplaza DATASET_ID por el nombre de tu conjunto de datos de BigQuery.

  3. Haz clic en Ejecutar.

Para obtener más información sobre la consulta de datos, consulta Ejecuta consultas.

Después de generar el informe, puedes usar Data Studio para crear un panel personalizado. Para obtener más información, consulta Analiza datos con Data Studio.

¿Qué sigue?