Configura e gestisci i sink

Questo documento spiega come creare e gestire sink per indirizzare le voci di log a destinazioni supportate.

Panoramica

I sink controllano il modo in cui Cloud Logging instrada i log. Utilizzando i sink, puoi eseguire il routing di alcuni o tutti i log verso le destinazioni supportate.

I sink appartengono a una determinata risorsa di Google Cloud: progetti, account di fatturazione, cartelle e organizzazioni Cloud. Quando la risorsa riceve una voce di log, esegue il routing della voce di log in base ai sink contenuti nella risorsa. La voce di log viene inviata alla destinazione associata a ogni sink corrispondente.

Puoi anche creare sink aggregati per specificare che il sink combina e instrada le voci di log dalle risorse Google Cloud contenute in un'organizzazione o cartella. Per le istruzioni, consulta la pagina Configurare i sink aggregati.

Per creare e gestire i sink, puoi utilizzare la console, l'API Cloud Logging e Google Cloud CLI. L'utilizzo della console presenta i seguenti vantaggi rispetto agli altri metodi:

  • Visualizza e gestisci tutti i sink in un unico posto.
  • Visualizza le voci di log corrispondenti al filtro del sink prima di creare il sink.
  • Crea e autorizza le destinazioni dei sink.

Destinazioni supportate

Puoi indirizzare i log alle seguenti destinazioni:

  • Cloud Storage: file JSON archiviati nei bucket Cloud Storage.
  • Pub/Sub: messaggi JSON inviati a argomenti Pub/Sub. Supporta integrazioni di terze parti, come Splunk, con il logging.
  • BigQuery: tabelle create nei set di dati BigQuery.
  • Un altro bucket Cloud Logging: voci di log contenute nei bucket di log di Cloud Logging.

Prima di iniziare

Le istruzioni in questo documento descrivono la creazione e la gestione di sink a livello di progetto Cloud, ma è possibile creare sink (non aggregati) per account di fatturazione, cartelle e organizzazioni.

Quando inizi, assicurati che:

  • Hai un progetto Google Cloud con log che puoi visualizzare in Esplora log.

  • Hai uno dei seguenti ruoli IAM per il progetto Cloud di origine da cui instradare i log.

    • Proprietario (roles/owner)
    • Amministratore logging (roles/logging.admin)
    • Writer configurazione log (roles/logging.configWriter)

    Le autorizzazioni contenute in questi ruoli consentono di creare, eliminare o modificare i sink. Per informazioni sull'impostazione dei ruoli IAM, consulta la guida al controllo dell'accesso per il logging.

  • Hai una risorsa in una destinazione supportata o hai la possibilità di crearne una.

    La destinazione di routing deve essere creata prima del sink, tramite l'interfaccia a riga di comando di Google Cloud, la console o le API di Google Cloud. Puoi creare la destinazione in qualsiasi progetto Cloud in qualsiasi organizzazione, ma assicurati innanzitutto che l'account di servizio dal sink disponga delle autorizzazioni per scrivere alla destinazione.

Creazione di un sink

Di seguito sono riportate le istruzioni per creare un sink in un progetto Cloud. Invece di un progetto Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione.

Puoi creare fino a 200 sink per progetto 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 di destinazione.

Per creare un sink, segui questi passaggi:

console

  1. Nella console, vai alla pagina Router di log:

    Vai al router dei log

  2. Seleziona un progetto 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 il sink, ma puoi eliminarlo e crearne uno nuovo.

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

  5. Nel riquadro Destinazione sink, seleziona il servizio sink e la destinazione:

    • Seleziona servizio sink: seleziona il servizio in cui vuoi instradare i tuoi log.

    In base al servizio selezionato, puoi scegliere tra le seguenti destinazioni:

    • Bucket di Cloud Logging: seleziona o crea un bucket di logging.
    • Tabella BigQuery: seleziona o crea il particolare set di dati per ricevere i log con routing. Puoi anche utilizzare le tabelle partizionate.
    • Bucket di Cloud Storage: seleziona o crea un bucket Cloud Storage specifico per ricevere i log con routing.
    • Argomento Pub/Sub: seleziona o crea un argomento specifico per ricevere i log con routing.
    • Splunk: seleziona l'argomento Pub/Sub per il servizio Splunk.
    • Altro progetto Cloud: aggiungi manualmente le informazioni sul servizio Logging, BigQuery, Cloud Storage o Pub/Sub nel seguente formato:

      SERVICE.googleapis.com/projects/PROJECT_ID/SINK_DESTINATION/DESTINATION_ID
      

      Ad esempio, se la destinazione sink è un set di dati BigQuery, la destinazione sink sarebbe la seguente:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      

      Tieni presente che se esegui il routing dei log tra progetti Cloud, devi comunque disporre delle autorizzazioni di destinazione appropriate.

  6. Nel riquadro Scegli i log da includere nel sink, procedi nel seguente modo:

    1. Nel campo Crea filtro di inclusione, inserisci un'espressione di filtro che corrisponda alle voci di log da includere. Se non imposti un filtro, tutti i log della risorsa selezionata vengono indirizzati alla destinazione.

      Ad esempio, potresti 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. Viene aperto Esplora log in una nuova scheda con il filtro precompilato.

  7. (Facoltativo) Nel riquadro Scegli i log da filtrare dal sink, procedi nel seguente modo:

    1. Nel campo Nome filtro di esclusione, inserisci un nome.

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

  8. Seleziona Crea sink.

