Questo documento spiega come creare e gestire i sink di log, che indirizzano le voci di log originate in un Google Cloud progetto alle destinazioni supportate.
Un sink esegue un'azione di scrittura e deve quindi essere autorizzato a scrivere nella destinazione. Quando la destinazione è un bucket di log nello stesso progetto del sink, quest'ultimo viene autorizzato automaticamente. Per tutte le altre destinazioni, il sink deve essere collegato a un account di servizio a cui sono state concesse le autorizzazioni necessarie per scrivere i dati nella destinazione.
Quando è necessario un account di servizio, Cloud Logging lo crea e lo gestisce automaticamente. Tuttavia, potrebbe essere necessario modificare le autorizzazioni concesse all'account di servizio. Non è necessario utilizzare l'account di servizio creato da logging. Puoi creare e gestire un account di servizio utilizzato dagli sink in più progetti. Per ulteriori informazioni, consulta Configurare i canali di log con service account gestiti dall'utente.
Panoramica
Questa pagina descrive come creare un sink e come configurare le opzioni che potresti visualizzare quando utilizzi la Google Cloud console o l'API.
I canali appartengono a una determinata Google Cloud risorsa: un Google Cloud progetto, un account di fatturazione, una cartella o un'organizzazione. Quando la risorsa riceve una voce di log, ogni destinazione nella risorsa la elabora. Quando una voce di log corrisponde ai filtri del sink, viene inoltrata alla destinazione del sink.
In genere, i sink inoltrano solo le voci di log che hanno origine in una risorsa. Tuttavia, per le cartelle e le organizzazioni puoi creare sink aggregati, che indirizzano le voci di log dalla cartella o dall'organizzazione e dalle risorse che contengono. Questo documento non tratta i canali aggregati. Per ulteriori informazioni, consulta la sezione Panoramica dei sink aggregati.
Per creare e gestire i canali di destinazione, puoi utilizzare la Google Cloud console, l'API Cloud Logging e Google Cloud CLI. Ti consigliamo di utilizzare la Google Cloud console:
- La pagina Router dei log elenca tutti i sink e fornisce opzioni per gestirli.
- Quando crei un sink, puoi visualizzare l'anteprima delle voci di log corrispondenti ai filtri del sink.
- Puoi configurare le destinazioni del sink quando ne crei uno.
- Alcuni passaggi di autorizzazione sono stati completati per tuo conto.
Destinazioni supportate
La destinazione di un sink può trovarsi in una risorsa diversa dal sink. Ad esempio, puoi utilizzare unsink di log per instradare le voci di log da un progetto a un bucket di log archiviato in un altro progetto.
Sono supportate le seguenti destinazioni:
- ProgettoGoogle Cloud
Seleziona questa destinazione quando vuoi che gli accumuli di log nel progetto di destinazione reindirizzino le voci di log o quando hai creato un accumulo aggregato di intercettazione. Gli elementi di destinazione dei log nel progetto che funge da destinazione del sink possono reindirizzare le voci di log a qualsiasi destinazione supportata, tranne a un progetto.
- Bucket di log
Seleziona questa destinazione quando vuoi archiviare i dati dei log nelle risorse gestite da Cloud Logging. I dati dei log archiviati nei bucket dei log possono essere visualizzati e analizzati utilizzando servizi come Esplora log e Analisi dei log.
Se vuoi unire i dati di log ad altri dati aziendali, puoi archiviarli in un bucket di log e creare un set di dati BigQuery collegato. Un set di dati collegato è un set di dati di sola lettura su cui è possibile eseguire query come su qualsiasi altro set di dati BigQuery.
- Set di dati BigQuery
- Seleziona questa destinazione quando vuoi unire i dati dei log ad altri dati aziendali. Il set di dati specificato deve essere abilitato alla scrittura. Non impostare la destinazione di un sink come un set di dati BigQuery collegato. I set di dati collegati sono di sola lettura.
- Bucket Cloud Storage
- Seleziona questa destinazione se vuoi archiviare i dati dei log a lungo termine. Il bucket Cloud Storage può trovarsi nello stesso progetto in cui hanno origine le voci di log o in un progetto diverso. Le voci di log vengono archiviate come file JSON.
- Argomento Pub/Sub
- Seleziona questa destinazione quando vuoi esportare i dati dei log da Google Cloud e poi utilizzare integrazioni di terze parti come Splunk o Datadog. Le voci di log vengono formattate in JSON e poi inoltrate a un argomento Pub/Sub.
Limitazioni delle destinazioni
Questa sezione descrive le limitazioni specifiche per le destinazioni:
- Se indirizzi le voci di log a un bucket di log in un Google Cloud progetto diverso, Error Reporting non le analizza. Per ulteriori informazioni, consulta la Panoramica di Error Reporting.
- Se inoltri le voci di log a un set di dati BigQuery, il set di dati BigQuery deve essere abilitato alla scrittura. Non puoi instradare le voci di log ai set di dati collegati, che sono di sola lettura.
- Potrebbero essere necessarie diverse ore per iniziare a inoltrare le voci di log ai nuovi sink che indirizzano i dati di log ai bucket Cloud Storage. Questi sink vengono elaborati ogni ora.
Quando la destinazione di un'area di destinazione dei log è un Google Cloud project:
- Esiste un limite di un hop.
- Le voci di log che corrispondono al filtro del
_Required
sink di log vengono instradate al bucket di log_Required
del progetto di destinazione solo se provengono dal progetto di destinazione. - Solo gli sink aggregati presenti nella gerarchia delle risorse di una voce di log elaborano la voce di log.
Ad esempio, supponiamo che la destinazione di un sink di log nel progetto
A
sia il progettoB
. Di conseguenza, le seguenti affermazioni sono vere:- A causa del limite di un hop, i canali di log nel progetto
B
non possono reindirizzare le voci di log a un progetto Google Cloud . - Il bucket di log
_Required
del progettoB
archivia solo le voci di log che hanno avuto origine nel progettoB
. Questo bucket di log non memorizza voci di log generate in altre risorse, incluse quelle generate nel progettoA
. - Se la gerarchia delle risorse del progetto
A
e del progettoB
è diversa, una voce di log che un sink di log nel progettoA
inoltra al progettoB
non viene inviata ai canali aggregati nella gerarchia delle risorse del progettoB
. - Se il progetto
A
e il progettoB
hanno la stessa gerarchia delle risorse, le voci di log vengono inviate agli sink aggregati in quella gerarchia. Se una voce di log non viene intercettata da un sink aggregato, il router dei log la invia ai sink del progettoA
.
Prima di iniziare
Le istruzioni riportate in questo documento descrivono la creazione e la gestione dei sink a livello di Google Cloud progetto. Puoi utilizzare la stessa procedura per creare un sink che inoltra le voci di log originate in un'organizzazione, una cartella o un account di fatturazione.
Per iniziare:
-
Enable the Cloud Logging API.
Assicurati che il tuo Google Cloud progetto contenga voci di log che puoi visualizzare in Esplora log.
-
Per ottenere le autorizzazioni necessarie per creare, modificare o eliminare un'area di destinazione, chiedi all'amministratore di concederti il ruolo IAM Editor di configurazione dei log (
roles/logging.configWriter
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per informazioni sulla concessione dei ruoli IAM, consulta la guida al controllo dell'accesso di Logging.
Hai una risorsa in una destinazione supportata o hai la possibilità di crearne una.
Per instradare le voci di log a una destinazione, la destinazione deve esistere prima di creare il sink. Puoi creare la destinazione in qualsiasi Google Cloud progetto di qualsiasi organizzazione.
Prima di creare un sink, esamina le limitazioni che si applicano alla destinazione del sink. Per ulteriori informazioni, consulta la sezione Limitazioni per le destinazioni di questo documento.
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.
Creazione di un sink
Questa sezione descrive come creare un'area di destinazione in un Google Cloud progetto. Puoi creare fino a 200 sink per Google Cloud progetto. Per visualizzare il numero e il volume delle voci di log instradate, consulta le metriche
logging.googleapis.com/exports/
.Utilizza il linguaggio di query di Logging per creare un'espressione di filtro corrispondente alle voci di log che vuoi includere. Non inserire informazioni sensibili nei filtri di destinazione. I filtri di destinazione vengono trattati come dati di servizio.
Quando una query contiene più istruzioni, puoi specificare come vengono unite o fare affidamento su Cloud Logging aggiungendo implicitamente la restrizione congiuntiva
AND
tra le istruzioni. Ad esempio, supponiamo che una finestra di dialogo di query o filtro contenga due istruzioni,resource.type = "gce_instance"
eseverity >= "ERROR"
. La query effettiva èresource.type = "gce_instance" AND severity >= "ERROR"
. Cloud Logging supporta sia le limitazioni disgiuntive,OR
, sia quelle congiuntive,AND
. Quando utilizzi le istruzioniOR
, ti consigliamo di agrupare le clausole con le parentesi.Per creare un sink:
Console
-
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 il Google Cloud progetto in cui hanno origine le voci di log che vuoi instradare.
Ad esempio, se vuoi instradare le voci di log di accesso ai dati dal progetto
Project-A
a un bucket di log nel progettoProject-B
, selezionaProject-A
.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 canalizzazione: descrivi lo scopo o il caso d'uso della canalizzazione.
Nel riquadro Destinazione sink, seleziona il servizio sink e la destinazione utilizzando il menu Seleziona il servizio sink. Esegui una delle seguenti operazioni:
Per inoltrare le voci di log a un servizio nello stesso Google Cloud progetto, seleziona una delle seguenti opzioni:
- Bucket Cloud Logging: seleziona o crea un bucket di logging.
- Set di dati BigQuery: seleziona o crea il set di dati scrivibile per ricevere le voci di log instradate. Hai anche la possibilità di utilizzare le tabelle partizionate.
- Bucket Cloud Storage: seleziona o crea il bucket Cloud Storage specifico per ricevere le voci di log instradate.
- Argomento Pub/Sub: seleziona o crea l'argomento specifico per ricevere le voci di log instradate.
- Splunk: seleziona l'argomento Pub/Sub per il servizio Splunk.
Per instradare le voci di log a un Google Cloud progetto diverso, seleziona Google Cloud project e poi inserisci il nome completo per la destinazione:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Per instradare le voci di log a un servizio in un altro progettoGoogle Cloud , procedi nel seguente modo:
- Seleziona Altra risorsa.
- Inserisci il nome completo della destinazione. Per informazioni sulla sintassi, consulta la sezione Formati dei percorsi di destinazione.
Specifica le voci di log da includere:
Vai al riquadro Scegli i log da includere nel sink.
Nel campo Crea filtro di inclusione, inserisci un'espressione di filtro corrispondente 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, tutte le voci di log della risorsa selezionata vengono inoltrate alla destinazione.
Ad esempio, per inoltrare tutte le voci di log di accesso ai dati a un secchio di logging, puoi utilizzare il seguente filtro:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
La lunghezza di un filtro non può superare i 20.000 caratteri.
Per verificare di aver inserito il filtro corretto, seleziona Anteprima dei log. Esplora log si apre in una nuova scheda con il filtro precompilato.
(Facoltativo) Configura un filtro di esclusione per eliminare alcune delle voci di log incluse:
Vai al riquadro Scegli i log da escludere dal sink.
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.
Puoi creare fino a 50 filtri di esclusione per sink. Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.
Seleziona Crea sink.
Concedi all'account di servizio del sink l'autorizzazione per scrivere voci di log nella destinazione del sink. Per ulteriori informazioni, consulta Impostare le autorizzazioni di destinazione.
gcloud
Per creare un sink:
Esegui il seguente comando
gcloud logging sinks create
:gcloud logging sinks create SINK_NAME SINK_DESTINATION
Prima di eseguire il 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. Imposta SINK_DESTINATION con il percorso appropriato, come descritto in Formati dei percorsi di destinazione.
Ad esempio, se la destinazione di destinazione è un argomento Pub/Sub, SINK_DESTINATION ha il seguente aspetto:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Puoi anche fornire le seguenti opzioni:
--log-filter
: utilizza questa opzione per impostare un filtro che corrisponda alle voci di log che vuoi includere nel sink. Se non fornisci un valore per il filtro di inclusione, questo filtro corrisponde a tutte le voci di log.--exclusion
: utilizza questa opzione per impostare un filtro di esclusione per le voci di log da cui vuoi escludere il routing del sink. Puoi anche utilizzare la funzionesample
per selezionare una parte delle voci di log da escludere. Questa opzione può essere ripetuta; puoi creare fino a 50 filtri di esclusione per destinazione.--description
: utilizza questa opzione per descrivere lo scopo o il caso d'uso per la destinazione.
Ad esempio, per creare un sink in un bucket Logging, il comando potrebbe avere il seguente aspetto:
gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \ --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
Per ulteriori informazioni sulla creazione di sink utilizzando Google Cloud CLI, consulta la documentazione di riferimento
gcloud logging sinks
.Se la risposta del comando contiene una chiave JSON etichettata come
"writerIdentity"
, concedi all'account di servizio della destinazione l'autorizzazione di scrittura per la destinazione. Per ulteriori informazioni, consulta Impostare le autorizzazioni di destinazione.Non è necessario impostare le autorizzazioni di destinazione quando la risposta non contiene una chiave JSON etichettata
"writerIdentity"
.
REST
Per creare un'area di destinazione per i log nel tuo Google Cloud progetto, utilizza
projects.sinks.create
nell'API Logging. Nell'oggettoLogSink
, fornisci i valori obbligatori appropriati nel corpo della richiesta del metodo:name
: un identificatore per la destinazione. Tieni presente che, una volta creato il canale, non puoi rinominarlo, ma puoi eliminarlo e crearne uno nuovo.destination
: il servizio e la destinazione a cui vuoi inoltrare le voci del log. Per instradare le voci di log a un progetto diverso o a una destinazione che si trova in un altro progetto, imposta il campodestination
con il percorso appropriato, come descritto in Formati dei percorsi di destinazione.Ad esempio, se la destinazione di destinazione è un argomento Pub/Sub,
destination
ha il seguente aspetto:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Nell'oggetto
LogSink
, fornisci le informazioni facoltative appropriate:filter
: imposta il campofilter
in modo che corrisponda alle voci di log che vuoi includere nel sink. Se non imposti un filtro, tutte le voci di log del tuo Google Cloud progetto vengono indirizzate alla destinazione. Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.exclusions
: imposta questo campo in modo che corrisponda alle voci di log da escludere dal sink. Puoi anche utilizzare la funzionesample
per selezionare una parte delle voci di log da escludere. Puoi creare fino a 50 filtri di esclusione per destinazione.description
: imposta questo campo per descrivere lo scopo o il caso d'uso del canale.
Chiama
projects.sinks.create
per creare il sink.Se la risposta dell'API contiene una chiave JSON etichettata come
"writerIdentity"
, concedi all'account di servizio della destinazione l'autorizzazione di scrittura nella destinazione. Per ulteriori informazioni, consulta Impostare le autorizzazioni di destinazione.Non è necessario impostare le autorizzazioni di destinazione quando la risposta dell'API non contiene una chiave JSON etichettata come
"writerIdentity"
.
Per ulteriori informazioni sulla creazione di sink utilizzando l'API Logging, consulta la pagina di riferimento
LogSink
.Se ricevi notifiche di errore, consulta Risolvere i problemi relativi a routing e sink.
Formati dei percorsi di destinazione
Se inoltri le voci di log a un servizio in un altro progetto, devi fornire all'obiettivo il nome completo del servizio. Analogamente, se indirizzi le voci di log a un altro Google Cloud progetto, devi fornire al sink il nome completo del progetto di destinazione:
Bucket dei log di Cloud Logging:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Un altro Google Cloud progetto:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Set di dati BigQuery:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Cloud Storage:
storage.googleapis.com/BUCKET_NAME
Argomento Pub/Sub:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Impostare le autorizzazioni di destinazione
Questa sezione descrive come concedere a Logging le autorizzazioni Identity and Access Management per scrivere le voci di log nella destinazione dell'eseguibile 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 flusso, a meno che l'account di servizio richiesto non esista già. L'account di servizio potrebbe esistere perché lo stesso account di servizio viene utilizzato per tutti i canali nella risorsa sottostante. Le risorse possono essere un Google Cloud progetto, 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 canali di destinazione hanno un'identità di autore, tranne quelli che scrivono in un bucket di log nello stesso Google Cloud progetto in cui ha avuto origine la voce di log. Per quest'ultima configurazione, non è richiesto un account di servizio, pertanto il campo identità autore del sink è indicato come
None
nella console. L'API e i comandi Google Cloud CLI non riportano l'identità di un autore.Le seguenti istruzioni si applicano a progetti, cartelle, organizzazioni e account di fatturazione:
Console
Assicurati di disporre dell'accesso Proprietario al Google Cloud progetto 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 l'identità dello scrittore del nuovo sink, ovvero un indirizzo email, procedi nel seguente modo:
-
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.
- Nella barra degli strumenti, seleziona il progetto che contiene l'emissario.
- 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 per l'emissario.Copia l'identità dello scrittore della destinazione negli appunti.
L'indirizzo email identifica l'entità. Il prefisso
serviceAccount:
specifica il tipo di account.Concedi all'entità specificata nell'identità autore del sink l'autorizzazione a 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, assicurati che il progetto selezionato sia il progetto che memorizza la destinazione o la destinazione di destinazione. Ad esempio, se la destinazione è un bucket di log, assicurati che la barra degli strumenti mostri il progetto che memorizza il bucket di log.
Fai clic su
Concedi l'accesso.Concedi all'entità specificata nell'identità autore del sink un ruolo IAM in base alla destinazione del sink dei 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
(
-
gcloud
Assicurati di disporre dell'accesso Proprietario al Google Cloud progetto 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.
Recupera l'account di servizio dal campo
writerIdentity
nel tuo sink:gcloud logging sinks describe SINK_NAME
Individua il sink di cui vuoi modificare le autorizzazioni e, se i dettagli del sink contengono una riga con
writerIdentity
, vai al passaggio successivo. Se i dettagli non includono un campowriterIdentity
, non è necessario configurare le autorizzazioni di destinazione per il collettore.L'identità autore per l'account di servizio è simile alla seguente:
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. Specifica il progetto in cui è archiviata la destinazione del sink di log. Quando la destinazione è un progetto, specifica il progetto.
- 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.
Gestire i sink
Dopo aver creato i canali, puoi eseguire le seguenti azioni. L'applicazione di eventuali modifiche apportate a un sink potrebbe richiedere alcuni minuti:
- Visualizza dettagli
- Aggiorna
Disattiva
- Non puoi disattivare il sink
_Required
. - Puoi disattivare il sink
_Default
per impedire il routing delle voci di log al_Default
bucket Logging. - Se vuoi disattivare l'emissario
_Default
per i nuovi Google Cloud progetti o le nuove cartelle creati nella tua organizzazione, prendi in considerazione la configurazione delle impostazioni predefinite della risorsa.
- Non puoi disattivare il sink
Elimina
- Non puoi eliminare i sink
_Default
o_Required
. - Quando elimini un'area di destinazione, questa non inoltra più le voci di log.
- Se la destinazione ha un account di servizio dedicato, l'eliminazione della destinazione comporta anche l'eliminazione dell'account di servizio. I canali creati prima del 22 maggio 2023 hanno account di servizio dedicati. I canali di destinazione creati il 22 maggio 2023 o successivamente hanno un account di servizio condiviso. L'eliminazione della destinazione non comporta l'eliminazione dell'account di servizio condiviso.
- Non puoi eliminare i sink
Risolvere i problemi di errore
- Visualizza il volume di log e i tassi di errore
Di seguito sono riportate le istruzioni per gestire un sink in un Google Cloud progetto. Anziché un Google Cloud progetto, puoi specificare un account di fatturazione, una cartella o un'organizzazione:
Console
-
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.
Nella barra degli strumenti, seleziona la risorsa che contiene l'emissario. La risorsa può essere un progetto, una cartella, un'organizzazione o un account di fatturazione.
La pagina Router dei log mostra i sink nella risorsa selezionata. Ogni riga della tabella contiene informazioni sulle proprietà di un sink:
- Abilitato: indica se lo stato della destinazione è attivo o disattivato.
- Tipo: il servizio di destinazione del sink, ad esempio
Cloud Logging bucket
. - Nome: l'identificatore della destinazione, fornito al momento della creazione;
ad esempio
_Default
. - Descrizione: la descrizione del sink, fornita al momento della sua creazione.
- Destinazione: nome completo della destinazione a cui vengono inviate le voci del log indirizzate.
- Created: la data e l'ora di creazione dell'eseguitore di importazione.
- Ultimo aggiornamento: la data e l'ora dell'ultima modifica dell'eseguitore di importazione.
- Volume: indica il volume totale di log inviati al sink di log. Il valore include il volume indirizzato ai bucket di log, ai progetti o ad altre destinazioni.
Per ogni riga della tabella, il menu more_vert Altre azioni offre le seguenti opzioni:
- Visualizza i dettagli della destinazione: vengono visualizzati il nome, la descrizione, il servizio di destinazione, la destinazione e i filtri di inclusione ed esclusione della destinazione. Se selezioni Modifica, si apre il riquadro Modifica sink.
- Modifica sink: apre il riquadro Modifica sink in cui puoi aggiornare i parametri del sink.
- Disattiva sink: consente di disattivare il sink e interrompere il routing delle voci di log alla destinazione del sink. Per ulteriori informazioni sull'esclusione dei sink, consulta Interrompere lo stoccaggio dei log nei bucket dei log.
- Attiva sink: consente di attivare un sink disattivato e di riavviare il routing delle voci di log alla destinazione del sink.
- Elimina la destinazione: consente di eliminare la destinazione e interrompere il routing delle voci di log alla destinazione della destinazione.
- Risolvi i problemi relativi al sink: apre Esplora log, dove puoi risolvere i problemi relativi al sink.
- Visualizza volume di log e tassi di errore del sink: apre Metrics Explorer, dove puoi visualizzare e analizzare i dati del sink.
Per ordinare la tabella in base a una colonna, seleziona il nome della colonna.
gcloud
Per visualizzare l'elenco dei canali per il tuo Google Cloud progetto, utilizza il comando
gcloud logging sinks list
, che corrisponde al metodo dell'API Loggingprojects.sinks.list
:gcloud logging sinks list
Per visualizzare l'elenco dei sink aggregati, utilizza l'opzione appropriata per specificare la risorsa che contiene il sink. Ad esempio, se hai creato il canale a livello di organizzazione, utilizza l'opzione
--organization=ORGANIZATION_ID
per elencare i canali per l'organizzazione.Per descrivere un'area di destinazione, utilizza il comando
gcloud logging sinks describe
che corrisponde al metodo dell'API Loggingprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Per aggiornare un sink, utilizza il comando
gcloud logging sinks update
che corrisponde al metodo APIprojects.sink.update
.Puoi aggiornare un sink per modificare la destinazione, i filtri e la descrizione oppure per disattivarlo o riattivarlo:
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 dell'emissario
my-project-sink
con una nuova destinazione del bucket Cloud Storagemy-second-gcs-bucket
, il comando sarà il seguente:gcloud logging sinks update my-project-sink storage.googleapis.com/my-second-gcs-bucket
Per disattivare un canale di destinazione, utilizza il comando
gcloud logging sinks update
che corrisponde al metodo dell'APIprojects.sink.update
e includi l'opzione--disabled
:gcloud logging sinks update SINK_NAME --disabled
Per riattivare il sink, utilizza il comando
gcloud logging sinks update
rimuovi l'opzione--disabled
e includi l'opzione--no-disabled
:gcloud logging sinks update SINK_NAME --no-disabled
Per eliminare un'area di destinazione, utilizza il comando
gcloud logging sinks delete
che corrisponde al metodo dell'APIprojects.sinks.delete
:gcloud logging sinks delete SINK_NAME
Per ulteriori informazioni sulla gestione degli scoli utilizzando Google Cloud CLI, consulta la documentazione di riferimento
gcloud logging sinks
.
REST
Per visualizzare gli sink per il tuo Google Cloud progetto, chiama
projects.sinks.list
.Per visualizzare i dettagli di un'area di destinazione, 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 disabilitare o riattivare il sink.
Per disattivare un'area di destinazione, imposta il campo
disabled
nell'oggettoLogSink
sutrue
e poi chiamaprojects.sink.update
.Per riattivare l'eseguibile sink, imposta il campo
disabled
nell'oggettoLogSink
sufalse
e poi chiamaprojects.sink.update
.Per eliminare un'area di destinazione, chiama
projects.sinks.delete
.Per ulteriori informazioni sulla gestione degli sink tramite l'API Logging, consulta la documentazione di riferimento
LogSink
.
Interrompi l'archiviazione delle voci di log nei bucket di log
Puoi disattivare l'emissario
_Default
e qualsiasi altro emissario definito dall'utente. Quando disattivi un sink, questo smette di inoltrare le voci di log alla destinazione. Ad esempio, se disattivi il sink_Default
, nessuna voce di log viene indirizzata al bucket_Default
. Il_Default
bucket diventa vuoto quando tutte le voci di log archiviate in precedenza hanno soddisfatto il periodo di conservazione del bucket.Le istruzioni riportate di seguito illustrano come disattivare i Google Cloud sink del progetto che indirizzano le voci di log ai bucket dei log
_Default
:Console
-
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.
- Per trovare tutti i sink che instradano le voci di log al bucket di log
_Default
, filtra i sink per destinazione e inserisci_Default
. Per ogni canale, seleziona more_vert Menu e poi Disattiva canale.
I canali sono ora disattivati e i canali del Google Cloud progetto non indirizzano più le voci di log al bucket
_Default
.
Per riattivare un sink disattivato e riavviare il routing delle voci di log alla destinazione del sink, procedi nel seguente modo:
-
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.
- Per trovare tutti i sink che instradano le voci di log al bucket di log
_Default
, filtra i sink per destinazione e inserisci_Default
. - Per ogni destinazione, seleziona more_vert Menu e poi Attiva destinazione.
gcloud
Per visualizzare l'elenco dei canali per il tuo Google Cloud progetto, utilizza il comando
gcloud logging sinks list
, che corrisponde al metodo dell'API Loggingprojects.sinks.list
:gcloud logging sinks list
Identifica eventuali sink che indirizzano i dati al bucket dei log
_Default
. Per descrivere un'area di destinazione, incluso il nome della destinazione, utilizza il comandogcloud logging sinks describe
, che corrisponde al metodo dell'API Loggingprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Esegui il comando
gcloud logging sinks update
e includi l'opzione--disabled
. Ad esempio, per disattivare il sink_Default
, utilizza il seguente comando:gcloud logging sinks update _Default --disabled
Il sink
_Default
è ora disabilitato e non inoltra più le voci di log al bucket dei log_Default
.
Per disattivare gli altri sink nel tuo Google Cloud progetto che indirizzano al bucket
_Default
, ripeti i passaggi precedenti.Per riattivare un'area di destinazione, utilizza il comando
gcloud logging sinks update
rimuovi l'opzione--disabled
e includi l'opzione--no-disabled
:gcloud logging sinks update _Default --no-disabled
REST
Per visualizzare gli scoli per il tuo Google Cloud progetto, chiama il metodo
projects.sinks.list
dell'API Logging.Identifica eventuali sink che indirizzano i dati al bucket
_Default
.Ad esempio, per disattivare l'emissario
_Default
, imposta il campodisabled
nell'oggettoLogSink
sutrue
e poi chiamaprojects.sink.update
.Il sink
_Default
è ora disabilitato e non inoltra più le voci di log al bucket_Default
.
Per disattivare gli altri sink nel tuo Google Cloud progetto che indirizzano al bucket
_Default
, ripeti i passaggi precedenti.Per riattivare un sink, imposta il campo
disabled
nell'oggettoLogSink
sufalse
e poi chiamaprojects.sink.update
.Esempi di codice
Per utilizzare il codice della libreria client per configurare i sink nelle lingue che hai scelto, consulta Librerie client di logging: sink di log.
Esempi di filtro
Di seguito sono riportati alcuni esempi di filtri particolarmente utili per la creazione di canali. Per ulteriori esempi che potrebbero essere utili durante la creazione dei filtri di inclusione e di esclusione, consulta Query di esempio.
Ripristina il filtro di destinazione
_Default
Se hai modificato il filtro per l'emissario
_Default
, ti consigliamo di ripristinarne la configurazione originale. Una volta creato, l'emissario_Default
viene configurato con il seguente filtro di inclusione e un filtro di esclusione vuoto: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 dei container e dei pod di Google Kubernetes Engine
Per escludere le voci dei log dei container e dei 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 le voci di 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 di voci di log di nodi, pod e container di Google Kubernetes Engine memorizzate nei bucket di log, utilizza Metrics Explorer:
- Visualizzare il volume delle voci di log del nodo
- Visualizzare voce di log del pod
- Visualizzare il volume delle voci di log del contenitore
Escludi i log di Dataflow non necessari per la supportabilità
Per escludere le voci di log di Dataflow non necessarie per la supportabilità, utilizza il seguente filtro:
resource.type="dataflow_step" labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"
Per visualizzare il volume dei log di Dataflow archiviati nei bucket di log, utilizza Metrics Explorer.
Supportabilità
Sebbene Cloud Logging ti consenta di escludere le voci di log e di impedirne la memorizzazione in un bucket di log, potresti prendere in considerazione la possibilità di conservare le voci di log utili per la supportabilità. L'utilizzo di queste voci di log può aiutarti a risolvere e identificare i problemi con le tue applicazioni.
Ad esempio, le voci dei log di sistema GKE sono utili per risolvere i problemi delle applicazioni e dei cluster GKE perché vengono generate per gli eventi che si verificano nel cluster. Queste voci di log possono aiutarti a determinare se il codice dell'applicazione o il cluster GKE sottostante sta causando l'errore dell'applicazione. I log di sistema GKE includono anche il logging di controllo Kubernetes generato dal componente del server API Kubernetes, che include le modifiche apportate utilizzando il comando kubectl e gli eventi Kubernetes.
Per Dataflow, ti consigliamo di scrivere almeno i log di sistema (
labels."dataflow.googleapis.com/log_type"="system"
) e di supportabilità (labels."dataflow.googleapis.com/log_type"="supportability"
) nei bucket di log. Questi log sono essenziali per gli sviluppatori per osservare e risolvere i problemi delle pipeline Dataflow e gli utenti potrebbero non essere in grado di utilizzare la pagina Dettagli job di Dataflow per visualizzare i log dei job.Passaggi successivi
Se riscontri problemi durante l'utilizzo di canali per instradare le voci di log, consulta Risolvere i problemi di routing dei log.
Per scoprire come visualizzare le voci di log nelle relative destinazioni, nonché come vengono formattati e organizzati i log, consulta Visualizza i log nelle destinazioni sink.
Per scoprire di più su come eseguire query e filtrare con il linguaggio delle query di Logging, consulta Lingua delle query di Logging.
-