En este tema, se muestra cómo configurar Cloud Asset Inventory y el inventario del SO de VM Manager para que puedas ver la información del entorno de ejecución de las VM.
Antes de comenzar
Antes de comenzar, completa los pasos que se indican a continuación.
Habilita la API de Cloud Asset Inventory en el proyecto en el que ejecutarás los comandos de la API.
Habilita la API de Cloud Asset InventoryConfigura los permisos necesarios para llamar a la API de Cloud Asset Inventory mediante la CLI de gcloud o la API.
Completa los siguientes pasos para configurar el entorno.
gcloud
Si deseas configurar tu entorno para que use la CLI de gcloud a fin de llamar a la API de Cloud Asset Inventory, instala la CLI de Google Cloud en tu cliente local.
API
Para configurar tu entorno a fin de llamar a la API de Cloud Asset Inventory con el comando
curl
de Unix, completa los siguientes pasos.- Instala oauth2l en tu máquina local para que puedas interactuar con el sistema Google OAuth.
- Confirma que tienes acceso al comando
curl
de Unix. Asegúrate de otorgar a tu cuenta una de las siguientes funciones en tu proyecto, organización o carpeta.
- Función de visualizador de Cloud Asset (
roles/cloudasset.viewer
) - Función básica de propietario (
roles/owner
)
- Función de visualizador de Cloud Asset (
Habilita el inventario del SO
Para habilitar el inventario de SO, que forma parte del conjunto de VM Manager, completa los pasos relevantes en Configura VM Manager.
Configura los permisos
Asegúrate de que tu cuenta tenga el permiso cloudasset.assets.exportOSInventories
en el recurso raíz que contiene los elementos que deseas exportar. Puedes otorgar este permiso de forma individual o puedes otorgar una de las siguientes funciones en el recurso raíz.
- Función de visualizador de Cloud Asset (
roles/cloudasset.viewer
) - Función de propietario de Cloud Asset (
roles/cloudasset.owner
)
Obtén más información sobre la configuración de permisos y las funciones de IAM de Cloud Asset Inventory.
Exporta datos de VM Manager a BigQuery
Para exportar una instantánea del inventario del SO en una marca de tiempo determinada, completa los siguientes pasos.
gcloud
BIGQUERY_TABLE.
gcloud asset export \ --content-type os-inventory \ --project 'PROJECT_ID' \ --snapshot-time 'SNAPSHOT_TIME' \ --bigquery-table 'BIGQUERY_TABLE' \ --output-bigquery-force
Aquí:
- PROJECT_ID es el ID del proyecto cuyos metadatos se exportan. Este proyecto puede ser el mismo proyecto desde el que ejecutas la exportación o uno diferente.
- SNAPSHOT_TIME es el tiempo en el que quieres tomar una instantánea de tus activos (opcional). El valor debe ser la hora actual o una hora en el pasado. De forma predeterminada, se toma una instantánea a la hora actual. Para obtener información sobre los formatos de hora, consulta gcloud topic datetime.
- BIGQUERY_TABLE es la tabla a la que exportarás los metadatos, en el formato
projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME
. --output-bigquery-force
reemplaza la tabla de destino, si existe.
Para exportar los activos de una organización o carpeta, puedes usar una de las siguientes marcas en 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
Obtén más información sobre el método exportAssets.
Exporta datos de VM Manager a Cloud Storage
Para exportar el inventario de instancias de VM de VM Manager, ejecuta el siguiente comando de la CLI de 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
Obtén más información sobre el método exportAssets.
Obtén el historial de datos de VM Manager
Para obtener el historial de creación, eliminación y actualización de los recursos especificados en un proyecto dentro del plazo determinado mediante la API de Cloud Asset, sigue el proceso que se muestra a continuación.
gcloud
Para obtener el historial de todo el inventario del SO de los recursos especificados en un proyecto, ejecuta el siguiente 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
Los comandos que se muestran en esta sección obtienen el historial de un proyecto. Para obtener el historial de una organización, usa el método https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_NUMBER:batchGetAssetsHistory
de REST en el comando gcurl
.
- Asegúrate de que puedas llamar a la API de Cloud Asset mediante la sección Configura una cuenta.
- Determina el nombre completo del recurso del elemento cuyo historial deseas buscar. Consulta la lista de nombres con formato de API de Cloud Asset aquí.
En el siguiente ejemplo, se usa
//compute.googleapis.com/projects/my_project_number/global/instances/instancel
. - Determina una hora de inicio y de finalización para tu período con el formato RFC 3339 UTC.
Solo se requiere una hora de inicio. Consulta
TimeWindow
para obtener más información. - Determine en qué nivel desea obtener el historial de recursos. Los siguientes comandos de ejemplo demuestran cómo obtener el historial de varios tipos de recursos.
Para obtener el token de acceso, ejecuta el siguiente comando con el archivo ~/credentials.json
.
oauth2l header --json ~/credentials.json cloud-platform
Deberías ver un resultado similar al siguiente, con y29.xxxxxx
como el token de acceso:
Authorization: Bearer y29.xxxxxxx
Configura la variable TOKEN
en el token de acceso:
TOKEN=y29.xxxxxxx
Para obtener el historial de todo el inventario del SO de los recursos especificados en un proyecto, ejecuta el siguiente 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
Obtén más información sobre el método batchGetAssetsHistory.
Supervisa cambios de datos de VM Manager
gcloud
Si deseas crear un feed con el comando gcloud asset feeds create
para supervisar las VM con el SO Windows instalado, haz lo siguiente:
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
Si deseas crear un feed con la API de feeds.create()
para supervisar las VM con el SO Windows instalado, sigue estos pasos:
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
Para obtener más detalles, haz clic aquí.