Server

  1. Per creare un sink di logging nel progetto Cloud, utilizza projects.sinks.create nell'API Logging. Nell'oggetto LogSink, fornisci i valori richiesti appropriati nel corpo della richiesta di metodo:

    • name: un identificatore per il 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 indirizzare i log. Ad esempio, se la destinazione 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 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 per il sink.
  3. Chiama projects.sinks.create per creare il sink.

  4. Recupera il nome dell'account di servizio dal campo writer_identity restituito dalla risposta API.

  5. Concedi all'account di servizio l'autorizzazione per scrivere alla destinazione del sink.

    Se non hai l'autorizzazione per apportare la modifica alla destinazione sink, invia il nome dell'account di servizio a qualcuno che può eseguire la modifica per conto tuo.

    Per ulteriori informazioni sulla concessione delle autorizzazioni per gli account di servizio per le risorse, consulta la sezione Impostare le autorizzazioni di destinazione.

Per ulteriori informazioni sulla creazione di sink con l'API Logging, consulta il riferimento LogSink.

gcloud

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

Fornisci i valori appropriati per le variabili nel comando come segue:

  • SINK_NAME: un identificatore per il 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 a cui vuoi indirizzare i log. Ad esempio, se la destinazione 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 da includere nel sink. Se non imposti un filtro, tutti i log del progetto 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 per il sink.
gcloud logging sinks create SINK_NAME
SINK_DESTINATION OPTIONAL_FLAGS

Ad esempio, per creare un sink in un bucket di 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 saperne di più sulla creazione di sink utilizzando Google Cloud CLI, inclusi ulteriori flag ed esempi, consulta il riferimento gcloud logging sinks.

Potrebbero essere necessarie diverse ore per l'avvio dei log di routing per i nuovi sink di log per i bucket Cloud Storage. I sink per Cloud Storage vengono elaborati ogni ora, mentre gli altri tipi di destinazione vengono elaborati in tempo reale.

Per informazioni su come visualizzare i log nelle destinazioni sink, vedi Trovare i log instradati.

Dopo aver creato il sink, puoi visualizzare il numero e il volume delle voci di log ricevute utilizzando le metriche di logging.googleapis.com/exports/.

Se ricevi notifiche di errore, consulta la pagina Risolvere i problemi di routing e di sink.

Routing dei log tra bucket di log in progetti Cloud diversi

Puoi indirizzare i log a una destinazione in un progetto Cloud diverso da quello in cui viene creato il sink.

A questo scopo, devi eseguire una delle seguenti operazioni:

  • Assegna al ruolo dell'account di servizio del sink il ruolo roles/logging.bucketWriter per scrivere alla destinazione; consulta le autorizzazioni di destinazione per le istruzioni.

  • Disporre di una delle seguenti autorizzazioni IAM per il progetto Cloud di origine da cui stai inviando i log.

    • Proprietario (roles/owner)
    • Amministratore logging (roles/logging.admin)
    • Writer configurazione log (roles/logging.configWriter)

    Se stai creando un nuovo bucket di Logging nel progetto Cloud di destinazione, devi disporre di una di queste autorizzazioni.

Gestisci sink

Dopo aver creato i sink, puoi eseguire le seguenti azioni:

  • 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

