Panoramica di Cloud Logging

Questo documento fornisce una panoramica di Cloud Logging, un sistema di gestione dei log in tempo reale con supporto per archiviazione, ricerca, analisi e monitoraggio. Cloud Logging raccoglie automaticamente i log dalle risorse Google Cloud. Puoi anche raccogliere log dalle tue applicazioni, da risorse on-premise e da risorse di altri cloud provider. Puoi anche configurare criteri di avviso in modo che Cloud Monitoring ti avvisi se determinati tipi di eventi vengono segnalati nei log. Per motivi normativi o di sicurezza, puoi determinare dove sono archiviati i dati di log.

Raccogliere i log dalle tue applicazioni e dal software di terze parti

Puoi raccogliere i log dalle applicazioni che scrivi mediante strumenti della tua applicazione mediante una libreria client. Tuttavia, non è sempre necessario instrumentare l'applicazione. Ad esempio, per alcune configurazioni puoi utilizzare Ops Agent per inviare i log scritti in stdout o stderr al tuo progetto Google Cloud.

Puoi anche raccogliere i dati di log dalle tue applicazioni di terze parti, come nginx, installando Ops Agent e configurandolo per la scrittura dei log dall'applicazione al progetto Google Cloud.

Per informazioni che possono aiutarti a decidere quale approccio è più adatto ai tuoi requisiti, consulta Quale soluzione dovresti utilizzare: agente Logging o libreria client?.

Risolvi i problemi e analizza i log

Puoi visualizzare e analizzare i dati di log utilizzando la console Google Cloud, con le pagine Esplora log o Analisi dei log. Puoi eseguire query e visualizzare i log con entrambe le interfacce, ma utilizzano linguaggi di query diversi e hanno funzionalità diverse.

Se vuoi risolvere i problemi e analizzare le prestazioni dei tuoi servizi e delle tue applicazioni, ti consigliamo di utilizzare Esplora log. Questa interfaccia è progettata per visualizzare singole voci di log e trovare voci di log correlate. Ad esempio, quando una voce di log fa parte di un gruppo di errori, questa voce viene annotata con un menu di opzioni a cui puoi accedere per visualizzare ulteriori informazioni sull'errore.

Se ti interessa eseguire operazioni aggregate sui tuoi log, ad esempio per calcolare la latenza media per le richieste HTTP inviate a un URL specifico nel tempo, utilizza l'interfaccia di Analisi dei log. Con questa interfaccia, utilizzi SQL per eseguire query sui dati di log e, di conseguenza, puoi utilizzare le funzionalità dell'SQL per comprendere i dati di log.

Se preferisci eseguire query sui dati di log in modo programmatico, puoi utilizzare l'API Cloud Logging o Google Cloud CLI per esportare i dati di log dal tuo progetto Google Cloud.

Per maggiori informazioni, consulta Panoramica dei log delle query e delle visualizzazioni.

Monitoraggio dei log

Puoi configurare Cloud Logging in modo che ti avvisi quando si verificano determinati tipi di eventi nei tuoi log. Queste notifiche possono essere inviate quando un determinato pattern appare in una voce di log o quando viene rilevata una tendenza nei dati di log. Se vuoi visualizzare le percentuali di errore dei servizi Google Cloud, puoi visualizzare la dashboard di Cloud Logging, preconfigurata.

Ad esempio, se vuoi ricevere una notifica quando si verifica un determinato messaggio, come un evento critico relativo alla sicurezza, puoi creare un criterio di avviso basato su log. Un criterio di avviso basato su log monitora i log per individuare un pattern specifico. Se viene trovato questo pattern, Monitoring invia una notifica e crea un incidente. I criteri di avviso basati su log sono utili per eventi importanti ma rari, come i seguenti:

  • Vuoi ricevere una notifica quando viene visualizzato un evento in un audit log, ad esempio quando un utente accede al token di sicurezza di un account di servizio.
  • L'applicazione scrive i messaggi di deployment nei log e vuoi ricevere una notifica quando viene registrata una modifica del deployment.

