Esegui il routing dei log verso destinazioni supportate

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 a 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 dati, esegui l'upgrade di un bucket di log in modo da utilizzare Analisi dei log, per poi creare un set di dati BigQuery collegato. Per informazioni sulla visualizzazione delle voci di log archiviate nei bucket di log, consulta Eseguire query e visualizzare la panoramica dei log e Visualizzare i log con routing a bucket Cloud Logging.
  • Set di dati BigQuery: fornisce l'archiviazione delle voci di log nei set di dati BigQuery. Puoi utilizzare 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 in modo da utilizzare l'analisi dei log, per poi creare un set di dati BigQuery collegato. Per informazioni sulla visualizzazione delle voci di log instradate a BigQuery, consulta Visualizzare i log con routing a BigQuery.
  • Bucket Cloud Storage: fornisce l'archiviazione delle voci di log in Cloud Storage. Le voci dei log vengono archiviate come file JSON. Per informazioni sulla visualizzazione delle voci di log instradate a Cloud Storage, consulta Visualizzare i log con routing a Cloud Storage.
  • Argomento Pub/Sub: fornisce assistenza per le integrazioni di terze parti. Le voci dei log vengono formattate in JSON e quindi instradate a un argomento Pub/Sub. Per informazioni sulla visualizzazione delle voci di log instradate a Pub/Sub, consulta Visualizzare i log con routing a Pub/Sub.
  • Splunk: fornisce il supporto per Splunk. Devi eseguire il routing delle voci di log a un argomento Pub/Sub e poi 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 altro progetto Google Cloud, 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 altro progetto. Per informazioni sui percorsi da utilizzare, consulta 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 ciascun 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 da una cartella. Per le istruzioni, consulta Collate e instrada i log a livello di organizzazione verso 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 unico posto.
  • Visualizza l'anteprima delle voci di log corrispondenti dal filtro del sink prima di creare il sink.
  • Crea e autorizza le destinazioni dei sink per i 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:

  1. Assicurati di avere un progetto Google Cloud con log visualizzabili in Esplora log.

  2. Attiva l'API Cloud Logging.

    Abilita l'API

  3. Per ottenere le autorizzazioni necessarie per creare, modificare o eliminare un sink, chiedi all'amministratore di concederti il ruolo IAM Writer configurazione log (roles/logging.configWriter) per il tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Potresti anche essere in grado di 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.

  4. Hai una risorsa in una destinazione supportata o puoi crearne una.

    Per eseguire il routing dei log a una destinazione, la destinazione deve esistere prima di creare il sink. Puoi creare la destinazione in qualsiasi progetto Google Cloud in qualsiasi organizzazione.

    Potrebbero essere applicate alcune limitazioni durante il routing dei log ad altre destinazioni. Per ulteriori informazioni, consulta 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. Consulta Impostare le autorizzazioni di destinazione.

Per creare un sink:

Console

  1. Nel pannello di navigazione della console Google Cloud, seleziona Logging, quindi Router dei log:

    Vai a Router dei log

  2. Seleziona un progetto Google Cloud esistente.

  3. Seleziona Crea sink.

  4. 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 quest'ultimo, ma puoi eliminarlo e crearne uno nuovo.

    • Descrizione sink (facoltativa): descrivi lo scopo o il caso d'uso del sink.

  5. Nel riquadro Destinazione sink, seleziona il servizio sink e la destinazione utilizzando il menu Seleziona servizio sink.

    1. Per eseguire il routing dei log su un servizio che si trova nello stesso progetto Google Cloud, seleziona una delle seguenti opzioni:

      • Bucket Cloud Logging: seleziona o crea un bucket Logging.
      • Tabella BigQuery: seleziona o crea il set di dati specifico per ricevere i log con routing. Puoi anche utilizzare le tabelle partizionate.
      • Bucket Cloud Storage: seleziona o crea il bucket Cloud Storage specifico 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 altro progetto. Per informazioni sul percorso da utilizzare, consulta Formati del percorso di destinazione.
  6. Nel riquadro Scegli i log da includere nel sink:

    1. Nel campo Crea filtro di inclusione, inserisci un'espressione di filtro che corrisponda alle voci di log che vuoi includere. Per scoprire di più sulla sintassi per la scrittura dei filtri, consulta Linguaggio delle query di 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.

    2. Per verificare di aver inserito il filtro corretto, seleziona Anteprima log. Si apre Esplora log in una nuova scheda con il filtro precompilato.

  7. (Facoltativo) Nel riquadro Scegli i log da filtrare dal sink, segui questi passaggi:

    1. Inserisci un nome nel campo Nome filtro di esclusione.

    2. Nel campo Crea un filtro di esclusione, inserisci un'espressione di filtro che corrisponda alle voci di log da 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 20.000 caratteri.

  8. Seleziona Crea sink.

