Instrada i log alle destinazioni supportate

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questo documento spiega come creare e gestire i sink per instradare le voci di log alle 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 sulle destinazioni seguenti:

  • Bucket di log di Cloud Logging: fornisce archiviazione su Cloud Logging. Un bucket di log può archiviare i log importati da più progetti Google Cloud. Puoi combinare i dati di Cloud Logging con altri dati archiviando i log nei bucket di log aggiornati per utilizzare l'analisi dei log e quindi creando un set di dati BigQuery collegato. Per informazioni sulla visualizzazione dei log, consulta Panoramica e visualizzazione della panoramica dei log e Visualizzazione dei log indirizzati ai bucket Cloud Logging.
  • Progetti Google Cloud: instrada le voci di log a un progetto Google Cloud diverso. Quando instrada i log a un progetto Cloud diverso, il router dei log del progetto di destinazione riceve i log e li elabora. Il progetto da cui esegui il routing dei log non deve definire il modo in cui il progetto di destinazione gestisce i log.
  • Argomenti Pub/Sub: fornisce supporto per le integrazioni di terze parti, come Splunk, con Logging. Le voci di log vengono formattate in formato JSON e quindi inviate a un argomento Pub/Sub. Per informazioni sulla visualizzazione di questi log, sulla loro organizzazione e su come configurare un'integrazione di terze parti, consulta Visualizzazione dei log con routing a Pub/Sub.
  • Set di dati di BigQuery: fornisce archiviazione delle voci di log nei set di dati di BigQuery. Puoi utilizzare le funzionalità di analisi dei big data nei log archiviati. Per combinare i dati di Cloud Logging con altre origini dati, ti consigliamo di archiviare i log nei bucket di log aggiornati per utilizzare l'analisi dei log e quindi creare un set di dati BigQuery collegato. Per informazioni sui log archiviati in BigQuery, consulta Visualizzare i log indirizzati a BigQuery.
  • Bucket Cloud Storage: fornisce un'archiviazione economica e a lungo termine di dati di log in Cloud Storage. Le voci di log vengono archiviate come file JSON. Per informazioni sulla visualizzazione di questi log, su come sono organizzati e su come vengono gestiti i log in ritardo, consulta Visualizzare i log con routing a Cloud Storage.

I sink appartengono a una determinata risorsa Google Cloud: progetti Cloud, account di fatturazione, cartelle e organizzazioni. 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.

Un sink aggregato è un tipo di sink che combina e instrada le voci di log dalle risorse Google Cloud contenute in un'organizzazione o una cartella. Per le istruzioni, consulta Collare e instradare 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 unico posto.
  • Visualizza l'anteprima delle voci di log corrispondenti al filtro del sink prima di creare il sink.
  • Crea e autorizza le destinazioni per i sink.

Prima di iniziare

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

Per iniziare, procedi nel seguente modo:

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

  2. Per creare, modificare o eliminare un sink, devi disporre di uno dei seguenti ruoli di Identity and Access Management per il progetto Cloud da cui esegui il routing dei log.

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

    Per informazioni sulla concessione dei ruoli IAM, consulta la guida al controllo dell'accesso di Logging.

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

    Per instradare i log a una destinazione, la destinazione deve esistere prima della creazione del sink. Puoi creare la destinazione in qualsiasi progetto Cloud in qualsiasi organizzazione.

    Potrebbero essere applicate alcune limitazioni quando instrada i log ad altre destinazioni. Per saperne di più, consulta Limitazioni delle destinazioni.

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; consulta Impostare le autorizzazioni di destinazione.

Per creare un sink, procedi nel seguente modo:

Console

  1. Nella console Google Cloud, seleziona Logging dal menu di navigazione, quindi fai clic su Router di log:
    Vai a Router di 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 creare un nuovo sink.

    • (Facoltativo) Descrizione del sink: 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 verso un servizio che si trova nello stesso progetto Cloud, seleziona una delle seguenti opzioni:

      • Bucket Cloud Logging: seleziona o crea un bucket di 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 servizio Splunk.
      • (Anteprima) Altro progetto: compila il campo Destinazione sink come descritto in Formati percorso di destinazione.
  6. Nel riquadro Scegli i log da includere nel sink, segui questi passaggi:

    1. Nel campo Filtro di inclusione build, 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 Logging query language.

      Se non imposti un filtro, tutti i log della risorsa selezionata vengono reindirizzati 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 Visualizza l'anteprima dei log. Viene aperto 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 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.