In alternativa, potresti voler monitorare le tendenze o il verificarsi di eventi nel tempo. In questi casi, puoi creare una metrica basata su log. Una metrica basata su log può contare il numero di voci di log corrispondenti ad alcuni criteri oppure può estrarre e organizzare in istogrammi informazioni come i tempi di risposta. Puoi anche configurare criteri di avviso che ti inviano una notifica quando si verificano variazioni delle prestazioni, ad esempio quando il tempo di risposta aumenta a un livello inaccettabile. Le metriche basate su log sono adatte per eseguire una qualsiasi delle seguenti operazioni:

  • Conta le occorrenze di un messaggio, come un avviso o un errore, nei tuoi log e ricevi una notifica quando il numero di occorrenze supera una soglia.
  • Osserva le tendenze nei tuoi dati, come i valori di latenza nei log, e ricevi una notifica se i valori cambiano in modo inaccettabile.
  • Crea grafici per visualizzare i dati numerici estratti dai log.

Per ulteriori informazioni, consulta Monitorare i log.

Archiviazione dei log

Non è necessario configurare la località in cui vengono archiviati i log. Per impostazione predefinita, il progetto Google Cloud archivia automaticamente tutti i log che riceve in un bucket di log di Cloud Logging. Ad esempio, se il tuo progetto Google Cloud contiene un'istanza Compute Engine, tutti i log generati da Compute Engine vengono archiviati automaticamente. Tuttavia, se necessario, puoi configurare diversi aspetti dell'archiviazione dei log, ad esempio quali log vengono archiviati, quali vengono eliminati e dove vengono archiviati.

Puoi instradare o inoltrare le voci di log alle seguenti destinazioni, che possono trovarsi nello stesso progetto Google Cloud o in un altro progetto Google Cloud:

  • Bucket Cloud Logging: fornisce spazio di archiviazione in Cloud Logging. Un bucket di log può archiviare le voci di log ricevute da più progetti Google Cloud. Per combinare i dati di Cloud Logging con altri, puoi eseguire l'upgrade di un bucket di log per l'utilizzo dell'analisi dei log e poi creare un set di dati BigQuery collegato. Per informazioni sulla visualizzazione delle voci di log archiviate nei bucket di log, consulta Panoramica dei log di query e visualizzazioni e Visualizzare i log con routing ai bucket Cloud Logging.
  • Set di dati BigQuery: fornisce l'archiviazione delle voci di log nei set di dati BigQuery. Puoi usare le funzionalità di analisi dei big data nelle voci di log archiviate. Per combinare i dati di Cloud Logging con altre origini dati, ti consigliamo di eseguire l'upgrade dei bucket di log per utilizzare l'analisi dei log e poi di creare un set di dati BigQuery collegato. Per informazioni sulla visualizzazione delle voci di log indirizzate a BigQuery, consulta Visualizzare i log indirizzati a BigQuery.
  • Bucket Cloud Storage: fornisce l'archiviazione delle voci di log in Cloud Storage. Le voci di log vengono archiviate come file JSON. Per informazioni sulla visualizzazione delle voci di log indirizzate a Cloud Storage, vedi Visualizzare i log con routing a Cloud Storage.
  • Argomento Pub/Sub: fornisce supporto per le integrazioni di terze parti. Le voci di log vengono formattate in JSON e quindi instradate a un argomento Pub/Sub. Per informazioni sulla visualizzazione delle voci di log indirizzate a Pub/Sub, consulta Visualizzare i log con routing a Pub/Sub.
  • Splunk: fornisce assistenza per Splunk. Devi instradare le voci di log a un argomento Pub/Sub e quindi sottoscrivere l'argomento utilizzando Splunk.
  • Progetto Google Cloud: esegui il routing delle voci di log a un altro progetto Google Cloud. Quando esegui il routing delle voci di log a un progetto Google Cloud diverso, il router dei log del progetto di destinazione riceve le voci di log e le elabora. I sink nel progetto di destinazione determinano il modo in cui vengono instradate le voci di log ricevute. Error Reporting può analizzare le voci di log quando il progetto di destinazione le instrada a un bucket di log di proprietà del progetto di destinazione.
  • Altre risorse: instrada le voci di log a una destinazione supportata che si trova in un progetto diverso. Per informazioni sui percorsi da utilizzare, vedi Formati del percorso di destinazione.

Per ulteriori informazioni, incluso il supporto della regione dei dati, consulta Panoramica del routing e dell'archiviazione.

Categorie di log

