Scrivi voci di log ed esegui query con gcloud CLI
Questo documento ti introduce ad alcune delle funzionalità di Cloud Logging e ti mostra come fare quanto segue:
- Scrivi voci di log utilizzando Google Cloud CLI.
- Elenca le voci di log utilizzando gcloud CLI.
- Elenca le voci di log utilizzando l'API Logging.
- Visualizzare ed eseguire query sulle voci di log utilizzando Esplora log.
Prima di iniziare
Per completare questa operazione devi avere un progetto Google Cloud con fatturazione abilitata Guida rapida. Se non hai un progetto Google Cloud o se non disponi attivare la fatturazione per il tuo progetto Google Cloud, segui questi passaggi:- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Per iniziare
gcloud CLI ha un gruppo di comandi,
gcloud logging
, che forniscono un'interfaccia a riga di comando per l'API Cloud Logging.
Puoi utilizzare l'ambiente Cloud Shell o una macchina virtuale Compute Engine (VM) per i comandi gcloud CLI in questo Guida rapida. gcloud CLI è preinstallato dell'ambiente Cloud Shell.
Cloud Shell
Verifica che gcloud CLI sia configurato in modo da utilizzare il corretto Progetto Google Cloud:
Nella console Google Cloud, fai clic su terminal. Attivare Cloud Shell.
Cloud Shell si apre in una finestra e mostra un messaggio di benvenuto per creare un nuovo messaggio email. Il messaggio di benvenuto fa eco all'ID progetto configurato.
Se vuoi utilizzare un progetto Google Cloud diverso da quello indicato nel messaggio di benvenuto, quindi esegui questo comando sostituzione di PROJECT_ID con il tuo ID progetto:
gcloud config set project PROJECT_ID
Per ottenere l'ID progetto, consulta Identificazione dei progetti.
Istanza VM
Per creare un'istanza VM di Compute Engine nella console Google Cloud, segui questi passaggi:
Nella console Google Cloud, seleziona Compute Engine e poi Istanze VM.
Seleziona Crea istanza.
In Identità e accesso API, in Ambiti di accesso, seleziona Impostare l'accesso per ogni API.
Scorri le API fino a trovare l'API Stackdriver Logging. Imposta l'accesso su Completo.
Lascia invariate tutte le altre impostazioni predefinite e fai clic su Crea. L'istanza VM è pronta per essere utilizzata.
Fai clic su SSH per connetterti alla shell dell'istanza VM. Dopo un istante, si apre una shell Debian GNU/Linux in una finestra che mostra un per creare un nuovo messaggio email.
Esegui il comando seguente per verificare che gcloud CLI sia configurato per il tuo progetto Compute Engine:
gcloud config list
Se vuoi utilizzare un progetto Google Cloud diverso, esegui seguente comando dopo aver sostituito PROJECT_ID con ID progetto:
gcloud config set project PROJECT_ID
Per ottenere l'ID progetto, consulta Identificazione dei progetti.
Scrivi voci di log utilizzando gcloud CLI
Logging supporta le voci di log con strutturata e non strutturata
e i dati di Google Cloud. I dati strutturati sono costituiti da una struttura di dati JSON, ad esempio
{"weather": "partly cloudy"}
. Dati non strutturati
è una stringa di caratteri; ad esempio "A simple entry"
.
Nei passaggi successivi, utilizzerai gcloud CLI per scrivere una voce di log con
dati non strutturati e una voce di log con dati strutturati:
Scrivi una voce di log con dati non strutturati nel log
my-test-log
:gcloud logging write my-test-log "A simple entry."
Una volta completato il comando, vedrai il messaggio:
Created log entry
.Scrivi una voce di log con dati strutturati nel log
my-test-log
:gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
Quando scrivi una voce di log con dati strutturati, devi includere
--payload-type=json
. Se ometti questo campo, viene generato il log Interpreta il payload come dati non strutturati.
Se il log my-test-log
non esiste, Logging crea il
log quando viene ricevuta la voce di log.
Elenca le voci di log con gcloud CLI
Puoi recuperare le voci di log da Logging e visualizzarle
utilizzando gcloud CLI. Ad esempio, per recuperare e visualizzare il log
con un tipo di risorsa global
, esegui questo comando:
gcloud logging read "resource.type=global"
Il comando restituisce un risultato simile al seguente:
---
insertId: jpj9zjf73t1mn
jsonPayload:
message: My second entry
weather: partly cloudy
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:31.114507977Z'
resource:
labels:
project_id: myloggingproject
type: global
timestamp: '2018-11-01T18:39:31.114507977Z'
---
insertId: vd4m1if7h7u1a
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:19.718100792Z'
resource:
labels:
project_id: myloggingproject
type: global
textPayload: A simple entry
timestamp: '2018-11-01T18:39:19.718100792Z'
Elenca le voci di log utilizzando Explorer API
Per eseguire i metodi dell'API Logging senza scrivere codice, consulta Utilizzare Explorer API. Per leggere un elenco di voci di log da Logging:
Vai alla pagina di riferimento dell'API per il metodo API
entries.list
:Configura ed esegui il comando API:
Sostituisci PROJECT_ID nel seguente testo:
"resourceNames": [ "projects/PROJECT_ID" ], "filter": "resource.type=global", "orderBy": "timestamp desc"
Copia il testo aggiornato dal passaggio precedente e incollalo in nel campo Request body (Corpo della richiesta) di Explorer API.
Fai clic su Execute (Esegui).
Il metodo restituisce una risposta simile alla seguente:
{ "entries": [ { "textPayload": "A simple entry", "insertId": "vd4m1if7h7u1a", "resource": { "type": "global", "labels": { "project_id": "myloggingproject" } }, "timestamp": "2018-11-01T18:39:19.718100792Z", "logName": "projects/myloggingproject/logs/my-test-log", "receiveTimestamp": "2018-11-01T18:39:19.718100792Z" }, { "insertId": "jpj9zjf73t1mn", "jsonPayload": { "message": "My second entry", "weather": "partly cloudy" }, "resource": { "type": "global", "labels": { "project_id": "myloggingproject" } }, "timestamp": "2018-11-01T18:39:31.114507977Z", "logName": "projects/myloggingproject/logs/my-test-log", "receiveTimestamp": "2018-11-01T18:39:31.114507977Z" } ] }
Visualizza le voci di log in Esplora log
Per visualizzare le voci di log nella console Google Cloud, puoi utilizzare la Esplora log. La maggior parte dei progetti Google Cloud archivia un numero elevato di log; puoi selezionare determinate voci di log scrivendo una query.
Per visualizzare le voci di log che hai scritto utilizzando Esplora log, esegui la seguenti:
-
Nella console Google Cloud, vai alla pagina Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Assicurati che il tuo progetto Google Cloud sia selezionato in Google Cloud barra di navigazione. Se necessario, utilizza l'elenco a discesa del progetto Google Cloud per selezionare il tuo progetto Google Cloud.
Nel menu Risorsa, seleziona Globale.
Se non vedi l'opzione di menu Globale o se non vedi le voci del log, attendi qualche minuto e aggiorna la pagina. Può essere necessario un minuti affinché Logging riceva le voci di log.
Per visualizzare i dettagli di una voce di log, fai clic sulla relativa chevron_right Menu.
I dati della prima voce di log sono archiviati in
textPayload
. Il secondo log contiene dati strutturati archiviati injsonPayload
. La payload strutturato contiene le chiavimessage
eweather
.
Per informazioni sul formato dei dati delle voci di log, consulta
Tipo di LogEntry
.
Eseguire query sulle voci di log in Esplora log
Puoi eseguire query sulle voci di log utilizzando l'editor di query e, con i log strutturati,
dalla chiave e dal valore. Ad esempio, per visualizzare tutte le voci di log che contengono il testo simple
:
-
Nella console Google Cloud, vai alla pagina Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Nel menu Risorsa, seleziona Globale.
Nell'editor di query, inserisci la stringa
simple
tra virgolette. La visualizzazione dei log mostra solo la voce di logA simple entry.
Dopo aver visualizzato il log, rimuovi la stringa di query aggiunta e fai clic su Esegui query. Entrambe le voci di log vengono visualizzate di nuovo nel display.
Per visualizzare tutte le voci di log con dati strutturati che hanno una chiave weather
dove il campo value
contiene partly
:
L'editor di query contiene la riga
resource.type="global"
. Inserisci questo comando:jsonPayload.weather:partly
Fai clic su Esegui query. Il risultato è una singola voce di log
My second entry
.
Esplora log offre anche le query salvate, suggerite e recenti. Per ulteriori informazioni sulle query, vedi Crea query in Esplora log.
Per query di esempio, vedi Esempi di query con Esplora log.
Risoluzione dei problemi
Gli errori tipografici e i nomi dei campi sconosciuti comportano gcloud CLI che vengono completati con messaggi di tipo argomento non valido. Ad esempio, se dimentichi la mestruazione in
resource.type
, genera l'errore:ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
Quando a Cloud Logging non sono state concesse le autorizzazioni di accesso necessarie, i comandi dell'interfaccia alla gcloud CLI Messaggi di autorizzazione negata. Ad esempio, se una VM di Compute Engine l'istanza è configurata con le impostazioni API predefinite,
list
Il comando viene completato con un errore di autorizzazione negata:ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
Per correggere questa condizione, modifica le autorizzazioni dell'istanza VM di Compute Engine per concedere l'autorizzazione di lettura a Cloud Logging come segue:
- Vai alla pagina Dettagli istanza VM della tua istanza VM. Fai clic su Interrompi. L'operazione potrebbe richiedere un paio di minuti.
- Per modificare la configurazione, fai clic su Modifica.
- Cerca l'intestazione Ambiti di accesso API Cloud e fai clic su Dettagli per visualizzare le impostazioni per ogni API. Modifica la voce dall'API Cloud Logging a Full. Fai clic su Salva.
- Per riavviare l'istanza VM, fai clic su Avvia. Dopo qualche istante, la VM è pronta per essere utilizzata.
Quando Explorer API non riesce a completare il comando o richiede di autorizzazione, viene visualizzato un messaggio o un codice di errore:
- Codice di risposta 200 e nessuna voce: se il messaggio
nextPageToken
è visualizzato, indica che Explorer API non ha avuto il tempo completare la ricerca. Aggiungi unpageToken
alla richiesta, imposta il valore su uguale a quello fornito con la chiavenextPageToken
e riprova il comando. - Codice di risposta 400: il valore della query non è valido. Ad esempio, se
scrivi in modo errato
global
comegloobal
, allora il messaggio èUnsupported resource type: gloobal
. - Codice di risposta 404: l'ID progetto non è valido. Controlla l'ortografia dell'identificatore del progetto.
- È possibile che ti venga chiesto di accedere al tuo progetto Google Cloud e consenti a Explorer API di accedere al tuo account.
- Codice di risposta 200 e nessuna voce: se il messaggio
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi per le risorse utilizzate in questa pagina, segui questi passaggi.
(Facoltativo) Per eliminare le voci di log che hai creato, esegui questo comando
gcloud
:gcloud logging logs delete my-test-log
Se non elimini le voci di log, queste scadono e vengono rimosse. Per informazioni sulla conservazione, consulta Quote e limiti.
Passaggi successivi
- Per maggiori dettagli sull'interfaccia a riga di comando di Logging, leggi
pagine di riferimento
Gruppo di comandi
gcloud logging
. - Per la documentazione sull'API Logging, consulta API Cloud Logging.
- Per maggiori dettagli su Esplora log, consulta Utilizzo di Esplora log.
- Per scoprire come raccogliere le voci di log dalle istanze VM in Logging, vedi Agenti di Google Cloud Observability.