Scrivi voci di log ed esegui query con gcloud CLI

Questo documento introduce alcune delle funzionalità di Cloud Logging e mostra come:

  • 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 guida rapida, devi avere un progetto Google Cloud con fatturazione abilitata. Se non hai un progetto Google Cloud o se la fatturazione non è abilitata per il tuo progetto Google Cloud, procedi nel seguente modo:
  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

Per iniziare

gcloud CLI include 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 un'istanza di una macchina virtuale (VM) Compute Engine per i comandi gcloud CLI in questa guida rapida. gcloud CLI è preinstallato nell'ambiente Cloud Shell.

Cloud Shell

Verifica che gcloud CLI sia configurato in modo da utilizzare il progetto Google Cloud corretto:

  1. Nella console Google Cloud, fai clic su Attiva Cloud Shell:

    Screenshot del pulsante Cloud Shell nella console Google Cloud.

    Cloud Shell si apre in una finestra e mostra un messaggio di benvenuto. Il messaggio di benvenuto fa eco all'ID progetto configurato:

    Screenshot di Cloud Shell che mostra un messaggio di benvenuto.

  2. Se vuoi utilizzare un progetto Google Cloud diverso da quello elencato nel messaggio di benvenuto, esegui questo comando dopo aver sostituito 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:

  1. Nella console Google Cloud, seleziona Compute Engine, quindi Istanze VM.

  2. Seleziona Crea istanza.

  3. In Identità e accesso API, in Ambiti di accesso, seleziona Imposta l'accesso per ogni API.

  4. Scorri le API fino a trovare l'API Stackdriver Logging. Attiva/disattiva l'accesso a Completo.

  5. Lascia invariati i valori predefiniti di tutte le altre impostazioni e fai clic su Crea. L'istanza VM è pronta per essere utilizzata.

  6. Fai clic su SSH per connetterti alla shell dell'istanza VM. Dopo un istante, si apre una shell Debian GNU/Linux in una finestra e mostra un messaggio di benvenuto.

  7. Esegui questo comando per verificare che gcloud CLI sia configurato per il tuo progetto Compute Engine:

    gcloud config list
    
  8. Se vuoi utilizzare un progetto Google Cloud diverso, esegui questo comando dopo aver sostituito PROJECT_ID con il tuo 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 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:

  1. 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.

  2. 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 crea il log alla ricezione della voce di log.

Elenca le voci di log con gcloud CLI

Puoi recuperare le voci di log da Logging e visualizzarle con gcloud CLI. Ad esempio, per recuperare e visualizzare le voci di 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 alcun codice, consulta Utilizzo di Explorer API. Per leggere un elenco di voci di log da Logging, segui questi passaggi:

  1. Vai alla pagina di riferimento dell'API per il metodo API entries.list:

    Vai alla pagina dell'API Metrics.list

  2. Configura ed esegui il comando API:

    1. Sostituisci PROJECT_ID nel seguente testo:

      "resourceNames": [
      "projects/PROJECT_ID"
      ],
      "filter": "resource.type=global",
      "orderBy": "timestamp desc"
      
    2. Copia il testo aggiornato dal passaggio precedente e incollalo nel campo Corpo della richiesta di Explorer API.

    3. 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 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 scritte utilizzando Esplora log, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

    Assicurati che il progetto Google Cloud sia selezionato nella barra di navigazione di Google Cloud. Se necessario, usa l'elenco a discesa del progetto Google Cloud per selezionarlo.

  2. 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. Possono essere necessari alcuni minuti prima che Logging riceva le voci di log.

  3. Per visualizzare i dettagli di una voce di log, fai clic su Menu.

    I dati della prima voce di log sono archiviati in textPayload. La seconda voce di log contiene dati strutturati archiviati in jsonPayload. Il payload strutturato contiene le chiavi message e weather.

Per informazioni sul formato dei dati delle voci di log, consulta il 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, in base alla chiave e al valore. Ad esempio, per visualizzare tutte le voci di log contenenti il testo simple, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Nel menu Risorsa, seleziona Globale.

  3. Nell'editor di query, inserisci la stringa simple tra virgolette. La visualizzazione dei log mostra solo la voce di log A simple entry.

  4. 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 in cui il campo value contiene partly, procedi nel seguente modo:

  1. L'editor di query contiene la riga resource.type="global". Inserisci questo comando:

    jsonPayload.weather:partly
    
  2. Fai clic su Esegui query. Il risultato è la singola voce di log My second entry.

Esplora log offre anche le query salvate, suggerite e recenti. Per ulteriori informazioni sulle query, consulta Creare query in Esplora log.

Per query di esempio, consulta Esempi di query con Esplora log.

Risoluzione dei problemi

  • Gli errori tipografici e i nomi dei campi sconosciuti comportano il completamento dei comandi dell'interfaccia a riga di comando gcloud con messaggi argomento non valido. Ad esempio, se dimentichi il ciclo in resource.type, viene restituito 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 dell'interfaccia a riga di comando gcloud vengono completati con i messaggi Autorizzazione negata. Ad esempio, se un'istanza VM di Compute Engine è configurata con le impostazioni API predefinite, il comando list viene completato con un errore di autorizzazione negata:

     ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
    

    Per risolvere questa condizione, modifica le autorizzazioni delle istanze VM di Compute Engine in modo da concedere a Cloud Logging l'autorizzazione di lettura seguendo questi passaggi:

    1. Vai alla pagina Dettagli istanza VM della tua istanza VM. Fai clic su Interrompi. L'operazione potrebbe richiedere un paio di minuti.
    2. Per modificare la configurazione, fai clic su Modifica.
    3. Cerca l'intestazione Ambiti di accesso API Cloud e fai clic su Dettagli per visualizzare le impostazioni per ciascuna API. Cambia la voce da API Cloud Logging in Completa. Fai clic su Salva.
    4. 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 un'ulteriore autorizzazione, viene visualizzato un messaggio o un codice di errore:

    • Codice di risposta 200 e nessuna voce: se viene visualizzato il messaggio nextPageToken, significa che Explorer API non ha avuto il tempo di completare la ricerca. Aggiungi un pageToken alla richiesta, imposta il valore in modo che sia uguale a quello fornito con la chiave nextPageToken, quindi riprova a eseguire il comando.
    • Codice di risposta 400: il valore della query non è valido. Ad esempio, se hai sbagliato global come gloobal, il messaggio è Unsupported resource type: gloobal.
    • Codice di risposta 404: l'ID progetto non è valido. Controlla l'ortografia dell'identificatore del progetto.
    • Ti potrebbe essere chiesto di accedere al tuo Account Google e consentire ad Explorer API di accedere al tuo account.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

  1. (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