Neste tópico, veja como configurar o Inventário de recursos do Cloud e o inventário do SO do VM Manager para visualizar informações do ambiente de execução das VMs.
Antes de começar
Antes de começar, conclua as etapas a seguir.
Ative a API Cloud Asset Inventory no projeto em que você executará os comandos da API.
Ativar a API Cloud Asset InventoryConfigure as permissões necessárias para chamar a API Cloud Asset Inventory usando a CLI gcloud ou a API.
Conclua as etapas a seguir para configurar seu ambiente.
gcloud
Para configurar o ambiente para usar a CLI do gcloud para chamar a API Cloud Asset Inventory, instale a CLI do Google Cloud no seu cliente local.
API
Para configurar seu ambiente para chamar a API Cloud Asset Inventory com o comando
curl
do Unix, conclua as etapas a seguir.- Instale o oauth2l na sua máquina local para interagir com o sistema do Google OAuth.
- Confirme se você tem acesso ao comando
curl
do Unix. Certifique-se de conceder à conta um dos papéis a seguir no projeto, na pasta ou na organização.
- Papel Leitor de recursos do Cloud (
roles/cloudasset.viewer
) - Papel básico do proprietário (
roles/owner
)
- Papel Leitor de recursos do Cloud (
Como ativar o inventário do SO
Para ativar o inventário do SO, que faz parte do pacote do VM Manager, conclua as etapas relevantes em Como configurar o VM Manager.
Como definir permissões
Verifique se a sua conta tem a permissão
cloudasset.assets.exportOSInventories
no recurso raiz que contém os recursos que você quer exportar. É
possível conceder essa permissão individualmente ou a um dos papéis a
seguir no recurso raiz.
- Papel Leitor de recursos do Cloud (
roles/cloudasset.viewer
) - Papel Proprietário do recurso do Cloud (
roles/cloudasset.owner
)
Saiba mais sobre como configurar permissões e os papéis do IAM do Inventário de recursos do Cloud.
Como exportar dados do VM Manager para o BigQuery
Para exportar o snapshot do inventário do SO em um carimbo de data/hora específico, conclua as seguintes etapas.
gcloud
BIGQUERY_TABLE.
gcloud asset export \ --content-type os-inventory \ --project 'PROJECT_ID' \ --snapshot-time 'SNAPSHOT_TIME' \ --bigquery-table 'BIGQUERY_TABLE' \ --output-bigquery-force
Em que:
- PROJECT_ID é o ID do projeto com os metadados que estão sendo exportados. O projeto pode ser aquele do qual você está executando a exportação ou outro projeto.
- SNAPSHOT_TIME (opcional) é o momento em que você quer tirar um snapshot dos seus recursos. O valor precisa ser a hora atual ou um horário no passado. Por padrão, um snapshot é capturado no horário atual. Para informações sobre formatos de tempo, consulte gcloud topic datetimes.
- BIGQUERY_TABLE é a tabela para a qual você está exportando seus
metadados, no formato
projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME
. --output-bigquery-force
substitui a tabela de destino, se ela existir.
Para exportar os recursos de uma organização ou pasta, use uma das
seguintes sinalizações no lugar de --project
.
--organization=ORGANIZATION_ID
--folder=FOLDER_ID
API
gcurl -d '{"contentType":"OS_INVENTORY", \ "outputConfig":{ \ "bigqueryDestination": { \ "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",\ "table": "TABLE_NAME", \ "force": true \ } \ }}' \ https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets
Saiba mais sobre o método exportAssets.
Como exportar dados do VM Manager para o Cloud Storage
Para exportar o inventário de instâncias do VM Manager, execute o seguinte comando da CLI da gcloud.
gcloud
gcloud asset export \ --content-type os-inventory \ --project PROJECT_ID \ --output-path "gs://YOUR_BUCKET/NEW_FILE"
API
gcurl -d '{"contentType":"OS_INVENTORY", "outputConfig":{ \ "gcsDestination": {"uri":"gs://YOUR_BUCKET/NEW_FILE"}}}' \ https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:exportAssets
Saiba mais sobre o método exportAssets.
Como receber o histórico de dados do VM Manager
Para acessar o histórico de criação, exclusão e atualização de recursos especificados em um projeto em um determinado período usando a API Cloud Asset, siga o processo abaixo.
gcloud
Para receber o histórico de todo o inventário do SO dos recursos especificados em um projeto, execute o seguinte comando.
YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday") NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ") gcloud asset get-history --project='PROJECT_ID' \ --asset-names='//compute.googleapis.com/projects/my_project_number/global/instances/instancel' --start-time=$YESTERDAY \ --end-time=$NOW \ --content-type='os-inventory'
API
Os comandos mostrados nesta seção recebem o histórico de um projeto. Para receber o
histórico de uma organização, use o método REST https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:batchGetAssetsHistory
no comando gcurl
.
- Verifique se é possível chamar a API Cloud Asset concluindo a configuração em Configurar uma conta.
- Determine o
nome completo do recurso
para buscar o histórico. Veja uma lista de
nomes formatados da API Cloud Asset aqui.
O exemplo a seguir usa
//compute.googleapis.com/projects/my_project_number/global/instances/instancel
. - Determine os horários de início e de término do seu período de tempo que esteja no formato RFC 3339 UTC.
É necessária apenas a hora de início. Consulte
TimeWindow
para mais informações. - Determine em qual nível você quer ter o histórico dos recursos. Os comandos de exemplo a seguir demonstram como acessar o histórico de vários tipos de recursos.
Para conseguir o token de acesso, execute o seguinte comando com o arquivo ~/credentials.json
.
oauth2l header --json ~/credentials.json cloud-platform
Você verá uma saída semelhante à seguinte, com y29.xxxxxx
como
token de acesso:
Authorization: Bearer y29.xxxxxxx
Defina a var TOKEN
como o token de acesso:
TOKEN=y29.xxxxxxx
Para receber o histórico de todo o inventário do SO dos recursos especificados em um projeto, execute o seguinte comando.
YESTERDAY=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ" -d "yesterday") curl -X POST -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ -d '{"contentType":"OS_INVENTORY", \ "assetNames": \ "//compute.googleapis.com/projects/my_project_number/global/instances/instancel", \ "readTimeWindow": {"startTime": "'$YESTERDAY'"}}' \ https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER:batchGetAssetsHistory
Saiba mais sobre o método batchGetAssetsHistory.
Como monitorar alterações de dados do VM Manager
gcloud
Para criar um feed usando o comando
gcloud asset feeds create
e monitorar VMs com o sistema operacional Windows instalado:
gcloud asset feeds create FEED_ID --project=PROJECT_ID \ --content-type=os-inventory --asset-types="compute.googleapis.com/Instance" \ --pubsub-topic="TOPIC_NAME" --condition-title="CONDITION_TITLE" \ --condition-description="CONDITION_DESCRIPTION" \ --condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == 'windows'"
API
Para criar um feed usando a API
feeds.create()
e
monitorar VMs com o sistema operacional Windows instalado:
curl -H "Authorization: Bearer $TOKEN" \\ -H "Content-Type: application/json" -X POST \\ -d '{"feedId": "FEED_ID", "feed": { "assetTypes": ["compute.googleapis.com/Instance"], "contentType": "OS_INVENTORY", "feedOutputConfig": {"pubsubDestination": {"topic":"TOPIC_NAME"}}, "condition": {"title": "CONDITION_TITLE", "description": "CONDITION_DESCRIPTION", "expression": "temporal_asset.asset.os_inventory.os_info.short_name == 'windows'"}}}' \\ https://cloudasset.googleapis.com/v1/projects/PROJECT_NUMBER/feeds
Veja mais detalhes aqui.