Questo documento spiega come Cloud Logging instrada le voci di log ricevute dai serviziGoogle Cloud , dalle tue applicazioni e da altri provider cloud. Per impostazione predefinita, Cloud Logging indirizza tutti i log ai bucket di log nel progetto, nella cartella o nell'organizzazione di origine. Tuttavia, puoi configurare i sink per indirizzare i dati a bucket personalizzati, Cloud Storage, BigQuery o Pub/Sub per l'archiviazione o l'analisi. Servizi come Cloud Storage e Pub/Sub supportano l'esportazione dei dati di log in strumenti di terze parti.
A livello generale, ecco come Cloud Logging instrada e archivia le voci di log:
La figura precedente si applica ai bucket di log che si trovano in un progetto. Non puoi creare bucket dei log definiti dall'utente in cartelle o organizzazioni. Inoltre, non puoi estendere il periodo di conservazione di nessun bucket di log presente in una cartella o in un'organizzazione.
Routing ed esportazione delle voci di log
Il routing è il processo di spostamento delle voci di log ricevute da un progetto, una cartella o un'organizzazione a una destinazione. Google Cloud Una destinazione è un servizio che elabora le voci di log ricevute ed esegue un'azione. Ad esempio, puoi indirizzare le voci di log a una destinazione bucket di log. Questa destinazione analizza le voci di log per individuare informazioni sugli errori e le scrive nell'archiviazione.
L'esportazione è il processo di spostamento delle voci di log da Google Cloud a una posizione esterna. Ad esempio, puoi instradare le voci di log a Pub/Sub e poi esportarle in strumenti di terze parti.
Cloud Logging utilizza i sink di log per instradare le voci di log alle destinazioni. Per impostazione predefinita, le voci di log vengono instradate a uno dei due bucket di log nel tuo progetto, nella tua cartella o nella tua organizzazioneGoogle Cloud . Puoi creare sink di log per indirizzare i dati di log ad altre destinazioni. Puoi anche modificare uno dei sink di log creati dal sistema. Questo documento descrive queste opzioni.
Esplora log consente di scaricare le voci di log archiviate nei bucket di log nello spazio di archiviazione locale. Tuttavia, l'opzione di download è limitata a 10.000 voci di log. Per esportare le voci di log da Google Cloud, valuta queste opzioni:
Configura un sink di log per indirizzare le voci di log in entrata a Pub/Sub, quindi esporta i dati da Google Cloud.
Copia le voci di log da un bucket di log a Cloud Storage, quindi esporta i dati da Google Cloud. Per informazioni su come copiare i log, vedi Raggruppare e instradare i log in modo retroattivo.
Informazioni sui router dei log
Ogni Google Cloud progetto, account di fatturazione, cartella e organizzazione ha un router dei log, che gestisce il flusso delle voci di log tramite i sink a livello di risorsa. Un router dei log gestisce anche il flusso di una voce di log attraverso i sink che si trovano nella gerarchia delle risorse della voce. I sink controllano il modo in cui le voci di log vengono instradate alle destinazioni.
Un router dei log archivia temporaneamente una voce di log. Questo comportamento protegge da interruzioni temporanee e interruzioni che potrebbero verificarsi quando una voce di log scorre attraverso i sink. Lo spazio di archiviazione temporaneo non protegge dagli errori di configurazione.
Lo spazio di archiviazione temporaneo di un router di log è diverso dallo spazio di archiviazione a lungo termine fornito dai bucket Logging.
Le voci di log in entrata con timestamp precedenti al periodo di conservazione dei log o successivi di più di 24 ore vengono eliminate.
Informazioni sui sink di log
Quando un sink di log riceve una voce di log, determina se ignorarla o indirizzarla alla destinazione del sink. Il sink di log confronta la voce di log con i relativi filtri per prendere questa decisione. La destinazione di un sink può essere un progetto, una posizione di archiviazione o un servizio come Pub/Sub. Ad esempio, un sink può eseguire il routing delle voci di log a un bucket di log.
I sink di log appartengono a una determinata Google Cloud risorsa Google Cloud :progetti, account di fatturazione, cartelle e organizzazioni. Queste risorse contengono anche più sink di log. Quando una risorsa riceve una voce di log, ogni sink di log in quella risorsa valuta la voce di log in modo indipendente. Di conseguenza, più sink di log possono instradare la stessa voce di log.
Per impostazione predefinita, i dati di log vengono archiviati nel progetto in cui hanno origine. Tuttavia, esistono diversi motivi per cui potresti voler modificare questa configurazione:
- Per centralizzare l'archiviazione dei dati dei log.
- Per unire i dati dei log ad altri dati aziendali.
- Per organizzare i dati di log in modo utile.
- Per trasmettere i log ad altre applicazioni, altri repository o terze parti. Ad esempio, potresti voler esportare i log da Google Cloud per visualizzarli su una piattaforma di terze parti. Per esportare le voci di log, crea un sink di log che le instradi a Pub/Sub.
Un sink di log configurato in modo errato non esegue il routing delle voci di log. Quando un sink è configurato in modo errato, vengono scritte voci di log che riportano i dettagli dell'errore. Inoltre, viene inviata un'email ai contatti essenziali per la risorsa. Per saperne di più, vedi Risoluzione dei problemi: visualizzare gli errori.
I sink dei log non possono instradare retroattivamente le voci di log. ovvero, un sink di log non può instradare una voce di log ricevuta prima della creazione del sink. Allo stesso modo, se un sink è configurato in modo errato, instrada solo le voci di log che arrivano dopo la risoluzione dell'errore di configurazione. Tuttavia, puoi copiare retroattivamente i dati di log da un bucket di log a Cloud Storage. Per saperne di più, consulta Copia dei log.
Supporto di organizzazioni e cartelle
Per aiutarti a gestire i dati di log in un'organizzazione o in una cartella, puoi:
Puoi creare sink aggregati, che indirizzano le voci di log per un'organizzazione o una cartella e i relativi elementi secondari alla destinazione specificata dal sink. Esistono due tipi di sink aggregati:
- Sink aggregati non di intercettazione
- Sink aggregati di intercettazione
La differenza tra questi due tipi di sink è che l'intercettazione dei sink a un livello della gerarchia delle risorse può influire sul routing delle risorse ai livelli inferiori della gerarchia. I sink non intercettanti non influiscono sul routing per altre risorse. Quando un sink di intercettazione in una risorsa corrisponde a una voce di log, quest'ultima non viene inviata ai sink nelle risorse figlio, con l'eccezione che la voce di log viene sempre inviata al sink di log
_Requirednella risorsa in cui ha origine la voce di log.Puoi configurare le impostazioni predefinite delle risorse per Cloud Logging per specificare la configurazione del sink
_Defaultcreato dal sistema per le nuove risorse in un'organizzazione o una cartella. Ad esempio, puoi utilizzare queste impostazioni per disattivare il sink_Defaulto specificare i filtri in questo sink.
Esempi di routing
Questa sezione illustra come una voce di log che ha origine in un progetto potrebbe fluire attraverso i sink nella sua gerarchia delle risorse.
Esempio: non esistono sink aggregati
Se non esistono sink aggregati nella gerarchia delle risorse della voce di log, la voce di log viene inviata ai sink di log nel progetto di origine. Un sink a livello di progetto indirizza la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione del sink, ma non corrisponde a nessuno dei filtri di esclusione del sink.
Esempio: esiste un sink aggregato non intercettante
Supponi che esista un sink aggregato non intercettante nella gerarchia delle risorse per una voce di log. Dopo che Log Router invia la voce di log al sink aggregato non intercettante, si verifica quanto segue:
La route del sink aggregato non intercettante indirizza la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione, ma non corrisponde ad alcun filtro di esclusione.
Il router di log invia la voce di log ai sink di log nel progetto in cui ha avuto origine la voce di log.
Un sink a livello di progetto indirizza la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione del sink, ma non corrisponde a nessuno dei filtri di esclusione del sink.
Esempio: esiste un sink aggregato di intercettazione
Supponi che esista un sink aggregato di intercettazione nella gerarchia delle risorse per una voce di log. Dopo che Log Router invia la voce di log al sink aggregato di intercettazione, si verifica una delle seguenti situazioni:
La voce di log corrisponde al filtro di inclusione, ma non a nessun filtro di esclusione:
- La voce di log viene indirizzata alla destinazione del sink aggregato di intercettazione.
- La voce di log viene inviata al sink
_Requirednel progetto in cui è stata creata.
La voce di log non corrisponde al filtro di inclusione o corrisponde ad almeno un filtro di esclusione:
- La voce di log non viene instradata dal sink aggregato di intercettazione.
Il router di log invia la voce di log ai sink di log nel progetto in cui ha avuto origine la voce di log.
Un sink a livello di progetto indirizza la voce di log alla destinazione del sink quando la voce di log corrisponde al filtro di inclusione del sink, ma non corrisponde a nessuno dei filtri di esclusione del sink.
Filtri del sink di log
Ogni sink di log contiene un filtro di inclusione e può contenere più filtri di esclusione. Questi filtri determinano se il sink di log indirizza una voce di log alla destinazione del sink. Se non specifichi alcun filtro, ogni voce di log viene indirizzata alla destinazione del sink.
Una voce di log viene indirizzata da un sink di log in base a queste regole:
Se la voce di log non corrisponde al filtro di inclusione, non viene instradata. Quando un sink non specifica un filtro di inclusione, ogni voce di log corrisponde a quel filtro.
Se la voce di log corrisponde al filtro di inclusione e ad almeno un filtro di esclusione, non viene instradata.
Se la voce di log corrisponde al filtro di inclusione e non corrisponde ad alcun filtro di esclusione, viene indirizzata alla destinazione del sink.
I filtri in un sink di log vengono specificati utilizzando il linguaggio di query di Logging.
Non puoi utilizzare i filtri di esclusione per ridurre il consumo della tua
quota API entries.write o il
numero di chiamate API entries.write. I filtri di esclusione
vengono applicati dopo che le voci di log vengono ricevute dall'API Logging.
Sink di log creati dal sistema
Per ogni progetto, account di fatturazione, cartella e organizzazione Google Cloud ,
Cloud Logging crea due sink di log, uno denominato _Required e l'altro
denominato _Default. I filtri di inclusione ed esclusione per questi sink verificano
che ogni voce di log che raggiunge la risorsa venga indirizzata da uno di questi sink.
Entrambi i sink indirizzano i dati di log a un bucket di log che si trova nella stessa risorsa del sink di log.
Il resto di questa sezione fornisce informazioni sui filtri e sulle destinazioni dei sink di log creati dal sistema.
Sink di log _Required
Il sink di log _Required in una risorsa indirizza un sottoinsieme di audit log al
bucket di log _Required della risorsa.
Questo sink non specifica filtri di esclusione e il filtro di inclusione
è il seguente:
LOG_ID("cloudaudit.googleapis.com/activity") OR
LOG_ID("externalaudit.googleapis.com/activity") OR
LOG_ID("cloudaudit.googleapis.com/system_event") OR
LOG_ID("externalaudit.googleapis.com/system_event") OR
LOG_ID("cloudaudit.googleapis.com/access_transparency") OR
LOG_ID("externalaudit.googleapis.com/access_transparency")
Il sink di log _Required corrisponde solo alle voci di log che hanno origine nella risorsa in cui è definito il sink di log _Required. Ad esempio, supponiamo che
un sink di log indirizzi una voce di log delle attività dal progetto A al progetto B.
Poiché la voce di log non ha avuto origine nel progetto B, il sink di log _Required nel progetto B non instrada questa voce di log al bucket di log _Required.
Non puoi modificare o eliminare il sink di log _Required.
Sink di log _Default
Il sink di log _Default in una risorsa indirizza tutte le voci di log
tranne quelle che corrispondono al filtro del sink di log _Required
al bucket di log