API

  1. 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 dove vuoi che vengano indirizzati i tuoi log. Per eseguire il routing dei log a un altro progetto o a una destinazione che fa parte di un altro progetto, imposta il campo 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, destination avrà il seguente aspetto:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  2. 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 funzione sample 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.
  3. Chiama projects.sinks.create per creare il sink.

  4. Se la risposta dell'API contiene una chiave JSON etichettata "writerIdentity", concedi all'account di servizio del sink l'autorizzazione a scrivere nella destinazione del sink. Per ulteriori informazioni, consulta Impostare le autorizzazioni della destinazione.

    Non è necessario impostare le autorizzazioni di destinazione se la risposta dell'API non contiene una chiave JSON etichettata "writerIdentity".

Per saperne di più sulla creazione dei sink utilizzando l'API Logging, consulta il riferimento LogSink.

gcloud

Per creare un sink, esegui questo comando gcloud logging sinks create.

Specifica 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 rinominare il sink, ma puoi eliminarlo e crearne uno nuovo.
  • SINK_DESTINATION: il servizio e la destinazione dove vuoi instradare i log. Per eseguire il routing dei log a un altro progetto o a una destinazione che si trova in un altro progetto, imposta SINK_DESTINATION con il percorso appropriato, come descritto in Formati percorso di destinazione.

    Ad esempio, se la destinazione del sink è un set di dati BigQuery, SINK_DESTINATION ha 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 progetto Google Cloud vengono instradati alla destinazione.
    • --exclusion: utilizza questo flag per impostare un filtro di esclusione per le voci di log che vuoi escludere dal sink. Puoi anche utilizzare la funzione sample 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 essere questo:

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 maggiori informazioni sulla creazione di sink utilizzando Google Cloud CLI, inclusi altri flag ed esempi, consulta la documentazione di riferimento su gcloud logging sinks.

L'avvio del routing dei log dei nuovi sink di log nei bucket Cloud Storage potrebbe richiedere diverse ore. I sink per 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. ma la prima voce di log ricevuta da BigQuery determina lo schema per la 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 dei 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 sink. I filtri sink vengono trattati come dati di servizio.

Formati del percorso di destinazione

Se esegui il routing a una destinazione che si trova in un altro progetto, devi fornire le informazioni sul servizio Logging, BigQuery, Cloud Storage o Pub/Sub e sulla destinazione:

  • Per instradare le voci di log a un bucket di log di Cloud Logging che si trova in un altro progetto Google Cloud, 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 instradare 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, il sink interrompe il routing delle voci di log.
  • Se il sink ha un account di servizio dedicato, l'eliminazione di quel sink comporta anche l'eliminazione 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 delle modifiche apportate a un sink potrebbe richiedere alcuni minuti.

Di seguito sono riportate le istruzioni per la gestione di un sink in un progetto Google Cloud. Anziché un progetto Google Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione:

Console

  1. Nel pannello di navigazione della console Google Cloud, seleziona Logging, quindi Router dei log:

    Vai a Router dei log

  2. Seleziona il progetto Google Cloud che contiene il tuo sink utilizzando il selettore di risorse in qualsiasi punto della console Google Cloud:

    Seleziona un progetto dal menu a discesa.

  3. 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 un riepilogo della tabella dei sink. Ogni riga della tabella contiene informazioni sulle proprietà di un sink:

  • Attivato: indica se lo stato del sink è attivo o disattivato.
  • Tipo: il servizio di destinazione del sink, ad esempio Cloud Logging bucket.
  • Nome: l'identificatore del sink, come fornito al momento della creazione del sink, ad esempio _Default.
  • Descrizione: la descrizione del sink, fornita al momento della creazione del sink.
  • Destination: nome completo della destinazione per la quale verranno inviate le voci dei log con routing.
  • Creato: la data e l'ora di creazione del sink.
  • Ultimo aggiornamento: la data e l'ora dell'ultima modifica del sink.