Le categorie di log hanno lo scopo di descrivere le informazioni di logging a tua disposizione; non si escludono a vicenda:

  • I log della piattaforma sono log scritti dai tuoi servizi Google Cloud. Questi log possono aiutarti a eseguire il debug e la risoluzione dei problemi, nonché a comprendere meglio i servizi Google Cloud che stai utilizzando. Ad esempio, Log di flusso VPC registra un campione di flussi di rete inviati e ricevuti dalle istanze VM.

  • I log dei componenti sono simili ai log della piattaforma, ma vengono generati dai componenti software forniti da Google e in esecuzione sui tuoi sistemi. Ad esempio, GKE fornisce componenti software che gli utenti possono eseguire sulla propria VM o nel proprio data center. I log vengono generati dalle istanze GKE dell'utente e inviati al progetto Google Cloud dell'utente. GKE usa i log o i relativi metadati per fornire assistenza agli utenti.

  • I log di sicurezza ti aiutano a rispondere alle domande "chi ha fatto cosa, dove e quando":

    • Gli audit log di Cloud forniscono informazioni sulle attività e sugli accessi amministrativi all'interno delle tue risorse Google Cloud. L'abilitazione degli audit log consente alle entità di sicurezza, controllo e conformità di monitorare i dati e i sistemi Google Cloud per individuare possibili vulnerabilità o uso improprio dei dati esterni. Per un elenco dei servizi supportati da Google Cloud, vedi Servizi Google con audit log.

    • Access Transparency fornisce i log delle azioni intraprese dal personale Google durante l'accesso ai tuoi contenuti Google Cloud. I log di Access Transparency possono aiutarti a monitorare la conformità ai requisiti legali e normativi per la tua organizzazione. Per un elenco dei servizi supportati da Google Cloud, vedi Servizi Google con log di Access Transparency.

  • I log scritti dall'utente sono log scritti da applicazioni e servizi personalizzati. In genere, questi log vengono scritti in Cloud Logging utilizzando uno dei seguenti metodi:

  • I log multi-cloud e i log del cloud ibrido si riferiscono ai log di altri cloud provider come Microsoft Azure e ai log dell'infrastruttura on-premise.

Modello dei dati per i log

Il modello dei dati utilizzato da Cloud Logging per organizzare i dati di log determina le dimensioni su cui è possibile eseguire query su quei dati. Ad esempio, poiché un log è una raccolta denominata di singole voci, puoi eseguire query sui dati usando il nome del log. Allo stesso modo, poiché ogni log è composto da voci di log formattate come oggetti LogEntry, puoi scrivere query che recuperano solo le voci di log in cui il valore di un campo LogEntry corrisponde ad alcuni criteri. Ad esempio, puoi visualizzare solo le voci di log il cui campo severity ha il valore ERROR.

Ogni voce di log registra lo stato o descrive un evento specifico, come la creazione di un'istanza VM, ed è composta almeno da quanto segue:

  • Un timestamp che indica quando si è verificato l'evento o quando è stato ricevuto da Cloud Logging.
  • Informazioni sull'origine della voce di log. Questa origine è denominata risorsa monitorata. Esempi di risorse monitorate sono: singole istanze VM di Compute Engine e container di Google Kubernetes Engine. Per un elenco completo dei tipi di risorsa monitorata, vedi Risorse e servizi monitorati.
  • Un payload, chiamato anche messaggio, fornito come dati testuali non strutturati o come dati testuali strutturati in formato JSON.
  • Il nome del log a cui appartiene. Il nome di un log include il percorso completo della risorsa a cui appartengono le voci di log, seguito da un identificatore. Di seguito sono riportati alcuni esempi di nomi di log:

    • projects/my-project/logs/stderr
    • projects/my-project/logs/stdout
    • projects/my-project/compute.googleapis.com/activity

Controllo dell'accesso

I ruoli Identity and Access Management controllano la possibilità di un'entità di accedere ai log. Puoi concedere ruoli predefiniti alle entità oppure puoi creare ruoli personalizzati. Per ulteriori informazioni sulle autorizzazioni richieste, vedi Controllo dell'accesso.

Conservazione

Le voci di log vengono archiviate nei bucket di log per un determinato periodo di tempo e poi vengono eliminate. Per ulteriori informazioni, consulta Panoramica del routing e dell'archiviazione: conservazione.

Controllo di prezzi e costi

Per informazioni sui prezzi, vedi Prezzi di Cloud Logging.

Per le strategie per ridurre i costi di Logging, consulta Controlli dei costi di Logging.