Questa architettura di riferimento descrive come importare in Cloud Logging i log precedentemente esportati in Cloud Storage.
Questa architettura di riferimento è destinata a ingegneri e sviluppatori, tra cui DevOps, gli SRE (Site Reliability Engineer) e gli investigatori della sicurezza, che vogliono configurare ed eseguire il job di importazione dei log. In questo documento si presuppone che tu hanno familiarità con l'esecuzione di job Cloud Run e come utilizzarli Cloud Storage e Cloud Logging.
Architettura
Il seguente diagramma mostra come i servizi Google Cloud vengono utilizzati in questo 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 al valore organizzazione dei log esportati nel bucket Cloud Storage.
- Converte gli oggetti in
LogEntry
strutture dell'API Cloud Logging. Più struttureLogEntry
vengono aggregate in batch, per ridurre il consumo delle quote dell'API Cloud Logging. L'architettura gestisce errori di quota se necessario. - Scrive le voci di log convertite in Cloud Logging. Se esegui lo stesso job più volte, possono verificarsi voci duplicate. Per maggiori 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
Panoramica su routing e archiviazione.
- Il logging si applicano quote e limiti, tra cui le quote e i limiti dell'API Cloud Logging e un periodo di periodo di conservazione. Questa architettura di riferimento è progettata per funzionare con le quote di scrittura predefinite, con un meccanismo di ripetizione di base. Se la quota di scrittura è inferiore a quella predefinita, l'implementazione potrebbe non riuscire.
- I log importati non sono inclusi in metriche basate su log, perché i relativi timestamp sono nel passato. Tuttavia, se scegli di utilizza un'etichetta, il timestamp registra l'ora di importazione e i log sono inclusi nel i 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
Potresti scegliere di implementare questa architettura se la tua organizzazione richiede un'analisi aggiuntiva dei log per le 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 precedente nell'ambito di un controllo dell'accesso al database.
Alternative di design
Questa sezione descrive le alternative al design predefinito mostrato in questo riferimento sull'architettura.
Periodo di conservazione e log importati
Cloud Logging richiede che le voci di log in entrata abbiano timestamp che non nell'arco di 30 giorni periodo di conservazione. Le voci di log importate con timestamp risalenti a più di 30 giorni prima dell'importazione non archiviati.
Questa architettura convalida l'intervallo di date impostato nel job Cloud Run per evitare di importare log precedenti a 29 giorni, lasciando un margine di sicurezza di un giorno.
Per importare log risalenti a più di 29 giorni fa, devi eseguire a seguito di modifiche al codice di implementazione, e poi creare una nuova immagine container da utilizzare nel job Cloud Run configurazione.
- 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 corrente
Quando utilizzi questa modifica, devi utilizzare i parametri
Campo labels
anziché
Campo timestamp
nelle query di Analisi dei log. Per ulteriori informazioni su query e esempi di Log Analytics, consulta Query SQL di esempio.
Note sul layout
Le seguenti linee guida possono aiutarti a sviluppare un'architettura che soddisfi le in base ai requisiti della tua organizzazione.
Ottimizzazione dei costi
Il costo di importazione dei log utilizzando questa architettura di riferimento è associato a più fattori determinanti.
Utilizzi i seguenti componenti fatturabili di Google Cloud:
- Cloud Logging (periodo di conservazione dei log si applicano costi aggiuntivi)
- Cloud Run
- API Cloud Storage
Prendi in considerazione i seguenti fattori che potrebbero aumentare i costi:
- Duplicazione dei log: per evitare costi di archiviazione dei log aggiuntivi, non eseguire il job di importazione con la stessa configurazione più volte.
- Archiviazione in destinazioni aggiuntive: per evitare costi aggiuntivi per l'archiviazione dei log, disattiva i criteri di routing nel progetto di destinazione per impedire l'archiviazione dei log in posizioni aggiuntive o l'inoltro dei log ad altre destinazioni come Pub/Sub o BigQuery.
- CPU e memoria aggiuntive: se il job di importazione scade, potresti dover aumentare la CPU e la memoria del job di importazione nella configurazione del job di importazione. L'aumento di questi valori potrebbe comportare un aumento dei costi di Cloud Run.
- Attività aggiuntive: indica il numero previsto di log da importare ogni giorni all'interno dell'intervallo di tempo è elevato, potrebbe essere necessario aumentare il numero le attività nel importazione della configurazione del job. Il job suddivide l'intervallo di tempo in modo uniforme tra le attività, pertanto ogni attività elabora contemporaneamente un numero simile di giorni dell'intervallo. L'aumento del numero di attività potrebbe far aumentare i costi di Cloud Run.
- Classe di archiviazione: se la classe di archiviazione del bucket Cloud Storage è diversa da Standard, ad esempio Nearline, Durable Reduced Availability (DRA) o Coldline, potresti incorrere in costi aggiuntivi.
- Traffico di dati tra località diverse: configura il job di importazione in modo che venga eseguito nella stessa posizione 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 viene eseguito il deployment della soluzione.
Nomi e query dei log
I log vengono archiviati nel progetto definito
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 instradamento dei log che modifica la destinazione di archiviazione).
Il valore originale del campo logName
viene mantenuto nel campo
Campo labels
con la chiave original_logName
.
Quando esegui una query, devi tenere conto della posizione del valore originale di logName
i log importati. Per ulteriori informazioni su query e esempi di Log Analytics, consulta Query SQL di esempio.
Ottimizzazione delle prestazioni
Se il volume dei log che importi supera la capacità di Cloud Run
limiti, il job potrebbe scadere prima del completamento dell'importazione. Per evitare un'importazione di dati incompleta, valuta la possibilità di aumentare il valore tasks
nel job di importazione. Anche l'aumento delle risorse CPU e memoria può 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 GitHub.
- Scopri come analizzare i log importati utilizzando Log Analytics e SQL.
- Per altre architetture di riferimento, diagrammi e best practice, esplora il Centro architetture cloud.
Collaboratori
Autore: Leonid Yankulin | Developer Relations Engineer
Altri collaboratori:
- Summit Tuladhar | Ingegnere informatico del personale senior
- Wilton Wong | Enterprise Architect
- Xiang Shen | Solutions Architect