Per ogni riga della tabella, il menu Altre azioni 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 disattivare il sink e interrompere il routing dei log alla destinazione del sink. Per maggiori informazioni sulla disattivazione dei sink, consulta Interrompere l'archiviazione dei log nei bucket di log.
  • Abilita sink: consente di attivare un sink disattivato e di riavviare i log di routing nella destinazione del sink.
  • Elimina sink: consente di eliminare il sink e interrompere il routing dei log alla destinazione del sink.
  • Risoluzione dei problemi del sink: apre Esplora log in cui puoi risolvere gli errori del sink.
  • Visualizza volume dei log del sink e percentuali di errori: apre Metrics Explorer in cui puoi visualizzare e analizzare i dati del 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 disattivare un sink, chiama projects.sink.update e imposta la proprietà disabled su true.

    Per riattivare il sink, chiama projects.sink.update e imposta la proprietà disabled su false.

  • Per eliminare un sink, chiama projects.sinks.delete.

    Per saperne di più su uno di questi metodi per la gestione dei sink utilizzando l'API Logging, consulta il riferimento LogSink.

gcloud

  • Per visualizzare l'elenco dei sink per il tuo progetto Google Cloud, utilizza il comando gcloud logging sinks list, che corrisponde al metodo dell'API Logging projects.sinks.list:

    gcloud logging sinks list
    

    Per visualizzare l'elenco dei 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 Logging projects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  • Per aggiornare un sink, utilizza il comando gcloud logging sinks update, che corrisponde al metodo API projects.sink.update.

    Puoi aggiornare un sink per modificare la destinazione, i filtri e la descrizione oppure per disattivare 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 denominata my-project-sink in una nuova destinazione del bucket Cloud Storage denominata my-second-gcs-bucket, il 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 API projects.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 API projects.sinks.delete:

    gcloud logging sinks delete SINK_NAME
    

    Per saperne di più sulla gestione dei sink utilizzando Google Cloud CLI, consulta il 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 i nomi corrispondenti.

Non puoi disattivare il sink _Required. Puoi disabilitare il sink _Default per interrompere l'archiviazione dei log nel bucket _Default. Puoi anche disattivare tutti i sink definiti dall'utente.

Quando disabiliti tutti i sink nel tuo progetto Google Cloud che inviano log al bucket _Default, in quel bucket di log non verranno archiviati nuovi log. Il bucket _Default è vuoto quando tutti i log archiviati in precedenza nel bucket _Default hanno completato il periodo di conservazione del bucket.

Per disabilitare i sink del progetto Google Cloud che instradano i log al bucket _Default, segui questi passaggi:

Console

  1. Nel pannello di navigazione della console Google Cloud, seleziona Logging, quindi Router dei log:

    Vai a Router dei log

  2. Per trovare tutti i sink che instradano i log al bucket _Default, filtra i sink in base alla destinazione, quindi inserisci _Default.

    Trova tutti i sink che instradano i log al bucket predefinito.

  3. Per ogni sink, seleziona Menu, quindi Disattiva sink.

Ora i sink sono disabilitati e il tuo progetto Google Cloud non eseguirà più il sink dei log delle route sul bucket _Default.

Per riattivare un sink disabilitato e riavviare i log di routing alla destinazione del sink, segui questi passaggi:

  1. Nel pannello di navigazione della console Google Cloud, seleziona Logging, quindi Router dei log:

    Vai a Router dei log

  2. Per trovare tutti i sink disattivati precedentemente configurati per il routing dei log al bucket _Default, filtra i sink in base alla destinazione e inserisci _Default.

  3. Per ogni sink, seleziona Menu, quindi Attiva sink.

API

  1. Per visualizzare i sink per il tuo progetto Google Cloud, chiama il metodo dell'API Logging projects.sinks.list.

    Identifica i sink con routing al bucket _Default.

  2. Ad esempio, per disabilitare il sink _Default, chiama projects.sink.update e imposta la proprietà disabled su true.

Il sink _Default è ora disabilitato e non instrada più i log al bucket _Default.

Per disabilitare gli altri sink nel progetto Google Cloud con routing al bucket _Default, ripeti i passaggi precedenti.

Per riattivare un sink, chiama projects.sink.update e imposta la proprietà disabled su false.