API

  1. Per creare un sink di logging nel progetto Cloud, utilizza projects.sinks.create nell'API Logging. Nell'oggetto LogSink, fornisci i valori obbligatori 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 in cui vuoi eseguire il routing dei log. Per indirizzare i log a un progetto diverso o a una destinazione che si trova in un altro progetto, imposta il campo destination con il percorso appropriato, come descritto nei formati del percorso di destinazione.

      Ad esempio, se la destinazione del sink è un set di dati BigQuery, destination ha 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 del log da includere nel sink. Se non imposti un filtro, tutti i log del progetto Cloud vengono reindirizzati 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. Se la risposta 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 ulteriori informazioni, consulta Impostare le autorizzazioni di destinazione.

    Non è necessario impostare le autorizzazioni di destinazione quando la risposta API non contiene una chiave JSON con l'etichetta "writerIdentity".

Per ulteriori informazioni sulla creazione dei sink utilizzando 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 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 in cui vuoi eseguire il routing dei log. Per indirizzare i 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 nei formati del 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 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 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 ulteriori informazioni sulla creazione di sink con Google Cloud CLI, inclusi altri flag ed esempi, consulta il riferimento gcloud logging sinks.

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

I sink non definiscono lo schema per i set di dati di BigQuery. La prima voce di log ricevuta da BigQuery determina lo schema per la tabella di destinazione. Per saperne di più, vedi Schema 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 di logging.googleapis.com/exports/.

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

Formati percorso di destinazione

Se stai eseguendo il routing a una destinazione che si trova in un altro progetto, devi fornire le informazioni relative al servizio e alla destinazione di 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 altro progetto Google Cloud, la destinazione del sink è la seguente:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET
    
  • 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 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 sink è la seguente:

    storage.googleapis.com/BUCKET
    
  • Per instradare le voci di log a un argomento Pub/Sub, la destinazione sink è la seguente:

    pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
    

Gestire i sink

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

  • Visualizza i dettagli del 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 su _Default bucket di logging.
  • Una volta eliminato, il sink interrompe il routing delle voci di log.

