Scrivi voci di log ed esegui query con gcloud CLI
Google Cloud CLI ti consente di scrivere ed eseguire query sulle voci di log in Cloud Logging dalla riga di comando, in modo da poter testare l'importazione dei log e ispezionare i dati di log senza scrivere codice dell'applicazione. In questa guida rapida, scriverai ed elencherai voci di log strutturate e non strutturate utilizzando gcloud CLI, elencherai le voci di log utilizzando l'API Cloud Logging e visualizzerai ed eseguirai query sui log utilizzando Esplora log.
Prima di iniziare
Per completare questa guida rapida, devi avere un progetto Google Cloud con la fatturazione abilitata. Se non hai un progetto Google Cloud o se non hai abilitato la fatturazione per il tuo progetto Google Cloud , procedi nel seguente modo:-
Installa Google Cloud CLI.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per saperne di più, consulta Accedi a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un progetto Google Cloud .
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Crea un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare, elencare ed eliminare le voci di log, chiedi all'amministratore di concederti il ruolo IAM Logging Admin (roles/logging.admin) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
I ruoli Logs Writer (roles/logging.logWriter) e Visualizzatore log (roles/logging.viewer) contengono le autorizzazioni per creare ed elencare le voci di log. Per eliminare le voci di log, concedi il ruolo Amministratore Logging (roles/logging.admin), che contiene le autorizzazioni per creare, elencare ed eliminare le voci di log. Tieni presente che il ruolo Amministratore Logging (roles/logging.admin) concede anche le autorizzazioni per eseguire tutte le azioni in Logging.
Scrivi voci di log utilizzando gcloud CLI
Logging supporta voci di log con dati strutturati e non strutturati. I dati strutturati sono costituiti da una struttura di dati JSON, ad esempio {"weather": "partly cloudy"}. I dati non strutturati sono 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. gcloud CLI fornisce un'interfaccia a riga di comando per l'API Cloud Logging.
Per scrivere una voce di log con dati non strutturati nel log
my-test-log, esegui il comandogcloud logging write:gcloud logging write my-test-log "A simple entry."Al termine del comando, viene visualizzato 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, Logging interpreta il payload come dati non strutturati.
Se il log my-test-log non esiste, Logging lo crea quando riceve la voce di log.
Elenca le voci di log utilizzando gcloud CLI
Puoi recuperare le voci di log da Logging e visualizzarle utilizzando gcloud CLI. Ad esempio, per recuperare e visualizzare le voci di log con un tipo di risorsa global, esegui il seguente 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'
Per informazioni sulla lettura dei log, consulta la documentazione di riferimento di gcloud logging read.
Visualizza le voci di log in Esplora log
Per visualizzare le voci di log nella console Google Cloud , puoi utilizzare 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, segui questi passaggi:
-
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 nella barra di navigazione Google Cloud. Se necessario, utilizza l'elenco a discesa dei progetti 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 di log, attendi qualche minuto e aggiorna la pagina. Potrebbero essere necessari alcuni minuti prima che Logging riceva le voci di log.
Per visualizzare i dettagli di una voce di log, fai clic sul relativo chevron_right Menu.
I dati della prima voce di log sono archiviati in
textPayload. La seconda voce di log contiene dati strutturati archiviati injsonPayload. Il payload strutturato contiene le chiavimessageeweather.
Per informazioni sul formato dei dati delle voci di log, consulta il tipo LogEntry.
Esegui 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, in base alla chiave e al valore. Ad esempio, per visualizzare tutte le voci di log che contengono il testo simple, segui questi passaggi:
-
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
simpletra virgolette. La visualizzazione dei log mostra solo la voce di logA simple entry.Dopo aver visualizzato il log, rimuovi la stringa di query che hai aggiunto e fai clic su Esegui query. Entrambe le voci di log vengono visualizzate di nuovo.
Per visualizzare tutte le voci di log con dati strutturati che hanno una chiave weather in cui il campo value contiene partly, segui questi passaggi:
L'editor di query contiene la riga
resource.type="global". Inserisci questo comando:jsonPayload.weather:partlyFai clic su Esegui query. Il risultato è la singola voce di log
My second entry.
Esplora log offre anche query salvate, suggerite e recenti. Per saperne di più sulle query, consulta Crea query in Esplora log.
Per query di esempio, consulta Query di esempio con Esplora log.
Risoluzione dei problemi
Gli errori tipografici e i nomi di campi sconosciuti comportano il completamento dei comandi gcloud CLI con messaggi di argomento non valido. Ad esempio, se dimentichi il punto in
resource.type, viene generato l'errore:ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.Se a Cloud Logging non sono state concesse le autorizzazioni di accesso necessarie, i comandi gcloud CLI vengono completati con messaggi di autorizzazione negata. Ad esempio, se un'istanza VM di Compute Engine è configurata con le impostazioni API predefinite, il comando
listviene completato con un errore di autorizzazione negata:ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.Per risolvere questo problema, modifica le autorizzazioni dell'istanza VM di Compute Engine in modo da concedere l'autorizzazione in lettura di Cloud Logging nel seguente modo:
- Vai alla pagina dei dettagli dell'istanza VM per la tua istanza VM. Fai clic su Arresta. Il completamento di questa azione potrebbe richiedere un paio di minuti.
- Per modificare la configurazione, fai clic su Modifica.
- Cerca l'intestazione Ambiti di accesso alle API Cloud e fai clic su Dettagli per visualizzare le impostazioni di ogni API. Cambia la voce da API Cloud Logging a Completo. Fai clic su Salva.
- Per riavviare l'istanza VM, fai clic su Avvia. Dopo qualche istante, la VM è pronta per l'uso.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.
(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 informazioni dettagliate sull'interfaccia a riga di comando di Logging, consulta le pagine di riferimento per il 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.