Esegui una query su un set di dati BigQuery collegato

Questo documento descrive come creare un set di dati collegato per un bucket di log e come eseguire query e visualizzare i log in quel set di dati. Ad esempio, puoi creare un set di dati collegato per eseguire query su Log Analytics utilizzando gli slot BigQuery riservati. Allo stesso modo, potresti volere un set di dati collegato per poter scrivere query in BigQuery o in Looker Studio che uniscano i dati di log ad altri dati aziendali.

Non puoi creare un set di dati BigQuery collegato per una vista Analytics.

Se non hai familiarità con Analisi dei log, consulta la panoramica di Analisi dei log.

Quando hai bisogno di un set di dati collegato

Non è necessario un set di dati BigQuery collegato per eseguire query su una visualizzazione log nella pagina Analisi dei log quando utilizzi il servizio Cloud Logging predefinito. Puoi salvare e condividere le query e salvare i risultati in una dashboard personalizzata.

Hai bisogno di un set di dati BigQuery collegato quando vuoi eseguire una delle seguenti operazioni:

Un set di dati BigQuery collegato per un bucket di log consente a BigQuery di leggere i dati nel bucket di log.

Se esegui le query sugli slot BigQuery riservati, queste sono soggette ai prezzi di calcolo della capacità. Inoltre, se esegui query sui tuoi dati utilizzando un servizio diverso da Log Analytics, le query potrebbero essere soggette ad altri addebiti in base a quel servizio. Consulta la pagina dei prezzi del servizio che stai utilizzando.

Come vengono mappati i bucket e le visualizzazioni dei log agli oggetti BigQuery

Quando crei un set di dati BigQuery collegato per un bucket di log, un nuovo set di dati diventa disponibile per BigQuery. Specifichi il nome del set di dati collegato durante la procedura di collegamento. Tutte le visualizzazioni dei log all'interno del bucket di log vengono mappate automaticamente alle visualizzazioni virtuali nel set di dati. Il nome di una visualizzazione virtuale è uguale a quello della visualizzazione dei log corrispondente.

Ad esempio, supponiamo che il progetto my_project abbia un bucket di log denominato example e che questo bucket di log abbia una visualizzazione di log denominata _AllLogs. Se crei un set di dati collegato per questo bucket di log con il nome my_dataset, nella pagina Explorer di BigQuery viene visualizzata una voce my_project. Un elemento secondario della voce my_project è un set di dati con il nome my_dataset e questo set di dati elenca una visualizzazione virtuale denominata _AllLogs.

Implicazioni del controllo dell'accesso quando si utilizzano set di dati collegati

Quando un principal esegue una query su una vista in un set di dati BigQuery collegato, la query viene eseguita tramite il livello di autorizzazione BigQuery, non il livello di autorizzazione Cloud Logging. Pertanto, i ruoli e le autorizzazioni BigQuery concessi al principal sul set di dati collegato determinano se può eseguire query sul set di dati.

Non puoi limitare un principal a una visualizzazione virtuale specifica all'interno di un set di dati collegato. Quando a un principal è stato concesso l'accesso al set di dati collegato, può eseguire query su ogni vista in quel set di dati.

Prima di iniziare

Questa sezione descrive i passaggi che devi completare prima di poter utilizzare Log Analytics.

Configura i bucket di log

Assicurati che i bucket di log siano stati sottoposti all'upgrade per utilizzare Analisi dei log:

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

    Vai ad Archiviazione dei log

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

  2. Per ogni bucket di log con una visualizzazione dei log che vuoi interrogare, assicurati che la colonna Log Analytics disponibile mostri Apri. Se viene visualizzato il pulsante Esegui l'upgrade, fai clic su Esegui l'upgrade e completa la finestra di dialogo.

Configura ruoli e autorizzazioni IAM

Questa sezione descrive i ruoli o le autorizzazioni IAM necessari per utilizzare Log Analytics:

  • Per ottenere le autorizzazioni necessarie per utilizzare Log Analytics ed eseguire query sulle visualizzazioni log, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:

    • Per eseguire query sui bucket di log _Required e _Default: Visualizzatore log (roles/logging.viewer)
    • Per eseguire query su tutte le visualizzazioni dei log in un progetto: Logs View Accessor (roles/logging.viewAccessor)

    Puoi limitare un'entità a una visualizzazione di log specifica aggiungendo una condizione IAM alla concessione del ruolo Accessore visualizzazione log effettuata a livello di progetto oppure aggiungendo un binding IAM al file dei criteri della visualizzazione di log. Per ulteriori informazioni, vedi Controllare l'accesso a una visualizzazione log.

    Si tratta delle stesse autorizzazioni necessarie per visualizzare le voci di log nella pagina Esplora log. Per informazioni su ruoli aggiuntivi necessari per eseguire query sulle visualizzazioni dei bucket definiti dall'utente o per eseguire query sulla visualizzazione _AllLogs del bucket di log _Default, consulta Ruoli Cloud Logging.

  • Per ottenere le autorizzazioni necessarie per creare ed eseguire query sui set di dati collegati, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto che archivia il bucket dei log:

    • Per creare e visualizzare i set di dati collegati: Writer configurazione log (roles/logging.configWriter)
    • Per eseguire query sui set di dati collegati utilizzando gli slot BigQuery riservati:
    • Per visualizzare i set di dati collegati in BigQuery Studio, concedi tutti i ruoli menzionati in questo passaggio e il seguente ruolo. Puoi concedere questo ruolo a un set di dati o al tuo progetto: Visualizzatore dati BigQuery (roles/bigquery.dataViewer)