L'applicazione delle modifiche apportate 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

  1. Nella console Google Cloud, seleziona Logging dal menu di navigazione, quindi fai clic su Router di log:
    Vai a Router di log

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

    Viene selezionato 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 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.
  • 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, come fornita al momento della creazione.
  • Destinazione: nome completo della destinazione a cui verranno inviate le voci di log con routing.
  • Created (Data di creazione): la data e l'ora in cui è stato creato il sink.
  • Last updated (Data 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 i dettagli del sink. Mostra il nome, la descrizione, il servizio di destinazione, la destinazione e i filtri di inclusione ed esclusione del sink. Se selezioni 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 di interrompere il routing dei log alla destinazione del sink. Per ulteriori informazioni sulla disabilitazione dei sink, consulta Importazione dei log delle fermate.
  • Attiva sink: consente di attivare un sink disattivato e riavviare i log di routing nella destinazione del sink.
  • Elimina il sink: consente di eliminare il sink e di interrompere il routing dei log alla destinazione del sink.
  • Risolvi i problemi relativi al sink: apre Esplora log, in cui puoi risolvere gli errori relativi al sink.
  • Visualizza volume di log e tassi di errore del sink: apre 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.

API

  • 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, il filtro 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 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 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 contenente 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 denominata my-project-sink in una nuova destinazione 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 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 ulteriori informazioni sulla gestione dei sink utilizzando Google Cloud CLI, consulta il riferimento gcloud logging sinks.

Arresta importazione dei 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 denominati in modo corrispondente.

Non puoi disabilitare il sink _Required; i prezzi di importazione o di archiviazione non vengono applicati ai dati dei log archiviati nel bucket di log _Required. Puoi disabilitare il sink _Default per interrompere l'importazione dei log nel bucket _Default. Puoi anche disabilitare 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 addebiti per l'importazione Cloud Logging dal progetto Cloud per il bucket _Default. Il bucket _Default è vuoto quando tutti i log importati in precedenza nel bucket _Default hanno completato il periodo di conservazione del bucket.

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

Console

  1. Nella console Google Cloud, seleziona Logging dal menu di navigazione, quindi fai clic su Router di log:
    Vai a Router di log

  2. Per trovare tutti i sink che inoltrano i log al bucket _Default, filtra i sink per destinazione, quindi inserisci _Default.

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

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

I sink non sono più disattivati e il progetto Cloud non invia più log di percorso al bucket _Default.

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

  1. Nella console Google Cloud, seleziona Logging dal menu di navigazione, quindi fai clic su Router di log:
    Vai a Router di log

  2. Per trovare tutti i sink disabilitati configurati in precedenza 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 poi Attiva sink.

API

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

    Identifica tutti i sink che vengono indirizzati 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 ora è disabilitato; non instrada più i log al bucket _Default.

Per disabilitare gli altri sink nel tuo progetto Cloud che vengono instradati 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 tutti i sink che vengono indirizzati 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 ora è disabilitato; non instrada più i log al bucket _Default.

Per disabilitare gli altri sink nel tuo progetto Cloud che vengono instradati 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 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.

Se utilizzi un sink per instradare i log tra i bucket di logging nello stesso progetto Cloud, non viene creato un nuovo account di servizio; il sink funziona senza l'identità dell'autore. Se utilizzi un sink per instradare i 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 esegua il routing alla destinazione. Anziché un progetto cloud, puoi specificare un account di fatturazione, una cartella o un'organizzazione:

Console

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

    1. Nella console Google Cloud, seleziona Logging dal menu di navigazione, quindi fai clic su Router di log:
      Vai a Router di log

    2. Seleziona menu, quindi Visualizza i dettagli del 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. Fai clic su Copia per copiare l'identità dell'autore del sink negli appunti.

  4. Se disponi dell'accesso come Proprietario alla destinazione, aggiungi l'account di servizio come entità IAM nel progetto di destinazione:

    • Per le destinazioni di Cloud Storage, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Creatore di oggetti Storage (roles/storage.objectCreator).
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink come entità utilizzando IAM e poi assegnagli il ruolo Editor dati BigQuery (roles/bigquery.dataEditor).
    • Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo publisher Pub/Sub (roles/pubsub.publisher).
    • Per le destinazioni dei bucket Logging in diversi progetti Cloud, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Writer bucket di log (roles/logging.bucketWriter).
    • (Anteprima) Per diverse destinazioni di progetti Cloud, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Writer log (roles/logging.logWriter). Nello specifico, un'entità richiede l'autorizzazione logging.logEntries.route.
    Se non hai accesso come Proprietario alla destinazione del sink, chiedi a un proprietario del progetto di aggiungere l'identità dell'autore come entità.

API

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

  2. 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 è necessario configurare le autorizzazioni di destinazione per il sink.

  3. Se hai accesso come Proprietario IAM alla destinazione, aggiungi l'account di servizio alla destinazione procedendo nel seguente modo:

    • Per le destinazioni di Cloud Storage, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Creatore di oggetti Storage (roles/storage.objectCreator).
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink come entità utilizzando IAM e poi assegnagli il ruolo Editor dati BigQuery (roles/bigquery.dataEditor).
    • Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo publisher Pub/Sub (roles/pubsub.publisher).
    • Per le destinazioni dei bucket Logging in diversi progetti Cloud, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Writer bucket di log (roles/logging.bucketWriter).
    • (Anteprima) Per diverse destinazioni di progetti Cloud, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Writer log (roles/logging.logWriter). Nello specifico, un'entità richiede l'autorizzazione logging.logEntries.route.
    Se non hai accesso come Proprietario alla destinazione del sink, chiedi a un proprietario del progetto di aggiungere l'identità dell'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. Se i dettagli non includono un campo writerIdentity, non è necessario configurare le autorizzazioni di destinazione per il sink.

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

    serviceAccount:service-p-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  3. Se hai accesso come Proprietario IAM alla destinazione, aggiungi l'account di servizio alla destinazione procedendo nel seguente modo:

    • Per le destinazioni di Cloud Storage, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Creatore di oggetti Storage (roles/storage.objectCreator).
    • Per le destinazioni BigQuery, aggiungi l'identità autore del sink come entità utilizzando IAM e poi assegnagli il ruolo Editor dati BigQuery (roles/bigquery.dataEditor).
    • Per le destinazioni Pub/Sub, incluso Splunk, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo publisher Pub/Sub (roles/pubsub.publisher).
    • Per le destinazioni dei bucket Logging in diversi progetti Cloud, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Writer bucket di log (roles/logging.bucketWriter).
    • (Anteprima) Per diverse destinazioni di progetti Cloud, aggiungi l'identità dell'autore del sink come entità utilizzando IAM e poi concedigli il ruolo Writer log (roles/logging.logWriter). Nello specifico, un'entità richiede l'autorizzazione logging.logEntries.route.
    Se non hai accesso come Proprietario alla destinazione del sink, chiedi a un proprietario del progetto di aggiungere l'identità dell'autore come entità.

    Ad esempio, se stai eseguendo il routing dei log tra bucket Cloud Logging in diversi progetti Cloud, aggiungerai roles/logging.bucketWriter all'account di servizio nel seguente modo:

    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 che hai 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
      

Limitazioni delle destinazioni

A seconda della destinazione in cui esegui il routing dei log, potrebbero essere previste alcune limitazioni.

Routing ai bucket di log in progetti Cloud diversi

Quando instrada i log ai bucket di log in progetti Cloud diversi, si applicano le seguenti limitazioni:

  • Se esegui il routing dei log su un bucket di log archiviato in un progetto diverso, Error Reporting non può analizzare questi log.

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

Instrada a diversi progetti Cloud

Quando instrada i log a progetti Cloud diversi, si applicano le seguenti limitazioni:

  • Se instrada i log a un progetto diverso, Error Reporting non può analizzare i log.

  • Esiste un limite di un hop. Ad esempio, se esegui il routing delle voci di log dal progetto A al progetto B, non potrai indirizzare le voci di log 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 Cloud al quale stai eseguendo il routing ha sink esistenti, i log non vengono instradati da questi sink.

Esempi di codice

Per utilizzare il codice della libreria client per configurare i sink nelle lingue scelte, consulta Logging dei 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 ulteriori esempi che potrebbero essere utili per la creazione dei filtri di inclusione e di esclusione, consulta la sezione Query di esempio.

Ripristina il filtro 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")

Exclude Google Kubernetes Engine container and pod logs

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 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 log dei nodi, dei pod e dei container di Google Kubernetes Engine importati in Cloud Logging, utilizza Metrics Explorer in Cloud Monitoring.

Escludi log Dataflow non necessari per la supporto

Per escludere i log di Dataflow non 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 dati di log di Dataflow importati in Cloud Logging, utilizza Metrics Explorer in Cloud Monitoring.

Sostenibilità

Sebbene Cloud Logging ti offra la possibilità di escludere i log dall'importazione, ti consigliamo di mantenere i log che favoriscono la supportabilità. Questi log possono aiutarti a risolvere rapidamente i problemi e a identificare i problemi delle tue applicazioni.

Ad esempio, i log di sistema di GKE sono utili per la risoluzione dei problemi delle applicazioni e dei cluster GKE, in quanto sono generati per 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. Gli audit log del sistema GKE includono anche l'audit logging di Kubernetes generato dal componente server API di Kubernetes, che include le modifiche apportate utilizzando il comando kubectl e gli eventi Kubernetes.

Per Dataflow, ti abbiamo consigliato almeno di importare i tuoi log di sistema (labels."dataflow.googleapis.com/log_type"="system") e i log di supporto (labels."dataflow.googleapis.com/log_type"="supportability"). Questi log sono essenziali per consentire agli sviluppatori di osservare le pipeline di Dataflow e risolvere i relativi problemi. Inoltre, gli utenti potrebbero non essere in grado di utilizzare la pagina Dettagli job di Dataflow per visualizzare i log di job.

Passaggi successivi