Questo documento descrive come creare sink aggregati. I sink aggregati ti consentono di combinare e instradare i log generati dalle Google Cloud risorse nella tua organizzazione o cartella in una posizione centralizzata.
Prima di iniziare
Prima di creare un sink, assicurati di quanto segue:
Hai familiarità con il comportamento dei sink aggregati. Per scoprire di più su questi sink, consulta la Panoramica dei sink aggregati.
Hai una Google Cloud cartella o un'organizzazione con voci di log che puoi visualizzare in Esplora log.
Devi disporre di uno dei seguenti ruoli IAM per l'Google Cloud organizzazione o la cartella da cui stai instradando le voci di log.
- Proprietario (
roles/owner
) - Amministratore di Log (
roles/logging.admin
) - Logs Configuration Writer (
roles/logging.configWriter
)
Le autorizzazioni contenute in questi ruoli ti consentono di creare, eliminare o modificare i canali. Per informazioni sull'impostazione dei ruoli IAM, consulta la guida al controllo dell'accesso di Log.
- Proprietario (
La destinazione dell'emissario aggregato esista o tu abbia la possibilità di crearla.
Quando la destinazione è un Google Cloud progetto, il progetto può trovarsi in qualsiasi organizzazione. Tutte le altre destinazioni possono trovarsi in qualsiasi progetto di qualsiasi organizzazione.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite all'interfaccia alla gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella Google Cloud documentazione sull'autenticazione.
Creare un sink aggregato
Per configurare un sink aggregato, crealo e poi concedigli le autorizzazioni per scrivere nella destinazione. Questa sezione descrive come creare un sink aggregato. Per informazioni su come concedere le autorizzazioni al sink, consulta la sezione di questa pagina intitolata Impostare le autorizzazioni di destinazione.
Puoi creare fino a 200 sink per cartella o organizzazione.
Console
Per creare un canale aggregato per la cartella o l'organizzazione:
-
Nella Google Cloud console, vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Seleziona una cartella o un'organizzazione esistente.
Seleziona Crea sink.
Nel riquadro Dettagli sink, inserisci i seguenti dettagli:
Nome del canale: fornisci un identificatore per il canale. Tieni presente che, dopo aver creato il canale, non puoi rinominarlo, ma puoi eliminarlo e crearne uno nuovo.
(Facoltativo) Descrizione della destinazione: descrivi lo scopo o il caso d'uso della destinazione.
Nel menu Seleziona servizio sink, seleziona il tipo di destinazione, quindi completa la finestra di dialogo per specificarla. Puoi selezionare una destinazione esistente o crearne una.
Per un sink di intercettazione, seleziona ProgettoGoogle Cloud , quindi inserisci il nome completo del progetto Google Cloud di destinazione:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Per un collettore non di intercettazione, seleziona la destinazione, quindi inserisci il nome completo della destinazione. Sono supportate le seguenti destinazioni:
Google Cloud project
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Bucket Cloud Logging
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Set di dati BigQuery
Devi inserire il nome completo di un set di dati abilitato alla scrittura. Il set di dati può essere una tabella partizionata o suddivisa in partizioni per data. Non inserire il nome di un set di dati collegato. I set di dati collegati sono di sola lettura.
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Bucket Cloud Storage
storage.googleapis.com/BUCKET_NAME
Argomento Pub/Sub
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Splunk
Inserisci l'argomento Pub/Sub per il servizio Splunk.
Nel riquadro Scegli i log da includere nel sink, seleziona le risorse da includere nel sink.
Per un'area di destinazione di intercettazione, seleziona Intercetta i log importati da questa organizzazione e da tutte le risorse secondarie.
Per un sink che non intercetta, seleziona Includi i log importati da questa risorsa e da tutte le risorse figlio.
Nel campo Crea filtro di inclusione, inserisci un'espressione filtro corrispondente alle voci di log che vuoi includere. Se non imposti un filtro, tutte le voci di log della risorsa selezionata vengono inoltrate alla destinazione.
Ad esempio, potresti creare un filtro per inoltrare tutti i log di controllo dell'accesso ai dati a un unico bucket di log. Questo filtro ha il seguente aspetto:
LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
Per esempi di filtri, consulta la sezione Creare filtri per i canali aggregati di questa pagina.
Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.
(Facoltativo) Per verificare di aver inserito il filtro corretto, seleziona Anteprima dei log. Si apre Esplora log in una nuova scheda con il filtro precompilato.
(Facoltativo) Nel riquadro Scegli i log da escludere dal sink, procedi nel seguente modo:
Nel campo Nome filtro di esclusione, inserisci un nome.
Nel campo Crea un filtro di esclusione, inserisci un'espressione filtro corrispondente alle voci di log che vuoi escludere. Puoi anche utilizzare la funzione
sample
per selezionare una parte delle voci di log da escludere.Ad esempio, per escludere l'inoltro delle voci di log di un progetto specifico alla destinazione, aggiungi il seguente filtro di esclusione:
logName:projects/PROJECT_ID
Per escludere le voci di log da più progetti, utilizza l'operatore OR logico per unire le clausole
logName
.
Puoi creare fino a 50 filtri di esclusione per destinazione. Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.
Seleziona Crea sink.
Per completare la configurazione del sink aggregato, concedi all'account di servizio del sink l'autorizzazione per scrivere le voci di log nella destinazione del sink. Per ulteriori informazioni, consulta Impostare le autorizzazioni di destinazione.
gcloud
Per creare un'area di destinazione aggregata, utilizza il comando
logging sinks create
:Per creare un sink, chiama il comando
gcloud logging sinks create
e assicurati di includere l'opzione--include-children
.Prima di utilizzare il seguente comando, effettua le seguenti sostituzioni:
- SINK_NAME: il nome del sink di log. Non puoi modificare il nome di un sink dopo averlo creato.
- SINK_DESTINATION: il servizio o il progetto a cui vuoi inoltrare le voci di log. Per informazioni sul formato di queste destinazioni, consulta Formati dei percorsi di destinazione.
- INCLUSION_FILTER: il filtro di inclusione per un sink. Per esempi di filtri, consulta Creare filtri per i canali aggregati.
- FOLDER_ID: l'ID della cartella. Se vuoi creare un sink
a livello di organizzazione, sostituisci
--folder=FOLDER_ID
con-- organization=ORGANIZATION_ID
.
Esegui il comando
gcloud logging sinks create
:gcloud logging sinks create SINK_NAME \ SINK_DESTINATION --include-children \ --folder=FOLDER_ID --log-filter="INCLUSION_FILTER"
Puoi anche fornire le seguenti opzioni:
- Per creare un'area di destinazione di intercettazione, includi l'opzione
--intercept-children
.
Ad esempio, se stai creando un sink aggregato a livello di cartella e la destinazione è un argomento Pub/Sub, il comando potrebbe essere simile al seguente:
gcloud logging sinks create SINK_NAME \ pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID --include-children \ --folder=FOLDER_ID --log-filter="logName:activity"
Concedi all'account di servizio del sink l'autorizzazione di scrittura nella destinazione del sink. Per ulteriori informazioni, consulta Impostare le autorizzazioni di destinazione.
REST
Per creare un'area di destinazione aggregata, utilizza il metodo
organizations.sinks.create
ofolders.sinks.create
dell'API Logging. Prepara gli argomenti del metodo come segue:Imposta il campo
parent
in modo che corrisponda all' Google Cloud organizzazione o alla cartella in cui creare il sink. Il tag principale deve essere uno dei seguenti:organizations/ORGANIZATION_ID
folders/FOLDER_ID
Nell'oggetto
LogSink
nel corpo della richiesta del metodo, esegui una delle seguenti operazioni:Imposta
includeChildren
suTrue
.Per creare un'area di destinazione di intercettazione, imposta anche il campo
interceptChildren
suTrue
.
Imposta il campo
filter
in modo che corrisponda alle voci di log che vuoi includere.Per esempi di filtri, consulta Creare filtri per i canali aggregati.
La lunghezza di un filtro non può superare i 20.000 caratteri.
Imposta i restanti campi
LogSink
come faresti per qualsiasi destinazione. Per ulteriori informazioni, consulta Indirizzare i log alle destinazioni supportate.Chiama
organizations.sinks.create
ofolders.sinks.create
per creare il canale.Concedi all'account di servizio del sink l'autorizzazione di scrittura nella destinazione del sink. Per ulteriori informazioni, consulta Impostare le autorizzazioni di destinazione.
L'applicazione di eventuali modifiche apportate a un sink potrebbe richiedere alcuni minuti.
Filtri per i sink aggregati
Questa sezione fornisce esempi di filtri che potresti utilizzare in un accumulo aggregato. Per altri esempi, consulta Query di esempio con Esplora log.
Alcuni esempi utilizzano la seguente notazione:
:
è l'operatore di sottostringa. Non sostituire l'operatore=
....
indica eventuali confronti con altri filtri.- Le variabili sono indicate con testo colorato. Sostituiscili con valori validi.
La lunghezza di un filtro è limitata a 20.000 caratteri.
Per ulteriori dettagli sulla sintassi di filtro, consulta Lingua delle query di logging.
Seleziona la sorgente log
Per instradare le voci di log da tutte le risorse secondarie, non specificare un progetto, una cartella o un'organizzazione nei filtri di inclusione ed esclusione della destinazione. Ad esempio, supponiamo di configurare un'area di destinazione aggregata per un'organizzazione con il seguente filtro:
resource.type="gce_instance"
Con il filtro precedente, le voci di log con un tipo di risorsa di istanza Compute Engine scritte in qualsiasi organizzazione secondaria vengono inoltrate dall'emissario aggregato alla destinazione.
Tuttavia, potrebbero verificarsi situazioni in cui vuoi utilizzare un'area di destinazione aggregata per instradare le voci di log solo da risorse secondarie specifiche. Ad esempio, per motivi di conformità, potresti voler archiviare gli audit log di cartelle o progetti specifici nel relativo bucket Cloud Storage. In questi casi, configura il filtro di inclusione in modo da specificare ogni risorsa secondaria di cui vuoi indirizzare le voci di log. Se vuoi instradare le voci di log da una cartella e da tutti i progetti al suo interno, il filtro deve elencare la cartella e ciascuno dei progetti contenuti al suo interno, nonché unire le istruzioni con una clausola
OR
.I seguenti filtri limitano le voci di log a progetti, cartelle o organizzazioni specifici Google Cloud :
logName:"projects/PROJECT_ID/logs/" AND ...
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ...
logName:"folders/FOLDER_ID/logs/" AND ...
logName:"organizations/ORGANIZATION_ID/logs/" AND ...
Ad esempio, per instradare solo le voci di log scritte nelle istanze Compute Engine che sono state scritte nella cartella
my-folder
, utilizza il seguente filtro:logName:"folders/my-folder/logs/" AND resource.type="gce_instance"
Con il filtro precedente, le voci di log scritte in qualsiasi risorsa diversa da
my-folder
, incluse le voci di log scritte in Google Cloud progetti che sono figli dimy-folder
, non vengono instradate alla destinazione.Seleziona la risorsa monitorata
Per instradare le voci di log solo da una risorsa monitorata specifica in un Google Cloud progetto, utilizza più confronti per specificare esattamente la risorsa:
logName:"projects/PROJECT_ID/logs" AND resource.type=RESOURCE_TYPE AND resource.labels.instance_id=INSTANCE_ID
Per un elenco dei tipi di risorse, consulta Tipi di risorse monitorate.
Seleziona un esempio di voci di log
Per instradare un campione casuale di voci di log, aggiungi la funzione interna
sample
. Ad esempio, per instradare solo il 10% delle voci di log corrispondenti al tuo filtro corrente, utilizza questa aggiunta:sample(insertId, 0.10) AND ...
Per ulteriori informazioni, consulta la funzione
sample
.Per ulteriori informazioni sui filtri di Cloud Logging, consulta Linguaggio delle query di Logging.
Impostare le autorizzazioni di destinazione
Questa sezione descrive come concedere a Logging le autorizzazioni Identity and Access Management per scrivere voci di log nella destinazione dell'eseguiamo. Per l'elenco completo dei ruoli e delle autorizzazioni di Logging, consulta Controllo dell'accesso.
Quando crei o aggiorni un'area di destinazione che inoltra le voci di log a una destinazione diversa da un bucket di log nel progetto corrente, è necessario un account di servizio per l'area di destinazione. Logging crea e gestisce automaticamente il account di servizio per te:
- A partire dal 22 maggio 2023, quando crei un canale di destinazione e non esiste un account di servizio per la risorsa sottostante, Logging crea l'account di servizio. Il logging utilizza lo stesso account di servizio per tutti gli sink nella risorsa sottostante. Le risorse possono essere un Google Cloud progetto, un'organizzazione, una cartella o un account di fatturazione.
- Prima del 22 maggio 2023, Logging creava un account di servizio per ogni destinazione. A partire dal 22 maggio 2023, Logging utilizza un account di servizio condiviso per tutti gli sink nella risorsa di base.
L'identità autore di un sink è l'identificatore dell'account di servizio associato al sink. Tutti i canali di destinazione hanno un'identità di autore, a meno che non scrivano in un bucket di log nel progetto Google Cloud corrente. L'indirizzo email nell'identità autore identifica l'entità che deve avere accesso per scrivere dati nella destinazione.
Per instradare le voci di log a una risorsa protetta da un perimetro di servizio, devi aggiungere l'account di servizio per quell'incanalamento a un livello di accesso e poi assegnarlo al perimetro di servizio di destinazione. Questo non è necessario per i sink non aggregati. Per maggiori dettagli, consulta Controlli di servizio VPC: Cloud Logging.
Per impostare le autorizzazioni per l'inoltro del sink alla destinazione, svolgi i seguenti passaggi:
Console
Per informazioni sull'account di servizio per il tuo sink, esegui i seguenti passaggi:
-
Nella Google Cloud console, vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Seleziona more_vert Menu e poi Visualizza dettagli della canalizzazione. L'identità dell'autore viene visualizzata nel riquadro Dettagli destinazione.
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.Copia l'identità dello scrittore della destinazione negli appunti. Di seguito è riportata un'identità autore:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
-
Concedi all'entità specificata dall'identità autore del sink l'autorizzazione per scrivere i dati dei log nella destinazione:
-
Nella Google Cloud console, vai alla pagina IAM:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.
Nella barra degli strumenti della Google Cloud console, seleziona il progetto che memorizza la destinazione dell'emissario aggregato. Se la destinazione è un progetto, selezionalo.
Fai clic su
Concedi l'accesso.Inserisci l'entità specificata dall'identità dello scrittore della destinazione e poi concedi un ruolo IAM:
- Google Cloud project: concedi il
ruolo Scrittore log
(
roles/logging.logWriter
). In particolare, un'entità deve disporre dell'autorizzazionelogging.logEntries.route
. - Bucket di log: concedi il
ruolo Writer bucket di log
(
roles/logging.bucketWriter
). - Bucket Cloud Storage: concedi il
ruolo Storage Object Creator
(
roles/storage.objectCreator
). - Set di dati BigQuery: concedi il
ruolo Editor dati BigQuery
(
roles/bigquery.dataEditor
). - Argomento Pub/Sub, incluso Splunk: concedi il
ruolo Pub/Sub Publisher
(
roles/pubsub.publisher
).
- Google Cloud project: concedi il
ruolo Scrittore log
(
-
gcloud
Assicurati di disporre dell'accesso Proprietario al progettoGoogle Cloud che contiene la destinazione. Se non disponi dell'accesso Proprietario alla destinazione dell'eseguitore, chiedi a un proprietario del progetto di aggiungere l'identità dell'autore come principale.
Per ottenere informazioni sull'account di servizio per la destinazione, chiama il metodo
gcloud logging sinks describe
.Prima di utilizzare il seguente comando, effettua le seguenti sostituzioni:
- SINK_NAME: il nome del sink di log. Non puoi modificare il nome di un sink dopo averlo creato.
Esegui il comando
gcloud logging sinks describe
:gcloud logging sinks describe SINK_NAME
Se i dettagli della destinazione contengono un campo denominato
writerIdentity
, vai al passaggio successivo. Se i dettagli non includono un campowriterIdentity
, non è necessario configurare le autorizzazioni di destinazione per l'emissario.Copia l'identità dello scrittore della destinazione negli appunti. Di seguito è riportata un'identità autore:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
Concedi all'identità autore del sink l'autorizzazione a scrivere i dati dei log nella destinazione chiamando il comando
gcloud projects add-iam-policy-binding
.Prima di utilizzare il seguente comando, effettua le seguenti sostituzioni:
- PROJECT_ID: l'identificatore del progetto. Seleziona il progetto in cui è archiviata la destinazione del canale aggregato. Quando la destinazione è un progetto, selezionalo.
- PRINCIPAL: un identificatore per l'entità a cui vuoi concedere il ruolo. Gli identificatori principali hanno in genere la seguente forma:
PRINCIPAL-TYPE:ID
. Ad esempio:user:my-user@example.com
. Per un elenco completo dei formati chePRINCIPAL
può avere, consulta Identificatori principali. ROLE: un ruolo IAM. Concedi all'identità autore del sink un ruolo IAM in base alla destinazione del sink di log:
- Google Cloud project: concedi il
ruolo Scrittore log
(
roles/logging.logWriter
). In particolare, un'entità deve disporre dell'autorizzazionelogging.logEntries.route
. - Bucket di log: concedi il
ruolo Writer bucket di log
(
roles/logging.bucketWriter
). - Bucket Cloud Storage: concedi il
ruolo Storage Object Creator
(
roles/storage.objectCreator
). - Set di dati BigQuery: concedi il
ruolo Editor dati BigQuery
(
roles/bigquery.dataEditor
). - Argomento Pub/Sub, incluso Splunk: concedi il
ruolo Pub/Sub Publisher
(
roles/pubsub.publisher
).
- Google Cloud project: concedi il
ruolo Scrittore log
(
Esegui il comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
REST
Ti consigliamo di utilizzare la Google Cloud console o Google Cloud CLI per concedere un ruolo all'account di servizio.
Passaggi successivi
Scopri come creare visualizzazioni dei log in un bucket dei log. Le visualizzazioni dei log ti consentono di concedere alle entità l'accesso in lettura a un sottoinsieme di voci di log memorizzate in un bucket di log.
Per informazioni sulla gestione dei canali esistenti, consulta Indirizzare i log alle destinazioni supportate: gestire i canali.
Se riscontri problemi durante l'utilizzo dei sink per instradare i log, consulta Risolvere i problemi di routing e sink.
Per scoprire come visualizzare i log nelle relative destinazioni, nonché come vengono formattati e organizzati, consulta Visualizza i log nelle destinazioni sink
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-06-30 UTC.
-