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 dati dei log dalle risorse Google Cloud. Le tue applicazioni, le risorse on-premise e le risorse di altri provider cloud possono inviare i dati di log a Cloud Logging. Puoi anche configurare criteri di avviso in modo che Cloud Monitoring ti invii una notifica quando vengono registrati determinati tipi di eventi nei dati dei log. Per motivi di sicurezza o normativi, puoi determinare dove vengono archiviati i dati dei log.

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

Puoi raccogliere i log dalle applicazioni che scrivi mediante l'utilizzo di 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 dei log dalle tue applicazioni di terze parti, come nginx, installando l'Ops Agent e configurandolo per scrivere i log dall'applicazione al tuo progetto Google Cloud.

Consulta Quale strumento utilizzare: agente Logging o libreria client? per informazioni che possono aiutarti a decidere quale approccio è più adatto alle tue esigenze.

Risolvere i problemi e analizzare i log

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

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

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

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

Per ulteriori informazioni, consulta la panoramica delle query e della visualizzazione dei log.

Monitoraggio dei log

Puoi configurare Cloud Logging in modo da ricevere una notifica quando si verificano determinati tipi di eventi nei log. Queste notifiche potrebbero essere inviate quando un determinato schema viene visualizzato in una voce di log o quando viene rilevata una tendenza nei dati di log. Se ti interessa visualizzare i tassi di errore dei tuoi servizi Google Cloud, puoi visualizzare la dashboard di Cloud Logging, che è 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 alla ricerca di un pattern specifico. Se viene rilevato questo modello, il monitoraggio 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 log di controllo, ad esempio quando un utente accede al token di sicurezza di un account di servizio.
  • L'applicazione scrive messaggi di deployment nei log e vuoi ricevere una notifica quando viene registrata una modifica di deployment.

In alternativa, potresti voler monitorare le tendenze o la frequenza di eventi nel tempo. Per queste situazioni, puoi creare una metrica basata su log. Una metrica basata su log può conteggiare il numero di voci di log che corrispondono a un determinato criterio oppure può estrarre e organizzare informazioni come i tempi di risposta in istogrammi. Puoi anche configurare criteri di avviso che ti inviano una notifica quando si verificano variazioni del rendimento, ad esempio quando il tempo di risposta aumenta a un livello inaccettabile. Le metriche basate su log sono adatte quando vuoi eseguire una delle seguenti operazioni:

  • Conta le occorrenze di un messaggio, ad esempio un avviso o un errore, nei log e ricevi una notifica quando il numero di occorrenze supera una soglia.
  • Osserva le tendenze nei dati, ad esempio 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 posizione in cui vengono archiviati i log. Per impostazione predefinita, il tuo progetto Google Cloud archivia automaticamente tutti i log che riceve in un bucket di log 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 una serie di aspetti relativi allo spazio di 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ò memorizzare le voci di log ricevute da più progetti Google Cloud. Il bucket dei log può trovarsi nello stesso progetto in cui hanno origine le voci di log o in un progetto diverso. Per informazioni su come visualizzare le voci di log archiviate nei bucket di log, consulta Panoramica delle query e della visualizzazione dei log e Visualizzare i log inviati ai bucket di Cloud Logging.

    Puoi combinare i dati di Cloud Logging con altri dati eseguendo l'upgrade di un bucket di log per l'utilizzo di Log Analytics e poi creando un set di dati collegato, ovvero un set di dati di sola lettura su cui è possibile eseguire query dalle pagine BigQuery Studio e Looker Studio.

  • Set di dati BigQuery: fornisce lo spazio di archiviazione delle voci di log in un set di dati BigQuery scrivibile. Il set di dati BigQuery può trovarsi nello stesso progetto in cui hanno origine le voci di log o in un progetto diverso. Puoi utilizzare le funzionalità di analisi dei big data sulle voci di log archiviate. Per informazioni su come visualizzare le voci di log inviate a BigQuery, consulta Visualizzare i log inviati a BigQuery.

  • Bucket Cloud Storage: fornisce lo spazio di archiviazione delle voci di log in Cloud Storage. Il bucket Cloud Storage può trovarsi nello stesso progetto in cui hanno avuto origine le voci di log o in un progetto diverso. Le voci di log vengono archiviate come file JSON. Per informazioni su come visualizzare le voci di log inoltrate a Cloud Storage, consulta Visualizzare i log inoltrati a Cloud Storage.
  • Argomento Pub/Sub: fornisce il supporto per le integrazioni di terze parti. Le voci di log vengono formattate in JSON e poi inoltrate a un argomento Pub/Sub. L'argomento può trovarsi nello stesso progetto in cui hanno origine le voci di log o in un progetto diverso. Per informazioni su come visualizzare le voci di log con routing a Pub/Sub, consulta Visualizzare i log con routing a Pub/Sub.

  • Progetto Google Cloud: inoltra le voci di log a un altro progetto Google Cloud. In questa configurazione, i sink nel progetto di destinazione elaborano le voci di log.