Verificare la versione di BigQuery

Se vuoi eseguire query sui dati di log dalla pagina Log Analytics utilizzando slot BigQuery riservati e se utilizzi progetti con controlli di servizio Virtual Private Cloud (VPC), assicurati di utilizzare BigQuery Enterprise Edition. Per ulteriori informazioni, vedi Informazioni sulle versioni di BigQuery.

Se vuoi utilizzare le funzionalità di BigQuery per analizzare i dati di log, esegui l'upgrade di un bucket di log per utilizzare l'analisi dei log, quindi crea un set di dati collegato. Con questa configurazione, Logging archivia i dati di log, ma BigQuery può leggerli.

Google Cloud console

Per creare un link a un set di dati BigQuery per un bucket di log esistente, procedi nel seguente modo:

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

    Vai ad Archiviazione dei log

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

  2. Individua il bucket dei log e verifica che la colonna Log Analytics disponibile mostri Apri.

    Se questa colonna mostra Esegui upgrade, significa che non è stato eseguito l'upgrade del bucket di log per utilizzare Analisi dei log. Configura Log Analytics:

    1. Fai clic su Esegui upgrade.
    2. Fai clic su Conferma nella finestra di dialogo.

    Al termine dell'upgrade, vai al passaggio successivo.

  3. Nel bucket di log, fai clic su Altro, e poi su Modifica bucket.

    Si apre la finestra di dialogo Modifica bucket log.

  4. Seleziona Crea un nuovo set di dati BigQuery che si colleghi a questo bucket e inserisci il nome del nuovo set di dati.

    Il nome del set di dati deve essere univoco per ogni Google Cloud progetto. Se inserisci il nome di un set di dati esistente, ricevi il seguente errore: Dataset name must be unique in the selected region.

  5. Fai clic su Fine, quindi su Aggiorna bucket.

    Dopo che Logging mostra il nome del set di dati collegato nella pagina Archiviazione log, potrebbero essere necessari diversi minuti prima che BigQuery riconosca il set di dati.

gcloud

Per creare un set di dati collegato per un bucket di log di cui è stato eseguito l'upgrade per utilizzare Analisi dei log, esegui il comando gcloud logging links create:

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

Il LINK_ID che fornisci viene utilizzato come nome del set di dati BigQuery e il valore di questo campo deve essere univoco per il tuo progetto Google Cloud .

Il comando links create è asincrono. Il valore restituito di un metodo asincrono è un oggetto Operation e contiene informazioni sullo stato di avanzamento del metodo. Al termine del metodo, l'oggetto Operation contiene lo stato. Per ulteriori informazioni, consulta Metodi API asincroni.

Il completamento del comando links create richiede diversi minuti.

Ad esempio, il seguente comando crea un set di dati collegato denominato mylink per il bucket dei log denominato my-bucket:

gcloud logging links create mylink --bucket=my-bucket --location=global

Il nome del set di dati deve essere univoco per ogni Google Cloud progetto. Se tenti di creare un set di dati con lo stesso nome di un set di dati esistente, ricevi il seguente errore:

BigQuery dataset with name "LINK_ID" already exists.

Se tenti di creare un set di dati collegato per un bucket di log di cui non è stato eseguito l'upgrade per utilizzare Analisi dei log, viene segnalato il seguente errore:

A link can only be created for an analytics-enabled bucket.

REST

Per creare un set di dati BigQuery collegato per un bucket di log esistente di cui è stato eseguito l'upgrade, utilizza l'analisi dei log e chiama il metodo asincrono projects.locations.buckets.links.create dell'API Cloud Logging.

Prepara gli argomenti per il metodo nel seguente modo:

  1. Crea il corpo della richiesta per il comando create. Il corpo della richiesta è formattato come un oggetto Link.
  2. Per il parametro di query del comando, utilizza linkId=LINK_ID. Il LINK_ID che fornisci viene utilizzato come nome del set di dati BigQuery e il valore di questo campo deve essere univoco per il tuo progetto Google Cloud .

