Questo documento spiega come creare e gestire i sink per instradare le voci di log alle destinazioni supportate.
Cloud Logging crea e gestisce automaticamente un account di servizio per i sink di log che instradano i log verso una destinazione che non è un bucket di log nel progetto Google Cloud attuale. Puoi creare e gestire un account di servizio utilizzato dai sink in più progetti. Per ulteriori informazioni, consulta Configurare i sink di log con account di servizio gestiti dall'utente.
Panoramica
I sink controllano il modo in cui Cloud Logging instrada i log. Utilizzando i sink, puoi instradare alcuni o tutti i log alle seguenti destinazioni:
- Bucket Cloud Logging: fornisce spazio di archiviazione in Cloud Logging. Un bucket di log può archiviare le voci di log ricevute da più progetti Google Cloud. Per combinare i dati di Cloud Logging con altri, puoi eseguire l'upgrade di un bucket di log per l'utilizzo dell'analisi dei log e poi creare un set di dati BigQuery collegato. Per informazioni sulla visualizzazione delle voci di log archiviate nei bucket di log, consulta Panoramica dei log di query e visualizzazioni e Visualizzare i log con routing ai bucket Cloud Logging.
- Set di dati BigQuery: fornisce l'archiviazione delle voci di log nei set di dati BigQuery. Puoi usare le funzionalità di analisi dei big data nelle voci di log archiviate. Per combinare i dati di Cloud Logging con altre origini dati, ti consigliamo di eseguire l'upgrade dei bucket di log per utilizzare l'analisi dei log e poi di creare un set di dati BigQuery collegato. Per informazioni sulla visualizzazione delle voci di log indirizzate a BigQuery, consulta Visualizzare i log indirizzati a BigQuery.
- Bucket Cloud Storage: fornisce l'archiviazione delle voci di log in Cloud Storage. Le voci di log vengono archiviate come file JSON. Per informazioni sulla visualizzazione delle voci di log indirizzate a Cloud Storage, vedi Visualizzare i log con routing a Cloud Storage.
- Argomento Pub/Sub: fornisce supporto per le integrazioni di terze parti. Le voci di log vengono formattate in JSON e quindi instradate a un argomento Pub/Sub. Per informazioni sulla visualizzazione delle voci di log indirizzate a Pub/Sub, consulta Visualizzare i log con routing a Pub/Sub.
- Splunk: fornisce assistenza per Splunk. Devi instradare le voci di log a un argomento Pub/Sub e quindi sottoscrivere l'argomento utilizzando Splunk.
- Progetto Google Cloud: esegui il routing delle voci di log a un altro progetto Google Cloud. Quando esegui il routing delle voci di log a un progetto Google Cloud diverso, il router dei log del progetto di destinazione riceve le voci di log e le elabora. I sink nel progetto di destinazione determinano il modo in cui vengono instradate le voci di log ricevute. Error Reporting può analizzare le voci di log quando il progetto di destinazione le instrada a un bucket di log di proprietà del progetto di destinazione.
- Altre risorse: instrada le voci di log a una destinazione supportata che si trova in un progetto diverso. Per informazioni sui percorsi da utilizzare, vedi Formati del percorso di destinazione.
I sink appartengono a una determinata risorsa Google Cloud: progetti Google Cloud, account di fatturazione, cartelle e organizzazioni. Quando la risorsa riceve una voce di log, la instrada in base ai sink contenuti dalla risorsa. La voce di log viene inviata alla destinazione associata a ogni sink corrispondente.
Un sink aggregato è un tipo di sink che combina e instrada le voci di log dalle risorse Google Cloud contenute da un'organizzazione o una cartella. Per le istruzioni, consulta Facoltare e indirizzare i log a livello di organizzazione alle destinazioni supportate.
Per creare e gestire i sink, puoi utilizzare la console Google Cloud, l'API Cloud Logging e Google Cloud CLI. L'utilizzo della console Google Cloud offre i seguenti vantaggi rispetto agli altri metodi:
- Visualizza e gestisci tutti i tuoi sink in un'unica posizione.
- Visualizza l'anteprima delle voci di log corrispondenti al filtro del sink prima di creare il sink.
- Crea e autorizza le destinazioni dei sink.
Prima di iniziare
Le istruzioni in questo documento descrivono la creazione e la gestione dei sink a livello di progetto Google Cloud. Puoi anche creare sink non aggregati per account di fatturazione, cartelle e organizzazioni.
Per iniziare, segui questi passaggi:
Assicurati di avere un progetto Google Cloud con i log che puoi visualizzare in Esplora log.
-
Attiva l'API Cloud Logging.
-
Per ottenere le autorizzazioni necessarie per creare, modificare o eliminare un sink, chiedi all'amministratore di concederti il ruolo IAM Writer configurazione dei log (
roles/logging.configWriter
) per il tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per informazioni sulla concessione dei ruoli IAM, consulta la guida al controllo dell'accesso di Logging.
Hai una risorsa in una destinazione supportata o puoi crearne una.
Per eseguire il routing dei log in una destinazione, questa deve esistere prima della creazione del sink. Puoi creare la destinazione in qualsiasi progetto Google Cloud in qualsiasi organizzazione.
Quando esegui il routing dei log ad altre destinazioni, potrebbero essere applicate alcune limitazioni. Per saperne di più, vedi Limitazioni della destinazione.
Creazione di un sink
Di seguito sono riportate le istruzioni per creare un sink in un progetto Google Cloud. Anziché un progetto Google Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione.
Puoi creare fino a 200 sink per progetto Google Cloud.
Dopo aver creato il sink, assicurati che Logging disponga delle autorizzazioni appropriate per scrivere i log nella destinazione del sink. Vedi Impostare le autorizzazioni per la destinazione.
Per creare un sink, segui questi passaggi:
Console
-
Nella console Google Cloud, vai alla pagina Router dei log:
Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Seleziona un progetto Google Cloud esistente.
Seleziona Crea sink.
Nel riquadro Dettagli sink, inserisci i seguenti dettagli:
Nome sink: fornisci un identificatore per il sink. Tieni presente che dopo aver creato il sink, non puoi rinominare il sink, ma puoi eliminarlo e creare un nuovo sink.
(Facoltativo) Descrizione sink: descrivi lo scopo o il caso d'uso del sink.
Nel riquadro Destinazione sink, seleziona il servizio e la destinazione del sink utilizzando il menu Seleziona servizio sink.
Per eseguire il routing dei log a un servizio nello stesso progetto Google Cloud, seleziona una delle seguenti opzioni:
- Bucket Cloud Logging: seleziona o crea un bucket di Logging.
- Tabella BigQuery: seleziona o crea lo specifico set di dati per ricevere i log con routing. Puoi anche utilizzare le tabelle partizionate.
- Bucket Cloud Storage: seleziona o crea lo specifico bucket Cloud Storage per ricevere i log con routing.
- Argomento Pub/Sub: seleziona o crea l'argomento specifico per ricevere i log con routing.
- Splunk: seleziona l'argomento Pub/Sub per il tuo servizio Splunk.
- Progetto Google Cloud: seleziona o crea il progetto Google Cloud per ricevere i log con routing.
- Altra risorsa: seleziona questa opzione per instradare le voci di log a una destinazione supportata che si trova in un progetto diverso. Per informazioni sul percorso da utilizzare, vedi Formati del percorso di destinazione.
Nel riquadro Scegli i log da includere nel sink, segui questi passaggi:
Nel campo Crea filtro di inclusione, inserisci un'espressione di filtro che corrisponda alle voci di log da includere. Per scoprire di più sulla sintassi per la scrittura dei filtri, consulta Linguaggio di query in Logging.
Se non imposti un filtro, tutti i log della risorsa selezionata vengono instradati alla destinazione.
Ad esempio, potresti voler creare un filtro per instradare tutti i log di accesso ai dati a un singolo bucket di Logging. Questo filtro ha il seguente aspetto:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.
Per verificare di aver inserito il filtro corretto, seleziona Anteprima log. Esplora log si apre in una nuova scheda con il filtro precompilato.
(Facoltativo) Nel riquadro Scegli i log per escludere il sink, segui questi passaggi:
Nel campo Nome filtro di esclusione, inserisci un nome.
Nel campo Crea un filtro di esclusione, inserisci un'espressione di filtro che corrisponda alle voci di log che vuoi escludere. Puoi anche utilizzare la funzione
sample
per selezionare una parte delle voci di log da escludere.
Puoi creare fino a 50 filtri di esclusione per sink. Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.
Seleziona Crea sink.
API
Per creare un sink di logging nel progetto Google Cloud, utilizza projects.sinks.create nell'API Logging. Nell'oggetto LogSink, fornisci i valori richiesti appropriati nel corpo della richiesta del metodo:
name
: un identificatore del sink. Tieni presente che dopo aver creato il sink, non puoi rinominare il sink, ma puoi eliminarlo e crearne uno nuovo.destination
: il servizio e la destinazione a cui vuoi che vengano instradati i log. Per eseguire il routing dei log a un progetto diverso o a una destinazione che si trova in un altro progetto, imposta il campodestination
con il percorso appropriato, come descritto in Formati del percorso di destinazione.Ad esempio, se la destinazione del sink è un set di dati BigQuery, il valore
destination
sarà simile al seguente:bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Nell'oggetto LogSink, fornisci le informazioni facoltative appropriate:
filter
: imposta la proprietàfilter
in modo che corrisponda alle voci di log che vuoi includere nel sink. Se non imposti un filtro, tutti i log del progetto Google Cloud vengono instradati alla destinazione. Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.exclusions
: imposta questa proprietà in modo che corrisponda alle voci di log che vuoi escludere dal sink. Puoi anche utilizzare la funzionesample
per selezionare una parte delle voci di log da escludere. Puoi creare fino a 50 filtri di esclusione per sink.description
: imposta questa proprietà per descrivere lo scopo o il caso d'uso del sink.
Chiama projects.sinks.create per creare il sink.
Se la risposta dell'API contiene una chiave JSON con l'etichetta
"writerIdentity"
, concedi all'account di servizio del sink l'autorizzazione per scrivere nella destinazione del sink. Per maggiori informazioni, consulta Impostare le autorizzazioni di destinazione.Non è necessario impostare le autorizzazioni di destinazione se la risposta dell'API non contiene una chiave JSON con l'etichetta
"writerIdentity"
.
Per ulteriori informazioni sulla creazione di sink utilizzando l'API Logging, consulta il riferimento LogSink.
gcloud
Per creare un sink, esegui questo comando gcloud logging sinks create
.
Fornisci i valori appropriati per le variabili nel comando come segue:
- SINK_NAME: un identificatore del sink. Tieni presente che dopo aver creato il sink, non puoi rinominarlo, ma puoi eliminarlo e crearne uno nuovo.
SINK_DESTINATION: il servizio e la destinazione dove vuoi che vengano instradati i log. Per eseguire il routing dei log a un progetto diverso o a una destinazione che si trova in un altro progetto, imposta SINK_DESTINATION con il percorso appropriato, come descritto in Formati del percorso di destinazione.
Ad esempio, se la destinazione del sink è un set di dati BigQuery, SINK_DESTINATION avrà il seguente aspetto:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
OPTIONAL_FLAGS include i seguenti flag:
--log-filter
: utilizza questo flag per impostare un filtro che corrisponda alle voci di log che vuoi includere nel sink. Se non imposti un filtro, tutti i log del tuo progetto Google Cloud vengono indirizzati alla destinazione.--exclusion
: utilizza questo flag per impostare un filtro di esclusione per le voci di log da escludere dal sink. Puoi anche utilizzare la funzionesample
per selezionare una parte delle voci di log da escludere. Questo flag può essere ripetuto; puoi creare fino a 50 filtri di esclusione per sink.--description
: utilizza questo flag per descrivere lo scopo o il caso d'uso del sink.
gcloud logging sinks create SINK_NAME SINK_DESTINATION OPTIONAL_FLAGS
Ad esempio, per creare un sink in un bucket Logging, il comando potrebbe avere il seguente aspetto:
gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \ --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
Per ulteriori informazioni sulla creazione di sink utilizzando
Google Cloud CLI, inclusi altri flag ed esempi, consulta la
documentazione di riferimento di gcloud logging sinks
.
L'avvio dei log di routing potrebbe richiedere diverse ore per l'avvio dei nuovi sink di log nei bucket Cloud Storage. I sink in Cloud Storage vengono elaborati ogni ora, mentre altri tipi di destinazione vengono elaborati in tempo reale.
I sink non definiscono lo schema per i set di dati BigQuery. Invece, la prima voce di log ricevuta da BigQuery determina lo schema della tabella di destinazione. Per saperne di più, consulta Schema di BigQuery per i log con routing.
Per informazioni su come visualizzare i log nelle destinazioni sink, consulta Visualizzare i log con routing ai bucket Cloud Logging.
Dopo aver creato il sink, puoi visualizzare il numero e il volume delle voci di log ricevute utilizzando le metriche logging.googleapis.com/exports/
.
Se ricevi notifiche di errore, consulta Risolvere i problemi di routing e sink.
Non inserire informazioni sensibili nei filtri del sink. I filtri sink vengono trattati come dati di servizio.
Formati percorso di destinazione
Se esegui il routing a una destinazione che si trova in un altro progetto, devi fornire le informazioni sulla destinazione e sul servizio Logging, BigQuery, Cloud Storage o Pub/Sub:
Per instradare le voci di log a un bucket di log di Cloud Logging che si trova in un progetto Google Cloud diverso, la destinazione del sink è la seguente:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Per instradare le voci di log a un altro progetto Google Cloud, il percorso di destinazione del sink è il seguente:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Per indirizzare le voci di log a un set di dati BigQuery, la destinazione del sink è la seguente:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Per instradare le voci di log a un bucket Cloud Storage, la destinazione del sink è la seguente:
storage.googleapis.com/BUCKET_NAME
Per instradare le voci di log a un argomento Pub/Sub, la destinazione del sink è la seguente:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Gestisci i sink
Dopo aver creato i sink, puoi eseguire queste azioni sui sink:
- Visualizza dettagli sink
- Aggiorna sink
- Disattiva sink
- Elimina sink
- Risoluzione dei problemi relativi al sink
- Visualizza volume di log e tassi di errore del sink
Prima di eliminare un sink, considera quanto segue:
- Non puoi eliminare i sink
_Default
e_Required
, ma puoi disabilitare i sink_Default
per interrompere il routing dei log ai bucket di logging_Default
. - Dopo l'eliminazione di un sink, il routing delle voci di log viene interrotto.
- Se il sink ha un account di servizio dedicato, l'eliminazione del sink comporta l'eliminazione anche dell'account di servizio. I sink creati prima del 22 maggio 2023 hanno account di servizio dedicati. I sink creati a partire dal 22 maggio 2023 hanno un account di servizio condiviso. L'eliminazione del sink non comporta l'eliminazione dell'account di servizio condiviso.
L'applicazione di qualsiasi modifica apportata a un sink potrebbe richiedere alcuni minuti.
Di seguito sono riportate le istruzioni per gestire un sink in un progetto Google Cloud. Anziché un progetto Google Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione:
Console
-
Nella console Google Cloud, vai alla pagina Router dei log:
Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Seleziona il progetto Google Cloud che contiene il sink utilizzando il selettore di risorse in qualsiasi punto della console Google Cloud:
Per visualizzare i sink aggregati, seleziona l'organizzazione, la cartella o l'account di fatturazione che contiene il sink.
La pagina Router dei log contiene una tabella di riepilogo dei sink. Ogni riga della tabella contiene informazioni sulle proprietà di un sink:
- Attivato: indica se lo stato del sink è attivato o disattivato.
- Tipo: il servizio di destinazione del sink, ad esempio
Cloud Logging bucket
. - Nome: l'identificatore del sink fornito al momento della creazione del sink, ad esempio
_Default
. - Descrizione: la descrizione del sink, fornita al momento della creazione del sink.
- Destinazione: nome completo della destinazione a cui verranno inviate le voci dei log con routing.
- Creato: la data e l'ora in cui è stato creato il sink.
- Ultimo aggiornamento: la data e l'ora dell'ultima modifica del sink.
Per ogni riga della tabella, il menu Altre azioni more_vert offre le seguenti opzioni:
- Visualizza dettagli sink: mostra il nome, la descrizione, il servizio di destinazione, la destinazione e i filtri di inclusione ed esclusione del sink. Selezionando Modifica, si apre il riquadro Modifica sink.
- Modifica sink: apre il riquadro Modifica sink in cui puoi aggiornare i parametri del sink.
- Disabilita sink: consente di disabilitare il sink e interrompere il routing dei log alla destinazione del sink. Per ulteriori informazioni sulla disattivazione dei sink, consulta Interrompere l'archiviazione dei log nei bucket di log.
- Attiva sink: consente di abilitare un sink disabilitato e riavviare i log di routing nella destinazione del sink.
- Elimina sink: consente di eliminare il sink e interrompere il routing dei log nella destinazione del sink.
- Risoluzione dei problemi del sink: apre Esplora log in cui puoi risolvere gli errori con il sink.
- Visualizza volume di log e tassi di errore del sink: apre Metrics Explorer, in cui puoi visualizzare e analizzare i dati dal sink.
Fai clic sui nomi delle colonne per ordinare i dati in ordine crescente o decrescente.
API
Per visualizzare i sink per il tuo progetto Google Cloud, chiama
projects.sinks.list
.Per visualizzare i dettagli di un sink, chiama
projects.sinks.get
.Per aggiornare un sink, chiama
projects.sink.update
.Puoi aggiornare la destinazione, i filtri e la descrizione di un sink. Puoi anche disattivare o riattivare il sink.
Per disabilitare un sink, chiama
projects.sink.update
e imposta la proprietàdisabled
sutrue
.Per riattivare il sink, chiama
projects.sink.update
e imposta la proprietàdisabled
sufalse
.Per eliminare un sink, chiama
projects.sinks.delete
.Per ulteriori informazioni su uno di questi metodi per la gestione dei sink tramite l'API Logging, consulta il riferimento LogSink.
gcloud
Per visualizzare l'elenco dei sink per il progetto Google Cloud, utilizza il comando
gcloud logging sinks list
, che corrisponde al metodo dell'API Loggingprojects.sinks.list
:gcloud logging sinks list
Per visualizzare l'elenco di sink aggregati, utilizza il flag appropriato per specificare la risorsa che contiene il sink. Ad esempio, se hai creato il sink a livello di organizzazione, utilizza il flag
--organization=ORGANIZATION_ID
per elencare i sink per l'organizzazione.Per descrivere un sink, utilizza il comando
gcloud logging sinks describe
, che corrisponde al metodo dell'API Loggingprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Per aggiornare un sink, utilizza il comando
gcloud logging sinks update
, che corrisponde al metodo APIprojects.sink.update
.Puoi aggiornare un sink per modificare destinazione, filtri e descrizione oppure per disabilitare o riattivare il sink:
gcloud logging sinks update SINK_NAME NEW_DESTINATION --log-filter=NEW_FILTER
Ometti NEW_DESTINATION o
--log-filter
se queste parti non cambiano.Ad esempio, per aggiornare la destinazione del sink denominato
my-project-sink
in una nuova destinazione del bucket Cloud Storage denominatamy-second-gcs-bucket
, il tuo comando avrà questo aspetto:gcloud logging sinks update my-project-sink storage.googleapis.com/my-second-gcs-bucket
Per disabilitare un sink, utilizza il comando
gcloud logging sinks update
, che corrisponde al metodo APIprojects.sink.update
, e includi il flag--disabled
:gcloud logging sinks update _Default --disabled
Per riattivare il sink, utilizza il comando
gcloud logging sinks update
, rimuovi il flag--disabled
e includi il flag--no-disabled
:gcloud logging sinks update _Default --no-disabled
Per eliminare un sink, utilizza il comando
gcloud logging sinks delete
, che corrisponde al metodo APIprojects.sinks.delete
:gcloud logging sinks delete SINK_NAME
Per saperne di più sulla gestione dei sink utilizzando Google Cloud CLI, consulta la documentazione di riferimento di
gcloud logging sinks
.
Interrompi l'archiviazione dei log nei bucket di log
Per ogni progetto Google Cloud, Logging crea automaticamente
due bucket di log: _Required
e _Default
.
Logging crea automaticamente due sink di log, _Required
e _Default
, che instradano i log ai bucket con nomi corrispondenti.
Non puoi disabilitare il sink _Required
. Puoi disabilitare il sink _Default
per interrompere l'archiviazione dei log nel bucket _Default
. Puoi anche disabilitare qualsiasi sink definito dall'utente.
Quando disabiliti tutti i sink nel progetto Google Cloud che inviano i log
al bucket _Default
,
nel bucket di log non viene archiviato nessun nuovo log.
Il bucket _Default
è vuoto quando tutti i log archiviati in precedenza nel bucket _Default
hanno esaurito il periodo di conservazione del bucket.
Per disabilitare i sink del progetto Google Cloud che instradano i log al bucket _Default
, completa questi passaggi:
Console
-
Nella console Google Cloud, vai alla pagina Router dei log:
Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Per trovare tutti i sink che instradano i log al bucket
_Default
, filtra i sink in base alla destinazione, quindi inserisci_Default
.Per ogni sink, seleziona more_vert Menu, quindi Disattiva sink.
Ora i sink sono disabilitati e il progetto Google Cloud non eseguirà più
i sink di route nel bucket _Default
.
Per riattivare un sink disattivato e riavviare i log di routing nella destinazione del sink, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina Router dei log:
Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Per trovare tutti i sink disabilitati precedentemente configurati per il routing dei log al bucket
_Default
, filtra i sink in base alla destinazione e inserisci_Default
.Per ogni sink, seleziona more_vert Menu, quindi Attiva sink.
API
Per visualizzare i sink per il tuo progetto Google Cloud, chiama il metodo dell'API Logging
projects.sinks.list
.Identifica tutti i sink che eseguono il routing al bucket
_Default
.Ad esempio, per disabilitare il sink
_Default
, chiamaprojects.sink.update
e imposta la proprietàdisabled
sutrue
.
Il sink _Default
è ora disabilitato. Non instrada più i log al bucket _Default
.
Per disabilitare gli altri sink nel progetto Google Cloud che eseguono il routing
al bucket _Default
, ripeti i passaggi precedenti.
Per riattivare un sink, chiama
projects.sink.update
e imposta la proprietà disabled
su false
.
gcloud
Per visualizzare l'elenco dei sink per il progetto Google Cloud, utilizza il comando
gcloud logging sinks list
, che corrisponde al metodo dell'API Loggingprojects.sinks.list
:gcloud logging sinks list
Identifica tutti i sink che eseguono il routing al bucket
_Default
. Per descrivere un sink, inclusa la visualizzazione del nome di destinazione, utilizza il comandogcloud logging sinks describe
, che corrisponde al metodo dell'API Loggingprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Ad esempio, per disabilitare il sink
_Default
, utilizza il comandogcloud logging sinks update
e includi il flag--disabled
:gcloud logging sinks update _Default --disabled
Il sink _Default
è ora disabilitato. Non instrada più i log al bucket _Default
.
Per disabilitare gli altri sink nel progetto Google Cloud che eseguono il routing
al bucket _Default
, ripeti i passaggi precedenti.
Per riattivare un sink, utilizza il comando gcloud logging sinks update
, rimuovi il flag --disabled
e includi il flag --no-disabled
:
gcloud logging sinks update _Default --no-disabled
Imposta autorizzazioni per la destinazione
Questa sezione descrive come concedere a Logging le autorizzazioni Identity and Access Management per scrivere i log nella destinazione del sink. Per l'elenco completo dei ruoli e delle autorizzazioni di Logging, consulta Controllo dell'accesso.
Cloud Logging crea un account di servizio condiviso per una risorsa quando viene creato un sink di log, a meno che l'account di servizio richiesto non esista già. L'account di servizio potrebbe esistere perché viene utilizzato lo stesso account di servizio per tutti i sink nella risorsa sottostante. Le risorse possono essere un progetto Google Cloud, un'organizzazione, una cartella o un account.
L'identità writer di un sink è l'identificatore dell'account di servizio
associato al sink. Tutti i sink hanno un'identità writer,
ad eccezione dei sink che scrivono in un bucket di log nel progetto Google Cloud attuale.
Se la destinazione di un sink è un bucket di log nell'attuale progetto Google Cloud, il sink non richiede autorizzazioni di destinazione aggiuntive. Di conseguenza, il valore del campo identità writer è elencato come None
nella console e non viene riportato dall'API e dai comandi dell'interfaccia a riga di comando di Google Cloud CLI.
Di seguito sono riportate le istruzioni per impostare le autorizzazioni a livello di progetto Google Cloud per l'instradamento del sink alla destinazione. Anziché un progetto Google Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione:
Console
Per recuperare l'identità writer del sink, ovvero un indirizzo email, dal nuovo sink, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina Router dei log:
Se usi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Seleziona more_vert Menu, quindi seleziona Visualizza dettagli sink. L'identità autore viene visualizzata nel riquadro Dettagli sink.
-
Se il valore del campo
writerIdentity
contiene un indirizzo email, vai al passaggio successivo. Se il valore èNone
, non devi configurare le autorizzazioni di destinazione per il sink.Per copiare l'identità writer del sink negli appunti, fai clic su content_copy Copia.
Se hai l'accesso come proprietario alla destinazione, aggiungi l'account di servizio come entità IAM nel progetto di destinazione:
- Per le destinazioni Cloud Storage, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Creatore oggetti Storage
(
roles/storage.objectCreator
). - Per le destinazioni BigQuery, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Editor dati BigQuery
(
roles/bigquery.dataEditor
). - Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Publisher Pub/Sub
(
roles/pubsub.publisher
). - Per le destinazioni dei bucket Logging in progetti Google Cloud diversi, aggiungi l'identità writer del sink come entità utilizzando IAM, quindi assegna il ruolo Writer bucket di log
(
roles/logging.bucketWriter
). - Per le destinazioni dei progetti Google Cloud, aggiungi l'identità writer del sink come entità utilizzando IAM, quindi concedi il ruolo Writer log (
roles/logging.logWriter
). In particolare, un'entità ha bisogno dell'autorizzazionelogging.logEntries.route
.
- Per le destinazioni Cloud Storage, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Creatore oggetti Storage
(
API
Chiama il metodo API projects.sinks.list per elencare i sink nel tuo progetto Google Cloud.
Individua il sink di cui vuoi modificare le autorizzazioni e se i dettagli del sink contengono una chiave JSON con l'etichetta
"writerIdentity"
, vai al passaggio successivo. Se i dettagli non includono un campo"writerIdentity"
, non devi configurare le autorizzazioni di destinazione per il sink.Se disponi dell'accesso IAM come proprietario alla destinazione, aggiungi l'account di servizio alla destinazione seguendo questi passaggi:
- Per le destinazioni Cloud Storage, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Creatore oggetti Storage
(
roles/storage.objectCreator
). - Per le destinazioni BigQuery, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Editor dati BigQuery
(
roles/bigquery.dataEditor
). - Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Publisher Pub/Sub
(
roles/pubsub.publisher
). - Per le destinazioni dei bucket Logging in progetti Google Cloud diversi, aggiungi l'identità writer del sink come entità utilizzando IAM, quindi assegna il ruolo Writer bucket di log
(
roles/logging.bucketWriter
). - Per le destinazioni dei progetti Google Cloud, aggiungi l'identità writer del sink come entità utilizzando IAM, quindi concedi il ruolo Writer log (
roles/logging.logWriter
). In particolare, un'entità ha bisogno dell'autorizzazionelogging.logEntries.route
.
- Per le destinazioni Cloud Storage, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Creatore oggetti Storage
(
gcloud
Recupera l'account di servizio dal campo
writerIdentity
del sink:gcloud logging sinks describe SINK_NAME
Individua il sink di cui vuoi modificare le autorizzazioni e se i dettagli del sink contengono una riga con
writerIdentity
, vai al passaggio successivo. Se i dettagli non includono un campowriterIdentity
, non devi configurare le autorizzazioni di destinazione per il sink.Il valore del campo SERVICE_ACCT_NAME nei passaggi seguenti corrisponde all'identità dell'autore, che è simile al seguente:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
Se disponi dell'accesso IAM come proprietario alla destinazione, aggiungi l'account di servizio alla destinazione seguendo questi passaggi:
- Per le destinazioni Cloud Storage, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Creatore oggetti Storage
(
roles/storage.objectCreator
). - Per le destinazioni BigQuery, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Editor dati BigQuery
(
roles/bigquery.dataEditor
). - Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Publisher Pub/Sub
(
roles/pubsub.publisher
). - Per le destinazioni dei bucket Logging in progetti Google Cloud diversi, aggiungi l'identità writer del sink come entità utilizzando IAM, quindi assegna il ruolo Writer bucket di log
(
roles/logging.bucketWriter
). - Per le destinazioni dei progetti Google Cloud, aggiungi l'identità writer del sink come entità utilizzando IAM, quindi concedi il ruolo Writer log (
roles/logging.logWriter
). In particolare, un'entità ha bisogno dell'autorizzazionelogging.logEntries.route
.
Ad esempio, per concedere il ruolo Writer log (
roles/logging.logWriter
) all'account di servizioservice-123456789012@gcp-sa-logging.iam.gserviceaccount.com
nel progettomy-test-project
, esegui questo comando:gcloud projects add-iam-policy-binding my-test-project --member='serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com' --role='roles/logging.logWriter'
- Per le destinazioni Cloud Storage, aggiungi l'identità writer del sink
come entità utilizzando IAM, quindi concedi il
ruolo Creatore oggetti Storage
(
Limitazioni delle destinazioni
A seconda della destinazione a cui si instradano i log, potrebbero essere previste alcune limitazioni.
Instrada ai bucket di log in diversi progetti Google Cloud
Quando esegui il routing dei log ai bucket di log in progetti Google Cloud diversi, si applicano le seguenti limitazioni:
- Error Reporting è disabilitato per i log archiviati nei bucket di log che utilizzano chiavi di crittografia gestite dal cliente.
Instrada a progetti Google Cloud diversi
Quando esegui il routing dei log a progetti Google Cloud diversi, si applicano le seguenti limitazioni:
È previsto un limite di un solo hop. Ad esempio, se esegui l'instradamento delle voci di log dal progetto A al progetto B, non puoi instradarle dal progetto B a un altro progetto.
Gli audit log non vengono instradati al bucket
_Required
nel progetto di destinazione. Devi creare un altro sink o bucket per archiviarli.Se l'organizzazione o la cartella contenente il progetto Google Cloud a cui stai eseguendo il routing ha sink aggregati esistenti, i log non verranno instradati da questi sink.
Esempi di codice
Per utilizzare il codice della libreria client per configurare i sink nei linguaggi che hai scelto, consulta Librerie client di Logging: sink di log.
Esempi di filtro
Di seguito sono riportati alcuni esempi di filtri particolarmente utili durante la creazione di sink.
Per altri esempi che potrebbero essere utili durante la creazione dei filtri di inclusione e di esclusione, consulta Query di esempio.
Ripristina il filtro del sink _Default
Se hai modificato il filtro per il sink _Default
, potresti voler ripristinare
il filtro predefinito. Per farlo, inserisci il seguente filtro di inclusione:
NOT log_id("cloudaudit.googleapis.com/activity") AND NOT \
log_id("externalaudit.googleapis.com/activity") AND NOT \
log_id("cloudaudit.googleapis.com/system_event") AND NOT \
log_id("externalaudit.googleapis.com/system_event") AND NOT \
log_id("cloudaudit.googleapis.com/access_transparency") AND NOT \
log_id("externalaudit.googleapis.com/access_transparency")
Escludi i log di container e pod di Google Kubernetes Engine
Per escludere i log di container e pod di Google Kubernetes Engine per il sistema GKE namespaces
, utilizza il seguente filtro:
resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")
Per escludere i log dei nodi di Google Kubernetes Engine per il sistema GKE
logNames
, utilizza il seguente filtro:
resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")
Per visualizzare il volume dei log dei nodi, dei pod e dei container di Google Kubernetes Engine archiviati nei bucket di log, utilizza Metrics Explorer in Cloud Monitoring.
Escludi i log di Dataflow non richiesti per la supportabilità
Per escludere i log di Dataflow che non sono richiesti per la supportabilità, utilizza il seguente filtro:
resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"
Per visualizzare il volume dei log di Dataflow archiviati nei bucket di log, utilizza Metrics Explorer in Cloud Monitoring.
Supportabilità
Sebbene Cloud Logging offra la possibilità di escludere i log dall'archiviazione in un bucket di log, ti consigliamo di conservare i log che contribuiscono alla supportabilità. L'utilizzo di questi log può aiutarti a risolvere rapidamente i problemi delle tue applicazioni e a identificarli.
Ad esempio, i log di sistema GKE sono utili per risolvere i problemi delle applicazioni e dei cluster GKE, perché vengono generati per gli eventi che si verificano nel cluster. Questi log possono aiutarti a determinare se il codice dell'applicazione o il cluster GKE sottostante sta causando l'errore dell'applicazione. I log di sistema GKE includono anche l'audit logging di Kubernetes generato dal componente server API Kubernetes, che include le modifiche apportate utilizzando il comando kubectl e gli eventi Kubernetes.
Per Dataflow, ti consigliamo di scrivere almeno i log di sistema (labels."dataflow.googleapis.com/log_type"="system"
) e i log di supportabilità (labels."dataflow.googleapis.com/log_type"="supportability"
) per i bucket di log. Questi log sono essenziali per gli sviluppatori per osservare e risolvere i problemi delle pipeline Dataflow e gli utenti potrebbero non essere in grado di utilizzare la pagina Dettagli job di Dataflow per visualizzare i log del job.
Passaggi successivi
Se riscontri problemi durante l'utilizzo dei sink per eseguire il routing dei log, consulta Risolvere i problemi dei log di routing.
Per scoprire come visualizzare i log con routing nelle relative destinazioni e come formattare e organizzare i log, consulta Visualizzare i log nelle destinazioni sink.
Per scoprire di più su come eseguire query e applicare filtri con il linguaggio di query di Logging, consulta Linguaggio di query di Logging.