Per ulteriori informazioni, incluso il supporto della regionalità dei dati, consulta la panoramica su routing e archiviazione.

Categorie di log

Le categorie di log hanno lo scopo di descrivere le informazioni di log a tua disposizione. Le categorie non sono mutuamente esclusive:

  • I log della piattaforma sono log scritti dai servizi Google Cloud. Questi log possono aiutarti a eseguire il debug e a risolvere i problemi, nonché a comprendere meglio i servizi Google Cloud che utilizzi.

  • I log dei componenti sono simili ai log della piattaforma, ma vengono generati dai componenti software forniti da Google che vengono eseguiti 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 suo progetto Google Cloud. GKE utilizza i log o i relativi metadati per fornire assistenza agli utenti.

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

    • Gli audit log Cloud forniscono informazioni su attività e accessi amministrativi all'interno delle tue risorse Google Cloud. L'attivazione degli audit log consente alle persone addette alla sicurezza, all'audit e alla conformità di monitorare i dati e i sistemi di Google Cloud per rilevare eventuali vulnerabilità o usi impropri dei dati esterni. Per un elenco dei servizi Google Cloud supportati, consulta Servizi Google con audit log.
    • Access Transparency fornisce i log delle azioni intraprese dal personale di Google quando accede ai tuoi contenuti di Google Cloud. I log di Access Transparency possono aiutarti a monitorare la conformità ai requisiti legali e normativi della tua organizzazione. Per un elenco dei servizi Google Cloud supportati, consulta 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:

Modello di dati per i log

Il modello dei dati utilizzato da Cloud Logging per organizzare i dati dei log determina le dimensioni su cui puoi eseguire query sui dati. Ad esempio, poiché un log è una raccolta denominata di singole voci, puoi eseguire query sui dati in base al nome del log. Analogamente, 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 a determinati criteri. Ad esempio, puoi visualizzare solo quelle voci di log il cui campo severity ha il valore ERROR.

Ogni voce di log registra lo stato o descrive un evento specifico, ad esempio la creazione di un'istanza VM, e consiste almeno in quanto segue:

  • Un timestamp che indica quando si è verificato l'evento o quando è stato ricevuto da Cloud Logging.
  • Informazioni sulla sorgente della voce del log. Questa origine è chiamata risorsa monitorata. Alcuni esempi di risorse monitorate sono singole istanze VM Compute Engine e container Google Kubernetes Engine. Per un elenco completo dei tipi di risorsa monitorata, consulta Risorse e servizi monitorati.
  • Un payload, noto anche come messaggio, fornito come dati di testo non strutturati o come dati di testo 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 degli accessi

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

Conservazione

Le voci di log vengono archiviate nei bucket di log per un periodo di tempo specificato, dopodiché vengono eliminate. Per ulteriori informazioni, consulta la panoramica su routing e archiviazione: conservazione.

Prezzi

Cloud Logging non addebita alcun costo per il routing dei log a una destinazione supportata. Tuttavia, la destinazione potrebbe applicare dei costi. Ad eccezione del bucket di log _Required, Cloud Logging addebita lo streaming dei log nei bucket di log e per l'archiviazione per un periodo superiore al periodo di conservazione predefinito del bucket di log.

Cloud Logging non addebita alcun costo per la copia dei log, per la definizione degli ambiti dei log o per le query inviate tramite le pagine Esplora log o Analisi dei log.

Per ulteriori informazioni, consulta i seguenti documenti: