Si exportas los 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 revisar 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 estado del sistema operativo y de habilitación de VM Manager 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 servicios y las APIs de Cloud de Confiance by S3NS . 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 que corresponda a la forma en que planeas usar las muestras de esta página:
Console
Cuando usas la consola de Cloud de Confiance para acceder a los servicios y las APIs de Cloud de Confiance by S3NS , no necesitas configurar la autenticación.
gcloud
-
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:
gcloud init
-
- 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 con otros roles predefinidos.
Exporta datos de VM Manager a BigQuery
Para exportar datos de recursos y del inventario del SO 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 del recurso 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: el ID del conjunto de datos de BigQuery.
Para aprender a exportar instantáneas del 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 del inventario, puedes ejecutar una consulta en SQL en BigQuery para generar un informe de estado de VM Manager. En este informe, se 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) que informa cada instancia. - Indica si el servicio de la API de
osconfig.googleapis.comestá habilitado (osconfig_enabled_in_project) en todos los proyectos de tu jerarquía.
Para generar el informe, sigue estos pasos:
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, pega la siguiente secuencia de comandos en 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 cómo consultar datos, consulta Cómo ejecutar consultas.
Después de generar el informe, puedes usar Data Studio para crear un panel personalizado. Para obtener más información, consulta Cómo analizar 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.