Questa architettura di riferimento descrive come importare i log precedentemente esportati in Cloud Storage in Cloud Logging.
Questa architettura di riferimento è destinata a ingegneri e sviluppatori, tra cui DevOps, SRE (Site Reliability Engineer) e investigatori della sicurezza, che vogliono configurare ed eseguire il job di importazione dei log. Questo documento presuppone che tu abbia familiarità con l'esecuzione di job Cloud Run e come utilizzare Cloud Storage e Cloud Logging.
Architettura
Il seguente diagramma mostra come vengono utilizzati i servizi Google Cloud in questa architettura di riferimento:
Questo flusso di lavoro include i seguenti componenti:
- Bucket Cloud Storage: contiene i log esportati in precedenza che vuoi importare nuovamente in Cloud Logging. Poiché questi log sono stati esportati in precedenza, sono organizzati nel formato di esportazione previsto.
- job Cloud Run: esegue il processo di importazione dei log:
- Legge gli oggetti che archiviano le voci di log da Cloud Storage.
- Trova i log esportati per l'ID log specificato, nell'intervallo di tempo richiesto, in base all'organizzazione dei log esportati nel bucket Cloud Storage.
- Converte gli oggetti in strutture
LogEntry
dell'API Cloud Logging. Più struttureLogEntry
vengono aggregate in batch per ridurre il consumo delle quote dell'API Cloud Logging. L'architettura gestisce gli errori di quota quando necessario. - Scrive le voci di log convertite in Cloud Logging. Se esegui nuovamente lo stesso job più volte, potrebbero verificarsi voci duplicate. Per ulteriori informazioni, vedi Eseguire il job di importazione.
- Cloud Logging: importa e archivia le voci di log convertite.
Le voci di log vengono elaborate come descritto nella panoramica su routing e archiviazione.
- Si applicano quote e limiti di Logging, tra cui le quote e i limiti dell'API Cloud Logging e un periodo di conservazione di 30 giorni. Questa architettura di riferimento è progettata per funzionare con le quote di scrittura predefinite, con un meccanismo di base per i tentativi. Se la tua quota di scrittura è inferiore a quella predefinita, l'implementazione potrebbe non riuscire.
- I log importati non sono inclusi nelle metriche basate su log perché i relativi timestamp sono nel passato. Tuttavia, se scegli di utilizzare un'etichetta, il timestamp registra l'ora di importazione e i log vengono inclusi nei dati delle metriche.
- BigQuery: utilizza SQL per eseguire query analitiche sui log importati (facoltativo). Per importare gli audit log da Cloud Storage, questa architettura modifica gli ID log; devi tenere conto di questa ridenominazione quando esegui query sui log importati.
Caso d'uso
Puoi scegliere di eseguire il deployment di questa architettura se la tua organizzazione richiede un'ulteriore analisi dei log per indagini sugli incidenti o altri controlli di eventi passati. Ad esempio, potresti voler analizzare le connessioni ai tuoi database per il primo trimestre dell'anno scorso, nell'ambito di un controllo dell'accesso ai database.
Progettare alternative
Questa sezione descrive le alternative alla progettazione predefinita mostrata in questo documento sull'architettura di riferimento.
Periodo di conservazione e log importati
Cloud Logging richiede che le voci di log in entrata abbiano timestamp che non superano un periodo di conservazione di 30 giorni. Le voci di log importate con timestamp risalenti a più di 30 giorni prima dell'importazione non vengono archiviate.
Questa architettura convalida l'intervallo di date impostato nel job Cloud Run per evitare di importare log più vecchi di 29 giorni, lasciando un margine di sicurezza di un giorno.
Per importare log più vecchi di 29 giorni, devi apportare le seguenti modifiche al codice di implementazione, quindi creare una nuova immagine container da utilizzare nella configurazione dei job di Cloud Run.
- Rimuovi la convalida di 30 giorni dell'intervallo di date
- Aggiungi il timestamp originale come etichetta utente alla voce di log
- Reimposta l'etichetta del timestamp della voce di log per consentirne l'importazione con il timestamp attuale
Quando utilizzi questa modifica, devi utilizzare il campo labels
anziché il campo timestamp
nelle query di Analisi dei log. Per ulteriori informazioni su query ed esempi di Analisi dei log, consulta Esempi di query SQL.
Note sul layout
Le seguenti linee guida possono aiutarti a sviluppare un'architettura che soddisfi i requisiti della tua organizzazione.
Ottimizzazione dei costi
Il costo per l'importazione dei log utilizzando questa architettura di riferimento ha diversi fattori.
Utilizzi i seguenti componenti fatturabili di Google Cloud:
- Cloud Logging (si applicano i costi del periodo di conservazione dei log)
- Cloud Run
- API Cloud Storage
Considera i seguenti fattori che potrebbero aumentare i costi:
- Duplicazione dei log: per evitare costi aggiuntivi di archiviazione dei log, non eseguire più volte il job di importazione con la stessa configurazione.
- Archiviazione in destinazioni aggiuntive: per evitare costi di archiviazione dei log aggiuntivi, disabilita i criteri di routing nel progetto di destinazione per impedire l'archiviazione dei log in località aggiuntive o l'inoltro dei log ad altre destinazioni, come Pub/Sub o BigQuery.
- CPU e memoria aggiuntive: in caso di timeout del job di importazione, potrebbe essere necessario aumentare la CPU e la memoria del job di importazione nella configurazione del job di importazione. L'aumento di questi valori potrebbe aumentare i costi di Cloud Run sostenuti.
- Attività aggiuntive: se il numero previsto di log da importare ogni giorno nell'intervallo di tempo è elevato, potrebbe essere necessario aumentare il numero di attività nella configurazione del job di importazione. Il job suddivide equamente l'intervallo di tempo tra le attività, in modo che ogni attività elabori contemporaneamente un numero simile di giorni nell'intervallo. L'aumento del numero di attività potrebbe aumentare i costi di Cloud Run sostenuti.
- Classe di archiviazione: se la classe di archiviazione del bucket Cloud Storage è diversa da Standard, ad esempio Nearline, DRA, o Coldline, potrebbero esserti addebitati costi aggiuntivi.
- Traffico di dati tra località diverse: configura il job di importazione in modo che venga eseguito nella stessa località del bucket Cloud Storage da cui importi i log. In caso contrario, potrebbero essere addebitati costi di traffico di rete in uscita.
Per generare una stima dei costi in base all'utilizzo previsto, inclusi i job Cloud Run, utilizza il Calcolatore prezzi.
Efficienza operativa
Questa sezione descrive le considerazioni per la gestione delle query analitiche dopo il deployment della soluzione.
Nomi di log e query
I log vengono archiviati nel progetto definito nel campo logName
della voce di log. Per importare i log nel progetto selezionato, questa architettura modifica il campo logName
di ogni log importato. I log di importazione vengono archiviati nel bucket di log predefinito del progetto selezionato con l'ID log imported_logs
(a meno che il progetto non abbia un criterio di routing dei log che modifica la destinazione di archiviazione).
Il valore originale del campo logName
viene conservato nel campo labels
con la chiave original_logName
.
Quando esegui query sui log importati, devi tenere conto della posizione del valore logName
originale. Per ulteriori informazioni su query ed esempi di Analisi dei log, consulta Esempi di query SQL.
Ottimizzazione delle prestazioni
Se il volume dei log che stai importando supera i limiti di capacità di Cloud Run, il job potrebbe scadere prima del completamento dell'importazione. Per evitare un'importazione dati incompleta, ti consigliamo di aumentare il valore tasks
nel
job di importazione. L'aumento delle risorse di CPU e memoria può anche contribuire a migliorare le prestazioni delle attività quando aumenti il numero di attività.
Deployment
Per eseguire il deployment di questa architettura, consulta Eseguire il deployment di un job per importare i log da Cloud Storage a Cloud Logging.
Passaggi successivi
- Esamina il codice di implementazione nel repository di GitHub.
- Scopri come analizzare i log importati con Analisi dei log e SQL.
- Scopri come esportare i log nel bucket Cloud Storage.
- Per altre architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Leonid Yankulin | Developer Relations Engineer
Altri collaboratori:
- Summit Tuladhar | Sr. Staff Software Engineer
- Wilton Wong | Architetto aziendale
- Xiang Shen | Cloud Solutions Architect