Se elimini un sink, tieni presente quanto segue:

  • Non puoi eliminare i sink _Default e _Required, ma puoi disabilitare i sink _Default per interrompere il routing dei log in _Default bucket di logging.
  • In seguito all'eliminazione di un sink, viene interrotta la registrazione delle voci di log.
  • Dopo l'eliminazione di un sink, viene eliminato anche il relativo account di servizio.

L'applicazione di eventuali modifiche a un sink potrebbe richiedere alcuni minuti.

Di seguito sono riportate le istruzioni per gestire un sink in un progetto Cloud. Invece di un progetto Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione:

console

Puoi visualizzare e gestire i sink nella pagina router dei log:

Vai al router dei log

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

Un progetto è selezionato nel menu a discesa.

Per visualizzare i sink aggregati, seleziona l'organizzazione, la cartella o l'account di fatturazione che contiene il sink.

La pagina Router di 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 è attivato o disattivato.
  • Type: il servizio di destinazione del sink, ad esempio Cloud Logging bucket.
  • Nome: identificatore del sink, come fornito alla creazione del sink, ad esempio _Default.
  • Descrizione: descrizione del sink, fornita quando è stato creato.
  • Destinazione: nome completo della destinazione a cui verranno inviate le voci dei log con routing.
  • Created (Creato): la data e l'ora di creazione del sink.
  • Ultimo aggiornamento: la data e l'ora dell'ultima modifica del sink.

Ogni riga della tabella ha un menu e fornisce 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. Seleziona Modifica per aprire il riquadro Modifica sink.
  • Modifica sink: apre il riquadro Edit sink (Modifica sink) in cui puoi aggiornare i parametri del sink.
  • Disabilita sink: consente di disattivare il sink e di interrompere il routing dei log nella destinazione di sink. Per ulteriori informazioni sulla disattivazione dei sink, consulta la pagina Interrompere l'importazione dei log.
  • Abilita sink: consente di attivare un sink disattivato e di riavviare i log di routing verso la destinazione del sink.
  • Elimina sink: consente di eliminare il sink e di interrompere il routing dei log nella destinazione del sink.
  • Risoluzione dei problemi del sink: apre Esplora log in cui puoi risolvere gli errori relativi al sink.
  • Visualizza volume di log e tassi di errore del sink. Apre il Metrics Explorer in cui puoi visualizzare e analizzare i dati dal sink.

Se fai clic su uno dei nomi delle colonne, puoi ordinare i dati in ordine crescente o decrescente.

Server

  • Per visualizzare i sink per il progetto 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 ulteriori informazioni su uno qualsiasi 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 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 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 denominato my-project-sink in una nuova destinazione del bucket Cloud Storage denominata my-second-gcs-bucket, il comando avrà il seguente aspetto:

    gcloud logging sinks update  my-project-sink  storage.googleapis.com/my-second-gcs-bucket
    
  • Per disattivare un sink, utilizza il comando gcloud logging sinks update, che corrisponde al metodo dell'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 scoprire di più sulla gestione dei sink tramite Google Cloud CLI, consulta il riferimento gcloud logging sinks.

Interrompi importazione log

Per ogni progetto 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 nome corrispondente.

Non puoi disabilitare il sink _Required; i prezzi di importazione e di archiviazione non vengono applicati ai dati di log archiviati nel bucket di log _Required. Puoi disattivare il sink _Default per interrompere l'importazione dei log nel bucket _Default. Puoi anche disattivare i sink definiti dall'utente.

Quando interrompi l'importazione dei log per il bucket _Default, disattivando tutti i sink nel progetto Cloud che inviano i log al bucket _Default, non vengono addebitati nuovi costi di importazione per il bucket Cloud per il bucket _Default. Il bucket _Default è vuoto quando tutti i log importati in precedenza nel bucket _Default hanno soddisfatto il periodo di conservazione del bucket.

Per disabilitare i sink del progetto Cloud che instradano i log al bucket _Default, completa i passaggi seguenti:

console

  1. Nella console, vai alla pagina Router di log:

    Vai al 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 e seleziona Disattiva sink.

I sink sono ora disabilitati e i sink del progetto Cloud non includono log dei percorsi più lunghi per il bucket _Default.

Per riattivare un sink disattivato e riavviare i log di routing nella destinazione del sink, procedi nel seguente modo:

  1. Nella console, vai alla pagina Router di log:

    Vai al 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, quindi inserisci _Default.

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

Server

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

    Identifica eventuali sink che instradano al bucket _Default.

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

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

