I log delle attività di Compute Engine non sono uguali ai log di controllo. Gli audit log contengono le stesse informazioni dei log delle attività precedenti e altro ancora. Ti consigliamo di utilizzare i log di controllo anziché i log delle attività. Se utilizzi già i log delle attività, leggi Eseguire la migrazione dai log delle attività agli audit log.
Compute Engine fornisce log delle attività che ti consentono di monitorare determinati eventi che interessano il tuo progetto, come chiamate API ed eventi di sistema. Nello specifico, 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 creare un disco, aggiornare i metadati delle istanze, creare un gruppo di istanze, modificare un tipo di macchina vengono registrate nei log delle attività. Le chiamate API che non aggiornano una risorsa, ad esempio le richiesteget
elist
, non vengono registrate. - Log delle operazioni: gli eventi
GCE_OPERATION_DONE
vengono registrati quando una chiamata API cambia lo stato di una risorsa e 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 e vengono registrati 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 come la data e 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 di fatturazione o utilizzo su un progetto, ad esempio il tempo di esecuzione di un'istanza di macchina virtuale o il relativo costo. Per i log di fatturazione, consulta la funzionalità di esportazione della fatturazione. Per i log di utilizzo, consulta Visualizzazione dei report sull'utilizzo.
I log delle attività vengono forniti nell'ambito del servizio Cloud Logging. Per ulteriori informazioni sul logging in generale, consulta la documentazione di Cloud Logging.
Prima di iniziare
- Conoscenza di Cloud Logging.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. Google Cloud
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
-
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 tuo 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 dall'elenco a discesa iniziale.
- Nell'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 scoprire 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 relativa agli oggetti di voce 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 del 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 seguente formato:
<dataset>.compute_googleapis_com_activity_log_YYYYMMDD
Per informazioni su come eseguire query sui log delle attività in BigQuery, consulta Voce del log in BigQuery.
Lettura dei log delle attività
I log delle attività sono strutturati come descritto nella documentazione del tipo LogEntry.
I log delle attività di Compute Engine contengono:
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 trovare ulteriori dettagli sui campi comuni forniti con ogni voce del log dalla descrizione di 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 in formato oggetto JSON e memorizzati nel campo structPayload
. Il campo structPayload
contiene le seguenti informazioni:
Campo | Tipo | Descrizione |
---|---|---|
actor |
string | Indirizzo email dell'account utente o di servizio che esegue l'operazione. È lo stesso
del user_id . |
error |
string | Fornisce i dettagli di eventuali errori se si è verificato un errore durante questo evento. Questo valore viene omesso se non sono stati rilevati errori. In genere, gli errori impediscono il completamento corretto di una richiesta. 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 di
inserimento di una nuova istanza
viene visualizzata come Consulta il riferimento API per un elenco completo dei metodi API. |
event_timestamp_us |
timestamp | Il timestamp, in microsecondi, dell'evento registrato dall'epoca standard.
È lo stesso di 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 sono disponibili informazioni aggiuntive da mostrare. |
operation |
string | Quando viene effettuata una richiesta API per aggiornare o modificare le risorse, viene creato un oggetto operazione corrispondente per monitorare la richiesta fino al completamento.
Questa proprietà descrive l'oggetto 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 livello di zona, un'operazione a livello di regione o un'operazione a livello globale, a seconda della risorsa modificata dall'operazione. |
request |
JSON | Contiene il corpo della richiesta API originale.
"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\" }" } |
resource |
JSON | Descrive la risorsa specifica che viene modificata da questo evento.
Ad esempio, un'istanza di una macchina virtuale (VM) è considerata una risorsa e un'esempio di proprietà della risorsa per una VM è la seguente:
"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 essere presenti più voci di log con lo stesso |
trace_id |
string | Un ID traccia fornito dal sistema utilizzato per raggruppare i log correlati attivati da una singola azione. Ad esempio:
trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e" |
user_agent |
string | Descrive il client che ha eseguito questa richiesta. Ad esempio, se hai utilizzato le librerie client Cloud per Java per effettuare una richiesta, l'user agent saràGoogle-API-Java-Client . |
version |
string | La versione corrente del formato del log indica lo schema dei log di Compute Engine. La versione corrente è 1.2.
Nota:il controllo della versione dell'API Compute Engine è separato dal controllo della versione del formato dei log. |
warning |
string | Fornisce i dettagli di eventuali avvisi se si sono verificati durante questo evento. Un avviso è informativo e non influisce sulla richiesta, a differenza degli errori. |
Voce di log di esempio
Ad esempio, una voce di log di esempio che descrive una richiesta API per creare una VM è la seguente:
{ "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à ritirate
Le seguenti voci del log delle attività non saranno più disponibili dal 1° giugno 2020 e non verranno sostituite:
Tipo di risorsa monitorata | SubTypeEvent |
---|---|
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 |