gcloud

  1. Per visualizzare l'elenco dei sink per il tuo progetto Google Cloud, utilizza il comando gcloud logging sinks list, che corrisponde al metodo dell'API Logging projects.sinks.list:

    gcloud logging sinks list
    
  2. Identifica i sink con routing al bucket _Default. Per descrivere un sink, inclusa la visualizzazione del nome della destinazione, utilizza il comando gcloud logging sinks describe, che corrisponde al metodo dell'API Logging projects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  3. Ad esempio, per disabilitare il sink _Default, utilizza il comando gcloud logging sinks update e includi il flag --disabled:

    gcloud logging sinks update _Default  --disabled
    

Il sink _Default è ora disabilitato e non instrada più i log al bucket _Default.

Per disabilitare gli altri sink nel progetto Google Cloud con 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 le autorizzazioni della 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 non esista già l'account di servizio richiesto. 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 di fatturazione.

L'identità autore di un sink è l'identificatore dell'account di servizio associato al sink. Tutti i sink hanno un'identità autore, ad eccezione di quelli che scrivono in un bucket di log nell'attuale progetto Google Cloud. Quando la destinazione di un sink è un bucket di log nel progetto Google Cloud attuale, il sink non richiede autorizzazioni di destinazione aggiuntive. Di conseguenza, il valore del campo writer Identity è elencato nella console come None e non viene riportato dall'API e dai comandi di Google Cloud CLI.

Di seguito sono riportate le istruzioni per impostare le autorizzazioni a livello di progetto Google Cloud per il routing del sink verso la sua destinazione. Anziché un progetto Google Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione:

Console

  1. Per recuperare l'identità dell'autore del sink, ovvero un indirizzo email, dal nuovo sink:

    1. Nel pannello di navigazione della console Google Cloud, seleziona Logging, quindi Router dei log:

      Vai a Router dei log

    2. Seleziona Menu, quindi Visualizza dettagli sink. L'identità dell'autore viene visualizzata nel riquadro Dettagli sink.

  2. Se il valore del campo writerIdentity contiene un indirizzo email, vai al passaggio successivo. Se il valore è None, non è necessario configurare le autorizzazioni di destinazione per il sink.

  3. Per copiare negli appunti l'identità dell'autore del sink, fai clic su Copia.

  4. Se disponi dell'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à autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Creatore oggetti Storage (roles/storage.objectCreator).
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Editor dati BigQuery (roles/bigquery.dataEditor).
    • Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi concedi al ruolo Publisher Pub/Sub (roles/pubsub.publisher).
    • Per le destinazioni dei bucket Logging in diversi progetti Google Cloud, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi concedile il ruolo Writer bucket di log (roles/logging.bucketWriter).
    • Per le destinazioni dei progetti Google Cloud, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Writer log (roles/logging.logWriter). In particolare, un'entità ha bisogno dell'autorizzazione logging.logEntries.route.
    Se non disponi dell'accesso come Proprietario alla destinazione del sink, chiedi a un proprietario del progetto di aggiungere l'identità autore come entità.

API

  1. Chiama il metodo API projects.sinks.list per elencare i sink nel progetto Google Cloud.

  2. Individua il sink di cui vuoi modificare le autorizzazioni e, se i dettagli del sink contengono una chiave JSON con etichetta "writerIdentity", vai al passaggio successivo. Quando i dettagli non includono un campo "writerIdentity", non è necessario configurare le autorizzazioni di destinazione per il sink.

  3. Se disponi dell'accesso come Proprietario IAM alla destinazione, aggiungi l'account di servizio alla destinazione seguendo questi passaggi:

    • Per le destinazioni Cloud Storage, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Creatore oggetti Storage (roles/storage.objectCreator).
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Editor dati BigQuery (roles/bigquery.dataEditor).
    • Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi concedi al ruolo Publisher Pub/Sub (roles/pubsub.publisher).
    • Per le destinazioni dei bucket Logging in diversi progetti Google Cloud, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi concedile il ruolo Writer bucket di log (roles/logging.bucketWriter).
    • Per le destinazioni dei progetti Google Cloud, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Writer log (roles/logging.logWriter). In particolare, un'entità ha bisogno dell'autorizzazione logging.logEntries.route.
    Se non disponi dell'accesso come Proprietario alla destinazione del sink, chiedi a un proprietario del progetto di aggiungere l'identità autore come entità.