Per disabilitare gli altri sink nel progetto 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

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

    gcloud logging sinks list
    
  2. Identifica eventuali sink che instradano al bucket _Default. Per descrivere un sink, incluso visualizzare il nome di 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 disattivare il sink _Default, utilizza il comando gcloud logging sinks update e includi il flag --disabled:

    gcloud logging sinks update _Default  --disabled
    

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

Per disabilitare gli altri sink nel progetto 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 le autorizzazioni per la destinazione

Questa sezione descrive come concedere a Logging le autorizzazioni di 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.

Quando crei un sink, Logging crea un nuovo account di servizio per il sink, chiamato identità unica dell'autore. La destinazione sink deve consentire a questo account di servizio di scrivere voci di log. Non puoi gestire questo account di servizio direttamente in quanto è di proprietà e gestito da Cloud Logging. L'account di servizio viene eliminato se il sink viene eliminato.

Se utilizzi un sink per il routing dei log tra i bucket di Logging nello stesso progetto Cloud, non viene creato un nuovo account di servizio; il sink funziona senza l'identità unica dell'autore. Se utilizzi un sink per il routing dei log tra i bucket di logging in diversi progetti Cloud, viene creato un nuovo account di servizio.

Di seguito sono riportate le istruzioni per impostare le autorizzazioni a livello di progetto Cloud per fare in modo che il sink influisca sulla sua destinazione. Invece di un progetto Cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione:

console

  1. Per recuperare l'identità dello scrittore del sink, un indirizzo email, dal nuovo sink, procedi nel seguente modo:

    1. Nella console, vai alla pagina Router di log:

      Vai al router dei log

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

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

  2. Se disponi dell'accesso come Proprietario alla destinazione, aggiungi l'account di servizio alla destinazione nel seguente modo:

    • Per le destinazioni Cloud Storage, aggiungi l'identità autore del sink al bucket Cloud Storage e assegnagli il ruolo Creatore oggetti Storage.
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink al tuo set di dati e assegnagli il ruolo Editor dati BigQuery.
    • Per Pub/Sub, incluso Splunk, aggiungi l'identità dello scrittore del sink all'argomento e assegnagli il ruolo Publisher Pub/Sub.
    • Per le destinazioni del bucket di logging in diversi progetti Cloud, aggiungi l'identità del sink del sink al bucket di log di destinazione e concedi l'autorizzazione roles/logging.bucketWriter.

    Se non hai accesso come Proprietario alla destinazione sink, invia il nome dell'account del servizio di identità autore a una persona che dispone di questa funzionalità. Questa persona deve quindi seguire le istruzioni nel passaggio precedente per aggiungere l'identità dell'autore alla destinazione del sink.

Server

  1. Chiama il metodo API projects.sinks.create o projects.sinks.update per creare o modificare il sink.

    Imposta il valore di uniqueWriterIdentity su true. Quando aggiorni un sink, puoi passare dall'utilizzo di uno scrittore condiviso a uno specifico. Se il sink esistente utilizza già un Writer univoco, il sink aggiornato utilizza lo stesso Writer.

    I metodi restituiscono il nuovo sink, che contiene la nuova identità dell'autore.

  2. Se disponi dell'accesso IAM Proprietario alla destinazione, aggiungi l'account di servizio alla destinazione nel seguente modo:

    • Per le destinazioni Cloud Storage, aggiungi l'identità autore del sink al bucket Cloud Storage e assegnagli il ruolo Creatore oggetti Storage.
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink al tuo set di dati e assegnagli il ruolo Editor dati BigQuery.
    • Per Pub/Sub, incluso Splunk, aggiungi l'identità dello scrittore del sink all'argomento e assegnagli il ruolo Publisher Pub/Sub.
    • Per le destinazioni del bucket di logging in diversi progetti Cloud, aggiungi l'identità del sink del sink al bucket di log di destinazione e concedi l'autorizzazione roles/logging.bucketWriter.

    Se non hai accesso come Proprietario alla destinazione sink, invia il nome dell'account del servizio di identità autore a una persona che dispone di questa funzionalità. Questa persona deve quindi seguire le istruzioni nel passaggio precedente per aggiungere l'identità dell'autore alla destinazione del sink.

