Puoi visualizzare e recuperare le voci di log indirizzate da Cloud Logging ai bucket Cloud Storage per supportare i controlli di sicurezza, l'archiviazione per la conformità o l'analisi esterna. Le voci di log vengono salvate nei bucket Cloud Storage in batch orari e in genere vengono visualizzate entro 2-3 ore dall'esportazione.
I sink di log non possono instradare le voci di log ai bucket Cloud Storage configurati per Rapid Storage.
Prima di iniziare
Per una discussione concettuale sui sink, consulta Panoramica dei modelli di routing e archiviazione: sink.
Per istruzioni su come instradare i log, consulta Instrada i log verso destinazioni supportate.
Visualizza i log
Per visualizzare i log indirizzati a Cloud Storage, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Bucket:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Cloud Storage.
Seleziona il bucket Cloud Storage che utilizzi come destinazione di routing.
Organizzazione dei log
Quando esegui il routing dei log a un bucket Cloud Storage, Logging scrive un insieme di file nel bucket.
I file sono organizzati in gerarchie di directory per tipo di log e data. Il tipo di log, indicato come [LOG_ID] nel riferimento LogEntry, può essere un nome come syslog o un nome composto come appengine.googleapis.com/request_log. Se questi log fossero archiviati in un bucket denominato my-gcs-bucket, le directory verrebbero denominate come nell'esempio seguente:
my-gcs-bucket/syslog/YYYY/MM/DD/
my-gcs-bucket/appengine.googleapis.com/request_log/YYYY/MM/DD/
Un singolo bucket Cloud Storage può contenere log di più tipi di risorse. La dimensione massima del file è di 3,5 GiB.
Logging non garantisce la deduplicazione delle voci di log provenienti da sink contenenti query identiche o sovrapposte; le voci di log provenienti da questi sink potrebbero essere scritte più volte in un bucket Cloud Storage.
Le directory foglia (DD/) contengono più file, ognuno dei quali contiene le voci di log indirizzate per un periodo di tempo specificato nel nome file. I file sono sharded e i loro nomi terminano con un numero di shard, Sn o An (n=0, 1, 2, …). Ad esempio, ecco due file che potrebbero essere archiviati nella directory my-gcs-bucket/syslog/2015/01/13/:
08:00:00_08:59:59_S0.json 08:00:00_08:59:59_S1.json
Questi due file contengono le voci di log syslog per tutte le istanze durante l'ora che inizia alle 08:00:00 UTC e termina alle 08:59:59 UTC. I timestamp voce di log sono espressi in UTC (Coordinated Universal Time).
Le voci di log che arrivano con un receiveTimestamp
entro la finestra allineata di 60 minuti del relativo timestamp vengono scritte nei
file dello shard principale. Ad esempio, una voce di log con un timestamp alle 08:00:00 e un receiveTimestamp alle 08:10:00 viene archiviata nel file dello shard principale.
Questi file includono uno shard principale numerato nel suffisso:
_Sn.json.
Le voci di log che arrivano con un timestamp in una finestra allineata di 60 minuti diversa rispetto al relativo receiveTimestamp vengono scritte nei file di shard di appendice. Ad esempio, una voce di log con un timestamp alle 08:00:00 e un receiveTimestamp alle 09:10:00 viene archiviata in un file shard di appendice.
Questi file includono uno shard di appendice numerato con il suffisso: _An:Unix_timestamp.json.
Ad esempio, una voce di log con un timestamp compreso tra le 08:00:00 e le 08:59:59, ma un receiveTimestamp in una finestra allineata di 60 minuti diversa, viene scritta in un file con il suffisso _An:Unix_timestamp.json, dove il timestamp Unix identifica l'ora in cui il file è stato indirizzato a Cloud Storage. Se una voce di log aveva un timestamp alle 08:50:00 e un receiveTimestamp alle 09:10:00 ed è stata instradata alle 09:15:00 del 25 marzo 2021, il file di appendice verrebbe scritto come segue:
08:00:00_08:59:59_A0:1616681700.json
Per ottenere tutte le voci di log, devi leggere tutti gli shard per ogni periodo di tempo, in questo caso gli shard di file 0 e 1. Il numero di shard di file scritti può cambiare per ogni periodo di tempo.
All'interno dei singoli file con sharding, le voci di log vengono archiviate come un elenco di oggetti LogEntry. Per un esempio di voce syslog, consulta Organizzazione delle voci di log.
Tieni presente che l'ordinamento delle voci di log all'interno dei file non è uniforme né garantito in altro modo.
Limitazione
Il campo LogEntry.errorGroups non è disponibile per questa destinazione.
I sink di log instradano le voci di log inviate al tuo progetto, ma queste voci di log non contengono gruppi di errori.
Voci di log in ritardo
Le voci di log con routing vengono salvate nei bucket Cloud Storage in batch orari.
Potrebbero essere necessarie da 2 a 3 ore prima che inizino a essere visualizzate le prime voci. Gli shard dei file di log con routing con il suffisso An ("Append") contengono voci di log arrivate in ritardo.
Se la destinazione subisce un'interruzione, Cloud Logging memorizza i dati nel buffer fino al termine dell'interruzione.
Se non sono presenti log nella destinazione del sink, controlla le metriche di sistema di esportazione. Le metriche di sistema di esportazione indicano quante voci di log vengono indirizzate e quante vengono ignorate a causa di errori. Se le metriche di sistema di esportazione indicano che non sono state indirizzate voci di log alla destinazione, controlla il [filtro][export-query] per verificare che le voci di log corrispondenti al filtro siano arrivate di recente in Logging.
Nella console Google Cloud , vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Voci di log di App Engine
App Engine combina più voci secondarie di tipo google.appengine.logging.v1.LogLine (chiamate anche AppLog o AppLogLine) in una voce di log principale di tipo google.appengine.logging.v1.RequestLog per la richiesta che causa l'attività di log. Le righe di log hanno ciascuna un "ID richiesta" che identifica la voce principale. Esplora log mostra le righe di log con la voce di log della richiesta. Logging tenta di inserire tutte le righe di log nel batch con la richiesta originale, anche se i relativi timestamp le inserirebbero nel batch successivo. Se ciò non è possibile, alla voce di log della richiesta potrebbero mancare alcune righe di log e potrebbero esserci righe di log "orfane" senza una richiesta nel batch successivo. Se questa possibilità è importante per te, preparati a ricollegare le parti della richiesta quando elabori i log.
Risoluzione dei problemi
Se i log sembrano mancare dalla destinazione del sink o se sospetti che il sink non indirizzi correttamente i log, consulta Risolvi i problemi relativi al routing dei log.