Ao exportar dados do VM Manager do Inventário de recursos do Cloud para o BigQuery, é possível executar consultas avançadas para verificar se o VM Manager está ativado, conferir as versões do agente de configuração do SO e inspecionar os detalhes do sistema operacional em todos os projetos da sua organização.
Neste documento, descrevemos como usar o VM Manager, o Inventário de recursos do Cloud e o BigQuery para ver os relatórios de ativação do VM Manager e de status do sistema operacional para instâncias do Compute Engine em toda a organização.
Antes de começar
- Configure o VM Manager.
- Ative a API Inventário de recursos do Cloud.
- Crie um conjunto de dados do BigQuery para armazenar os dados exportados.
- Verifique se você tem as permissões necessárias para acessar os relatórios de status do VM Manager em toda a organização.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar
códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- Defina uma região e uma zona padrão.
Funções exigidas
Para ter as permissões necessárias para exportar dados de recursos e executar consultas no BigQuery, peça ao administrador para conceder a você os papéis do IAM a seguir no projeto, na pasta ou na organização:
- Leitor de recursos do Cloud (
roles/cloudasset.viewer) - Editor de dados do BigQuery (
roles/bigquery.dataEditor) - Usuário de jobs do BigQuery (
roles/bigquery.jobUser)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para exportar dados de recursos e executar consultas no BigQuery. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para exportar dados de recursos e executar consultas no BigQuery:
-
cloudasset.assets.exportOSInventories -
cloudasset.assets.exportResource -
bigquery.datasets.get -
bigquery.tables.create -
bigquery.tables.update -
bigquery.tables.get -
bigquery.jobs.create
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Exportar dados do VM Manager para o BigQuery
Para exportar dados de inventário e recursos do SO para o BigQuery, faça o seguinte:
Identifique o ID da sua organização:
gcloud projects get-ancestors PROJECT_IDSubstitua
PROJECT_IDpelo ID do projeto de destino.Exporte os dados do inventário do SO coletados pelo VM Manager das instâncias 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"Substitua:
ORGANIZATION_ID: o ID da organização.BQ_PROJECT_ID: o ID do projeto em que o conjunto de dados do BigQuery está localizado.DATASET_ID: o nome do conjunto de dados do BigQuery.
Exporte os metadados do recurso para uma tabela do BigQuery:
gcloud asset export \ --content-type=resource \ --organization=ORGANIZATION_ID \ --per-asset-type \ --bigquery-table="projects/BQ_PROJECT_ID/datasets/DATASET_ID/tables/res"Substitua:
ORGANIZATION_ID: o código da sua organização.BQ_PROJECT_ID: o ID do projeto em que o conjunto de dados do BigQuery está localizado.DATASET_ID: o ID do conjunto de dados do BigQuery.
Para saber como exportar snapshots do inventário do SO, consulte Exportar snapshot de recurso.
Gerar um relatório de status do VM Manager para sua organização
Depois de exportar os dados do inventário, você pode executar uma consulta SQL no BigQuery para gerar um relatório de status do VM Manager. Esse relatório fornece as seguintes informações:
- Se os dados de inventário do SO do VM Manager estão sendo informados (
vmm_data) para cada instância de VM. - O nome longo do sistema operacional (
os_info_reported_by_vmm) e a versão do agenteosconfig(osconfig_agent_version) informados por cada instância. - Se o serviço da API
osconfig.googleapis.comestá ativado (osconfig_enabled_in_project) em todos os projetos da sua hierarquia.
Para gerar o relatório, siga estas etapas:
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, cole o seguinte script 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"Substitua
DATASET_IDpelo nome do seu conjunto de dados do BigQuery.Clique em Executar.
Para mais informações sobre como consultar dados, consulte Executar consultas.
Depois de gerar o relatório, use o Data Studio para criar um painel personalizado. Para mais informações, consulte Analisar dados com o Data Studio.
A seguir
- Provisione recursos do VM Manager usando o Terraform.
- Saiba mais sobre o inventário do SO no VM Manager.
- Saiba como exportar metadados de recursos para o BigQuery.
- Use o Data Studio para visualizar dados do BigQuery.