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
-
Instala la Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando:
gcloud initSi 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:
- Visualizador de recursos de Cloud (
roles/cloudasset.viewer) - Editor de datos de BigQuery (
roles/bigquery.dataEditor) - Usuario de trabajo de BigQuery (
roles/bigquery.jobUser)
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:
Identifica el ID de tu organización:
gcloud projects get-ancestors PROJECT_IDReemplaza
PROJECT_IDpor el ID del proyecto.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.
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 agenteosconfig(osconfig_agent_version) informados por cada instancia. - Si el servicio de la API de
osconfig.googleapis.comestá habilitado (osconfig_enabled_in_project) en los proyectos de tu jerarquía.
Para generar el informe, sigue estos pasos:
En la Google Cloud consola de, ve a la BigQueryBigQuery.
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_IDpor el nombre de tu conjunto de datos de BigQuery.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?
- Aprovisiona recursos de VM Manager con Terraform.
- Obtén más información sobre el inventario del SO en VM Manager.
- Obtén información para exportar metadatos de recursos a BigQuery.
- Usa Data Studio para visualizar datos de BigQuery.