gcloud

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

    gcloud logging sinks describe SINK_NAME
    

    L'account di servizio ha un aspetto simile al seguente:

    serviceAccount:p123456789012-12345@gcp-sa-logging.iam.gserviceaccount.com
    
  2. Se disponi dell'accesso IAM Proprietario alla destinazione, aggiungi l'account di servizio alla destinazione nel seguente modo:

    • Per le destinazioni Cloud Storage, aggiungi l'identità autore del sink al bucket Cloud Storage e assegnagli il ruolo Creatore oggetti Storage.
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink al tuo set di dati e assegnagli il ruolo Editor dati BigQuery.
    • Per Pub/Sub, incluso Splunk, aggiungi l'identità dello scrittore del sink all'argomento e assegnagli il ruolo Publisher Pub/Sub.
    • Per le destinazioni del bucket di logging in diversi progetti Cloud, aggiungi l'identità del sink del sink al bucket di log di destinazione e concedi l'autorizzazione roles/logging.bucketWriter.

    Se non hai accesso come Proprietario alla destinazione sink, invia il nome dell'account del servizio di identità autore a una persona che dispone di questa funzionalità. Questa persona deve quindi seguire le istruzioni nel passaggio precedente per aggiungere l'identità dell'autore alla destinazione del sink.

    Ad esempio, se indirizzi i log tra i bucket di logging in diversi progetti Cloud, aggiungerai roles/logging.bucketWriter all'account di servizio come segue:

    1. Scarica il criterio Identity and Access Management per il progetto Cloud di destinazione e scrivilo in un file locale in formato JSON:

      gcloud projects get-iam-policy DESTINATION_PROJECT_ID --format json > output.json
      
    2. Aggiungi una condizione IAM che consenta all'account di servizio di scrivere solo nel bucket Cloud Logging creato. Ad esempio:

      {
      "bindings": [
       {
         "members": [
           "user:username@gmail.com"
         ],
         "role": "roles/owner"
       },
       {
         "members": [
           "[SERVICE_ACCOUNT]"
         ],
         "role": "roles/logging.bucketWriter",
         "condition": {
             "title": "Bucket writer condition example",
             "description": "Grants logging.bucketWriter role to service account [SERVICE_ACCOUNT] used by log sink [SINK_NAME]",
             "expression":
               "resource.name.endsWith(\'locations/global/buckets/BUCKET_ID\')"
         }
       }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
      }
    3. Aggiorna il criterio IAM:

      gcloud projects set-iam-policy DESTINATION_PROJECT_ID output.json
      

Esempi di codice

Per utilizzare il codice libreria client per configurare i sink nelle lingue scelte, consulta Logging client di logging: sink di log.

Esempi di filtro

Di seguito sono riportati alcuni esempi di filtri particolarmente utili per la creazione di sink.

Per altri esempi che potrebbero essere utili durante la creazione dei filtri di inclusione e dei filtri di esclusione, consulta le query di esempio.

Ripristina il filtro sink di _Default

Se hai modificato il filtro per il sink _Default, puoi 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 log dei container e dei pod di Google Kubernetes Engine

Per escludere i log del container e del 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 dati di nodo, pod e container di Google Kubernetes Engine importati in Cloud Logging, utilizza Metrics Explorer in Cloud Monitoring.

Escludi i log di Dataflow non richiesti per la supporto

Per escludere i log di Dataflow che non sono richiesti per la supportabilità, utilizza il filtro seguente:

resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"

Per visualizzare il volume dei dati di log Dataflow importati in Cloud Logging, utilizza Metrics Explorer in Cloud Monitoring.

Supportabilità

Sebbene Cloud Logging ti offra la possibilità di escludere i log dall'importazione, potresti prendere in considerazione l'idea di mantenere i log che supportano la supportabilità. Questi log possono aiutarti a risolvere rapidamente i problemi e a identificare i problemi con le tue applicazioni.

Ad esempio, i log di sistema di GKE sono utili per la risoluzione dei problemi delle applicazioni e dei cluster GKE poiché 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 causa l'errore dell'applicazione. I log di sistema di GKE includono anche l'audit logging di Kubernetes generato dal componente Server API di Kubernetes, che include le modifiche apportate utilizzando il comando kubectl ed eventi Kubernetes.

Per Dataflow, ti abbiamo consigliato di importare almeno i log di sistema (labels."dataflow.googleapis.com/log_type"="system") e i log di assistenza (labels."dataflow.googleapis.com/log_type"="supportability"). Questi log sono essenziali per gli sviluppatori che consentono di osservare e risolvere i problemi relativi alle pipeline di 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