La risposta ai metodi asincroni è un oggetto Operation. Questo oggetto contiene informazioni sullo stato di avanzamento del metodo. Al termine del metodo, l'oggetto Operation contiene lo stato. Per ulteriori informazioni, consulta Metodi API asincroni.

Il completamento del metodo links.create richiede diversi minuti.

Il nome del set di dati deve essere univoco per ogni Google Cloud progetto. Se tenti di creare un set di dati con lo stesso nome di un set di dati esistente, ricevi il seguente errore:

BigQuery dataset with name "LINK_ID" already exists.

Se tenti di creare un set di dati collegato per un bucket di log di cui non è stato eseguito l'upgrade per utilizzare Analisi dei log, viene segnalato il seguente errore:

A link can only be created for an analytics-enabled bucket.

Esegui query da BigQuery

Se hai un bucket log che utilizza Log Analytics e set di dati collegati, puoi visualizzare ed eseguire query sui set di dati collegati utilizzando la pagina BigQuery Studio. Con questa configurazione, puoi analizzare i tuoi set di dati utilizzando comandi, workflow e set di dati disponibili solo in BigQuery Studio.

Per aprire BigQuery da Log Analytics ed eseguire query sul set di dati collegato, procedi nel seguente modo:

  1. Assicurati che esista un set di dati collegato per il bucket dei log che ospita la visualizzazione dei log su cui vuoi eseguire la query:

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

      Vai ad Archiviazione dei log

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

    2. Individua il bucket di log e verifica che la colonna Set di dati collegato a BigQuery mostri un URL. Se la voce è vuota, devi creare un set di dati collegato. Per informazioni su questi passaggi, consulta Crea un set di dati BigQuery collegato.

  2. Nella console Google Cloud , vai alla pagina Analisi dei log:

    Vai ad Analisi dei log

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

  3. Nell'elenco Visualizzazioni di log, trova e seleziona la visualizzazione di log.

  4. Nel riquadro Schema, seleziona Query.

    Il riquadro Query viene compilato con una query predefinita. Puoi anche inserire una query nel riquadro Query o modificare una query visualizzata.

  5. Nella barra degli strumenti, espandi il pulsante etichettato Esegui query o Esegui su BigQuery e seleziona Apri in BigQuery.

    Si apre la pagina BigQuery Studio. L'istruzione FROM della query viene modificata per specificare il percorso della visualizzazione dei log nel set di dati collegato utilizzando la sintassi del percorso della tabella di BigQuery.

    Puoi anche modificare la query visualizzata.

  6. Nella pagina BigQuery Studio, fai clic su Esegui query.

Esegui query di Analisi dei log negli slot BigQuery riservati

Quando vuoi ridurre al minimo il tempo di esecuzione delle query Log Analytics, esegui queste query sugli slot BigQuery riservati. La pagina Analisi dei log è preconfigurata per utilizzare il servizio Analisi dei log predefinito, il che significa che le tue query devono competere per uno spazio di slot limitato con altre query. Quando non ci sono slot disponibili, l'esecuzione della query viene ritardata. Puoi eliminare questi ritardi eseguendo le query sugli slot BigQuery riservati.

Per eseguire una query SQL su una visualizzazione log:

  1. Assicurati che esista un set di dati collegato per il bucket dei log che ospita la visualizzazione dei log su cui vuoi eseguire la query:

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

      Vai ad Archiviazione dei log

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

    2. Individua il bucket di log e verifica che la colonna Set di dati collegato a BigQuery mostri un URL. Se la voce è vuota, devi creare un set di dati collegato. Per informazioni su questi passaggi, consulta Crea un set di dati BigQuery collegato.

  2. Assicurati di aver configurato gli slot BigQuery riservati:

    1. Creare una prenotazione con spazi dedicati
    2. Creare assegnazioni di prenotazione
  3. Configura Analisi dei log per eseguire le query sugli slot BigQuery riservati:

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

      Vai ad Analisi dei log

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

    2. Nell'elenco Visualizzazioni log, trova la visualizzazione e seleziona Query o inserisci una query.

      Se nel riquadro della query viene visualizzato un messaggio di errore che fa riferimento all'istruzione FROM, la tabella non può essere risolta in una visualizzazione log specifica. Per informazioni su come risolvere questo errore, vedi Errore FROM clause must contain exactly one log view.

    3. Vai alla barra degli strumenti e assicurati che venga visualizzato un pulsante con l'etichetta Esegui in BigQuery.

      Se la barra degli strumenti mostra Esegui query, fai clic su Impostazioni e seleziona BigQuery.

      Se il pulsante Esegui su BigQuery è disattivato, devi creare un set di dati collegato.

    4. Esegui la query.

      Puoi utilizzare le opzioni della barra degli strumenti per formattare la query, cancellarla e aprire la documentazione di riferimento di BigQuery SQL.

Passaggi successivi