Un set di dati BigQuery collegato a un bucket di log ti consente di eseguire query e analizzare i dati di log utilizzando servizi BigQuery come BigQuery Studio e Data Studio. Poiché un set di dati BigQuery collegato è un puntatore di sola lettura al tuo bucket di log, puoi unire i dati di log ad altri set di dati e creare policy di avviso basate su SQL senza duplicare i dati o pagare per uno spazio di archiviazione BigQuery separato.
Non puoi creare un set di dati BigQuery collegato per una vista di analisi. Se non hai familiarità con Observability Analytics, consulta la panoramica di Observability Analytics.
Quando è necessario un set di dati BigQuery collegato
Non è necessario un set di dati BigQuery collegato quando vuoi eseguire query sui dati di log o sui dati di log e di traccia. In questi scenari, puoi utilizzare la pagina Analisi di osservabilità. Puoi anche salvare e condividere le query e salvarle in una dashboard personalizzata. Per informazioni su come eseguire query sui dati di traccia, consulta Esegui query e analizza le tracce.
È necessario un set di dati BigQuery collegato per eseguire una delle seguenti operazioni:
- Unire i dati voce di log con altri set di dati BigQuery.
- Eseguire query sui dati di log da un altro servizio, come BigQuery Studio o Data Studio.
- Crea una policy di avviso che monitori il risultato di una query SQL. Per saperne di più, consulta Monitora i risultati delle query SQL con una policy di avviso.
Un set di dati BigQuery collegato per un bucket di log consente a BigQuery di leggere i dati nel bucket di log.
Come i bucket di log e le visualizzazioni dei log vengono mappati 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. Il nome del set di dati BigQuery collegato viene specificato 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 è lo stesso della visualizzazione 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 BigQuery collegato per quel bucket di log con il nome my_dataset, la pagina Explorer di BigQuery visualizza una voce my_project.
Un elemento secondario della voce my_project è un set di dati con il nome my_dataset, che elenca una vista virtuale denominata _AllLogs.
Implicazioni del controllo degli accessi quando si utilizzano set di dati BigQuery collegati
Quando un'entità esegue una query su una vista in un set di dati BigQuery collegato, la query viene eseguita tramite il livello di autorizzazione BigQuery, non tramite il livello di autorizzazione Cloud Logging. Pertanto, i ruoli e le autorizzazioni BigQuery concessi all'entità nel set di dati BigQuery collegato determinano se può eseguire query sul set di dati.
Non puoi limitare un'entità a una vista virtuale specifica all'interno di un set di dati collegato. Quando a un'entità è stato concesso l'accesso al set di dati BigQuery collegato, può eseguire query su ogni vista del set di dati.
Azioni di sistema che si verificano quando crei un set di dati collegato
Quando crei un link su un set di dati di osservabilità, si verifica quanto segue:
Google Cloud Observability potrebbe creare i seguenti service account o modificare le relative concessioni dei ruoli IAM:
Service account di monitoraggio: obbligatorio per creare un link a un set di dati BigQuery collegato. Per consentire a Google Cloud Observability di creare questo account di servizio, deve essere abilitata l'API Cloud Monitoring.
Service account Cloud Observability: obbligatorio per creare un link su un set di dati di osservabilità.
Service account Cloud Logging: obbligatorio per creare un link su un bucket di log.
Gli audit log registrano la richiesta di creazione di un link e la richiesta dell'agente di servizio amministratore di concedere al service account di Monitoring il ruolo IAM di Agente di servizio Monitoring. Questi log registrano anche il completamento dell'operazione a lunga esecuzione.
Prima di iniziare
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Per ottenere le autorizzazioni necessarie per creare un set di dati collegato, chiedi all'amministratore di concederti il ruolo IAM Writer configurazione log (
roles/logging.configWriter) 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.
Assicurati che sia stato eseguito l'upgrade del bucket di log per utilizzare Observability Analytics:
-
Nella console Google Cloud , vai alla pagina Archiviazione dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
- Se il bucket di log mostra Esegui l'upgrade, fai clic su Esegui l'upgrade e completa la finestra di dialogo.
-
Crea un set di dati BigQuery collegato
Se vuoi utilizzare le funzionalità di BigQuery per analizzare i dati di log, esegui l'upgrade di un bucket di log per utilizzare Observability Analytics, quindi crea un set di dati collegato. Con questa configurazione, Logging archivia i dati di log, ma BigQuery può leggerli.
Console Google Cloud
Per creare un link a un set di dati BigQuery per un bucket di log esistente, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Archiviazione dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Individua il bucket di log e verifica che la colonna Observability Analytics disponibile mostri Apri.
Se in questa colonna viene visualizzato Esegui l'upgrade, non è stato eseguito l'upgrade del bucket di log per l'utilizzo di Observability Analytics. Configura Observability Analytics:
- Fai clic su Esegui upgrade.
- Fai clic su Conferma nella finestra di dialogo.
Al termine dell'upgrade, vai al passaggio successivo.
Nel bucket di log, fai clic su Altromore_vert, quindi su Modifica bucket.
Si apre la finestra di dialogo Modifica bucket di log.
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 progetto Google Cloud . Se inserisci il nome di un set di dati esistente, ricevi il seguente errore:
Dataset name must be unique in the selected region.Fai clic su Fine, quindi su Aggiorna bucket.
Dopo che Logging visualizza il nome del set di dati collegato nella pagina Archiviazione log, potrebbero essere necessari alcuni 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 Observability Analytics, esegui il comando gcloud logging links create:
gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
Il valore LINK_ID che fornisci viene utilizzato come nome del set di dati BigQuery e deve essere univoco per il tuo progetto Google Cloud .
Il comando links create è asincrono. Il risultato di un metodo asincrono è un oggetto Operation e contiene informazioni sull'avanzamento del metodo. Al termine del metodo, l'oggetto Operation contiene lo stato. Per saperne di più, consulta Metodi API asincroni.
Il completamento del comando links create richiede alcuni minuti.
Ad esempio, il seguente comando crea un set di dati collegato denominato
mylink per il bucket di 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 progetto Google Cloud . Se provi a creare un set di dati con lo stesso nome di un set di dati esistente, riceverai 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 Observability Analytics, viene visualizzato 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 per utilizzare Observability Analytics, chiama il metodo asincrono projects.locations.buckets.links.create dell'API Cloud Logging.
Prepara gli argomenti per il metodo come segue:
- Crea il corpo della richiesta per il comando
create. Il corpo della richiesta è formattato come oggettoLink. - Per il parametro di query del comando, utilizza
linkId=LINK_ID. Il valore LINK_ID che fornisci viene utilizzato come nome del set di dati BigQuery e 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 saperne di più, consulta Metodi API asincroni.
Il completamento del metodo links.create richiede alcuni minuti.
Il nome del set di dati deve essere univoco per ogni progetto Google Cloud . Se provi a creare un set di dati con lo stesso nome di un set di dati esistente, riceverai 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 Observability Analytics, viene visualizzato il seguente errore:
A link can only be created for an analytics-enabled bucket.