I log delle attività di Compute Engine sono diversi dagli audit log. Gli audit log contengono le stesse informazioni dei log delle attività legacy e altro ancora. Ti consigliamo di utilizzare gli audit log anziché i log delle attività. Se utilizzi già i log delle attività, consulta Migrazione dai log delle attività agli audit log.
Compute Engine fornisce log delle attività che consentono di tenere traccia di determinati eventi che interessano il progetto, ad esempio chiamate API ed eventi di sistema. In particolare, i log delle attività forniscono informazioni su:
- Chiamate API Compute Engine: gli eventi
GCE_API_CALL
sono chiamate API che modificano lo stato di una risorsa. Ad esempio, le chiamate API per la creazione di un disco, l'aggiornamento dei metadati dell'istanza, la creazione di un gruppo di istanze, la modifica di un tipo di macchina, sono registrate nei log delle attività. Le chiamate API che non aggiornano una risorsa, come le richiesteget
elist
, non vengono registrate. - Log delle operazioni: vengono registrati gli eventi
GCE_OPERATION_DONE
quando una chiamata API cambia lo stato di una risorsa, Compute Engine restituisce un evento di operazione completata che viene registrato nei log delle attività. - Log di sistema: gli eventi
GCE_SYSTEM_EVENT
vengono registrati quando Compute Engine esegue un evento di sistema, questo viene registrato nei log delle attività. Ad esempio, un evento di manutenzione trasparente viene registrato come evento di sistema.
Ad esempio, con un evento API, un log delle attività fornisce dettagli quali l'ora di inizio e di fine di una richiesta API, le specifiche del corpo della richiesta, l'utente autorizzato che ha effettuato la richiesta API e l'endpoint della richiesta. Puoi scaricare i log delle attività per cercare richieste API specifiche o per esaminare gli eventi di sistema avviati da Compute Engine.
I log delle attività non forniscono informazioni sulla fatturazione o sull'utilizzo di un progetto, ad esempio da quanto tempo è in esecuzione un'istanza di una macchina virtuale o quanto costa. Per i log di fatturazione, consulta la funzionalità di esportazione della fatturazione. Per i log sull'utilizzo, consulta Visualizzazione dei report sull'utilizzo.
I log delle attività sono forniti come parte del servizio Cloud Logging. Per ulteriori informazioni su Logging in generale, leggi la documentazione di Cloud Logging.
Prima di iniziare
- Familiarizza con Cloud Logging.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Autorizzazioni richieste per questa attività
Per eseguire questa attività, devi disporre delle seguenti autorizzazioni:
logging.logServiceIndexes.list
sul progettologging.logServices.list
sul progetto
Visualizzazione dei log
Il logging delle attività è abilitato per impostazione predefinita per tutti i progetti Compute Engine.
Puoi visualizzare i log delle attività del progetto tramite Esplora log nella console Google Cloud:
- Nella console Google Cloud, vai alla pagina Logging.
- In Esplora log, seleziona e filtra il tipo di risorsa dal primo elenco a discesa.
- Dall'elenco a discesa Tutti i log, seleziona compute.googleapis.com/activity_log per visualizzare i log delle attività di Compute Engine.
Log di routing
Per informazioni su come esportare i log delle attività, consulta Configurare e gestire i sink nella documentazione di Cloud Logging.
Identificazione dei file di log
Quando esporti i log in Cloud Storage, i file di log vengono archiviati nella struttura descritta nella documentazione sugli oggetti delle voci di log.
I file di log di Compute Engine vengono archiviati con la seguente struttura di directory:
<bucket>/compute.googleapis.com/activity_log/<year>/<month>/<day>
Di seguito è riportato un esempio di nome file di log archiviato in un bucket Cloud Storage denominato my-bucket
:
my-bucket/compute.googleapis.com/activity_log/2014/10/31/20:00:00_20:59:59_S0.json
In BigQuery, i log delle attività vengono archiviati in un insieme di tabelle, una per ogni tipo di log e giorno, e le tabelle vengono denominate utilizzando il formato seguente:
<dataset>.compute_googleapis_com_activity_log_YYYYMMDD
Per informazioni su come eseguire query sui log delle attività in BigQuery, consulta Voci di log in BigQuery.
Lettura dei log delle attività
I log delle attività sono strutturati come descritto nella documentazione sul tipo LogEntry.
I log delle attività di Compute Engine hanno:
compute.googleapis.com/activity_log
come valore del campolog
metadata
, che descrive informazioni comuni come il timestampstructPayload
, che contiene i contenuti specifici della voce di log
Puoi ottenere ulteriori dettagli sui campi comuni forniti con ogni voce di log nella descrizione LogEntry, ma i contenuti del payload delle voci del log delle attività sono specifici di Compute Engine e sono descritti di seguito.
Contenuti del payload
I contenuti di una voce di log vengono forniti nel formato di oggetto JSON e sono archiviati nel campo structPayload
. Il campo structPayload
contiene le seguenti informazioni:
Campo | Tipo | Descrizione |
---|---|---|
actor |
string | Email dell'account utente o di servizio che esegue l'operazione. È uguale a user_id . |
error |
string | Fornisce i dettagli dell'errore se si è verificato un errore durante questo evento. Questo valore viene omesso se non si sono verificati errori. In genere gli errori impediscono il completamento di una richiesta correttamente. Puoi utilizzare questo campo per eseguire il debug di una richiesta non riuscita. |
event_subtype |
string | Descrive il sottotipo specifico come metodo API.
Ad esempio, una richiesta per inserire una nuova istanza viene visualizzata come Consulta il riferimento API per un elenco completo dei metodi dell'API. |
event_timestamp_us |
timestamp | Il timestamp, in microsecondi, dell'evento registrato dall'epoca standard.
Equivale a metadata.timestamp . |
event_type |
string | Descrive il tipo di evento generale.
Può essere uno dei seguenti valori:
|
info |
string | Un campo facoltativo con informazioni aggiuntive, se applicabile. Questo campo viene omesso se non ci sono informazioni aggiuntive da mostrare. |
operation |
string | Quando viene effettuata una richiesta API per aggiornare o modificare una risorsa, viene creato un oggetto dell'operazione corrispondente per monitorare la richiesta fino al completamento.
Questa proprietà descrive l'oggetto dell'operazione per questo evento, fornendo
informazioni come il nome dell'operazione, la zona o la regione dell'operazione
e l'ID operazione.
Le operazioni possono essere un'operazione a zona, un'operazione per regione o un'operazione globale, a seconda della risorsa modificata dall'operazione. |
request |
JSON | Contiene il corpo della richiesta API originale. |
resource |
JSON | Descrive la risorsa specifica che viene modificata da questo evento.
Ad esempio, un'istanza di una macchina virtuale (VM) è considerata una risorsa, mentre una proprietà di risorsa di esempio per una VM ha il seguente aspetto:
"resource": { "type": "instance", "name": "example-instance", "id": "0", "zone": "us-central1-f" } Un elenco dei tipi di risorse è descritto in dettaglio nel riferimento API. Nota: se un'azione interessa più risorse, potrebbero esserci più voci di log con lo stesso |
trace_id |
string | Un ID traccia fornito dal sistema utilizzato per raggruppare i log correlati che vengono attivati da una singola azione. Ad esempio:
trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e" |
user_agent |
string | Descrive il client che ha eseguito la richiesta. Ad esempio,
se hai utilizzato le librerie client di Cloud per Java per effettuare una richiesta, lo user agent sarà
Google-API-Java-Client . |
version |
string | La versione attuale del formato di log indica lo schema dei log di Compute Engine. La versione corrente è 1.2.
Nota: il controllo delle versioni dell'API Compute Engine è separato da quello del formato di log. |
warning |
string | Fornisce i dettagli di eventuali avvisi che si sono verificati durante questo evento. Un avviso è informativo e non influisce sulla richiesta, a differenza degli errori. |
Esempio di voce di log
Ad esempio, una voce di log di esempio che descrive una richiesta API per creare una VM ha il seguente aspetto:
{ "log": "compute.googleapis.com/activity_log", "insertId": "2015-09-16|13:49:42.532185-07|10.106.9.208|335899593", "metadata": { "severity": "INFO", "projectId": "835469197146", "serviceName": "compute.googleapis.com", "zone": "us-central1-f", "labels":{ "compute.googleapis.com/resource_id":"0", "compute.googleapis.com/resource_name":"example-instance", "compute.googleapis.com/resource_type":"instance", "compute.googleapis.com/resource_zone":"us-central1-f" }, "timestamp": "2015-09-16T20:49:42.423637Z" }, "structPayload": { "version": "1.2", "trace_id": "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e", "event_timestamp_us": "1442436582423637", "event_type": "GCE_API_CALL", "event_subtype": "compute.instances.insert", "resource": { "type": "instance", "name": "example-instance", "id": "0", "zone": "us-central1-f" }, "actor": { "user": "user@example.com" }, "ip_address": "", "user_agent": "apitools-client/1.0", "request": { "url": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances", "body": "{ \"canIpForward\":false, \"description\":\"\", \"disks\":[{ \"autoDelete\":true, \"boot\":true, \"deviceName\":\"example-instance\", \"initializeParams\":{ \"diskSizeGb\":\"10\", \"diskType\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/diskTypes/pd-standard\", \"sourceImage\":\"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-8-jessie-v20150818\" }, \"mode\":\"READ_WRITE\", \"type\":\"PERSISTENT\" }], \"machineType\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/machineTypes/n1-standard-1\", \"metadata\":{ \"items\":[] }, \"name\":\"example-instance\", \"networkInterfaces\":[{ \"accessConfigs\":[{ \"name\":\"External NAT\", \"type\":\"ONE_TO_ONE_NAT\" }], \"network\":\"https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\" }], \"scheduling\":{ \"automaticRestart\":true, \"onHostMaintenance\":\"MIGRATE\", \"preemptible\":false }, \"serviceAccounts\":[{ \"email\":\"default\", \"scopes\":[ \"https://www.googleapis.com/auth/devstorage.read_only\", \"https://www.googleapis.com/auth/logging.write\" ] }], \"tags\":{ \"items\":[] }, \"zone\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f\" }" }, "operation": { "type": "operation", "name": "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e", "id": "291347737657178184", "zone": "us-central1-f" } } }
Voci del log delle attività deprecate
Le seguenti voci del log delle attività non saranno più disponibili, senza sostituzione, il 1° giugno 2020:
Tipo di risorsa monitorata | Sottotipo evento |
---|---|
gce_backend_service |
BackendServiceConfigProgramming |
gce_instance |
RE_ENCRYPT_SSL_CERTIFICATE_FLOW |
gce_instance |
addFirewallRuleToSecurityPolicy |
gce_instance |
attachCloudLink |
gce_instance |
attachFirewallSecurityPolicy |
gce_instance |
compute.instanceGroupManagers.updateHealth |
gce_instance |
compute.instanceGroups.detachHealthCheck |
gce_instance |
compute.instanceNetworkConfig.updateName |
gce_instance |
compute.regionInstanceGroups.attachHealthCheck |
gce_instance |
compute.regionInstanceGroups.detachHealthCheck |
gce_instance |
createFirewallSecurityPolicy |
gce_instance |
deleteFirewallSecurityPolicy |
gce_instance |
detachFirewallSecurityPolicy |
gce_instance |
patchFirewallRuleInSecurityPolicy |
gce_instance |
removeCloudLink |
gce_instance |
removeFirewallRuleFromSecurityPolicy |
gce_instance |
updateFirewallSecurityPolicy |
gce_instance |
updateVpnTunnel |
gce_instance_group |
compute.instanceGroups.attachHealthCheck |
gce_instance_group |
compute.instanceGroups.attachNetworkInterfaces |
gce_instance_group |
compute.instanceGroups.detachHealthCheck |
gce_instance_group |
compute.regionInstanceGroups.attachHealthCheck |
gce_instance_group |
compute.regionInstanceGroups.detachHealthCheck |
gce_instance_template |
compute.zoneInstanceTemplates.insert |
gce_network |
compute.networks.switchLegacyToCustomMode |
gce_project |
compute.projects.moveProjectNetworking |
gce_reserved_address |
compute.addresses.insertDnsForwarding |
gce_reserved_address |
compute.addresses.insertNatAddress |
gce_ssl_certificate |
RE_ENCRYPT_SSL_CERTIFICATE_FLOW |
gce_ssl_certificate |
SslCertificateAddManagedCertificateChallenge |
gce_ssl_certificate |
SslCertificateProvisionManagedCertificate |
gce_ssl_certificate |
SslCertificateRemoveManagedCertificateChallenge |
gce_subnetwork |
compute.subnetworks.createOrUpdateVirtualSubnetwork |
vpn_tunnel |
updateVpnTunnel |