gcloud

  1. Recupera l'account di servizio dal campo writerIdentity nel sink:

    gcloud logging sinks describe SINK_NAME
    
  2. Individua il sink di cui vuoi modificare le autorizzazioni e, se i dettagli del sink contengono una riga con writerIdentity, vai al passaggio successivo. Quando i dettagli non includono un campo writerIdentity, non è necessario configurare le autorizzazioni di destinazione per il sink.

    Il valore del campo SERVICE_ACCT_NAME nei passaggi seguenti è l'identità dell'autore, che è simile al seguente:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  3. Se disponi dell'accesso come Proprietario IAM alla destinazione, aggiungi l'account di servizio alla destinazione seguendo questi passaggi:

    • Per le destinazioni Cloud Storage, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Creatore oggetti Storage (roles/storage.objectCreator).
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Editor dati BigQuery (roles/bigquery.dataEditor).
    • Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi concedi al ruolo Publisher Pub/Sub (roles/pubsub.publisher).
    • Per le destinazioni dei bucket Logging in diversi progetti Google Cloud, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi concedile il ruolo Writer bucket di log (roles/logging.bucketWriter).
    • Per le destinazioni dei progetti Google Cloud, aggiungi l'identità autore del sink come entità utilizzando IAM, quindi assegnale il ruolo Writer log (roles/logging.logWriter). In particolare, un'entità ha bisogno dell'autorizzazione logging.logEntries.route.
    Se non disponi dell'accesso come Proprietario alla destinazione del sink, chiedi a un proprietario del progetto di aggiungere l'identità autore come entità.

    Ad esempio, per concedere il ruolo Writer log (roles/logging.logWriter) all'account di servizio service-123456789012@gcp-sa-logging.iam.gserviceaccount.com nel progetto my-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'
    

Limitazioni della destinazione

A seconda della destinazione a cui instrada i log, potrebbero essere presenti alcune limitazioni.

Route ai bucket di log in diversi progetti Google Cloud

Le seguenti limitazioni si applicano quando instrada i log ai bucket di log in diversi progetti Google Cloud:

  • Error Reporting è disabilitato sui log archiviati in bucket di log che utilizzano chiavi di crittografia gestite dal cliente.

Instrada a progetti Google Cloud diversi

Le seguenti limitazioni si applicano quando esegui il routing dei log su diversi progetti Google Cloud:

  • Esiste un limite di un hop. Ad esempio, se esegui il routing delle voci di log dal progetto A al progetto B, non puoi instradare le voci di log dal progetto B a un progetto diverso.

  • Gli audit log non sono instradati al bucket _Required nel progetto di destinazione. Devi creare un altro sink o bucket per archiviarli.

  • Se l'organizzazione o la cartella che contiene il progetto Google Cloud a cui viene eseguito il routing dispone di sink aggregati esistenti, il routing dei log non verrà eseguito da questi sink aggregati.

Esempi di codice

Per utilizzare il codice della libreria client per configurare i sink nei linguaggi scelti, consulta Librerie client di Logging: sink di log.

Esempi di filtro

Di seguito sono riportati alcuni esempi di filtro particolarmente utili durante la creazione di sink.

Per ulteriori esempi che potrebbero essere utili per la creazione dei filtri di inclusione e di esclusione, consulta Esempi di query.

Ripristina il filtro del sink _Default

Se hai modificato il filtro per il sink _Default, ti consigliamo di 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")

Escludere i log di container e pod di Google Kubernetes Engine

Per escludere i log dei pod e dei container di Google Kubernetes Engine per il sistema GKE namespaces, utilizza il filtro seguente:

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 di nodo, pod e 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 non necessari 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 archiviato nei bucket di log, utilizza Metrics Explorer in Cloud Monitoring.

Compatibilità

Mentre Cloud Logging offre la possibilità di escludere l'archiviazione dei log in un bucket di log, ti consigliamo di conservare i log che consentano di supportarli. L'utilizzo di questi log può aiutarti a risolvere e identificare rapidamente i problemi delle tue applicazioni.

Ad esempio, i log di sistema GKE sono utili per la risoluzione dei problemi delle applicazioni e dei cluster GKE perché sono generati per gli eventi che si verificano nel tuo cluster. Questi log possono aiutarti a determinare se l'errore dell'applicazione è causato dal codice dell'applicazione o dal cluster GKE sottostante. 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, consigliamo di scrivere come minimo i log di sistema (labels."dataflow.googleapis.com/log_type"="system") e quelli di supportabilità (labels."dataflow.googleapis.com/log_type"="supportability") nei bucket di log. Questi log sono essenziali per l'osservazione e la risoluzione dei problemi delle pipeline Dataflow e gli utenti potrebbero non essere in grado di utilizzare la pagina Dettagli job di Dataflow per visualizzare i log dei job.

Passaggi successivi