Configurazione di monitoraggio, avvisi e logging

Last reviewed 2023-08-08 UTC

Questo documento nel framework dell'architettura Google Cloud mostra come configurare il monitoraggio, gli avvisi e il logging in modo da poter agire in base al comportamento del sistema. Ciò include l'identificazione di metriche significative da monitorare e la creazione di dashboard per semplificare la visualizzazione delle informazioni sui sistemi.

Il programma di ricerca DevOps Resource and Assessment (DORA) definisce il monitoraggio come:

"Processo di raccolta, analisi e utilizzo delle informazioni per monitorare applicazioni e infrastrutture al fine di guidare le decisioni aziendali. Il monitoraggio è una funzionalità fondamentale perché ti offre insight sui tuoi sistemi e sul tuo lavoro."

Il monitoraggio consente ai proprietari dei servizi di:

  • Prendere decisioni informate quando le modifiche al servizio influiscono sulle prestazioni
  • Applicare un approccio scientifico alla risposta agli eventi
  • Misura l'allineamento del servizio agli obiettivi commerciali

Con il monitoraggio, il logging e gli avvisi attivi, puoi:

  • Analizzare le tendenze a lungo termine
  • Confronta gli esperimenti nel tempo
  • Definisci avvisi sulle metriche critiche
  • Crea dashboard pertinenti in tempo reale
  • Eseguire un'analisi retrospettiva
  • Monitora sia le metriche basate sull'attività che le metriche di integrità del sistema
    • Le metriche basate su business ti aiutano a capire in che misura i tuoi sistemi supportano la tua attività. Ad esempio, utilizza le metriche per monitorare quanto segue:
      • Il costo di un'applicazione per servire un utente
      • La variazione del volume del traffico sul sito in seguito a una riprogettazione
      • Il tempo impiegato dal cliente per acquistare un prodotto sul tuo sito
    • Le metriche di integrità del sistema consentono di capire se i sistemi funzionano correttamente e con livelli di prestazioni accettabili.

Utilizza i seguenti quattro segnali aurei per monitorare il tuo sistema:

  • Latenza. Il tempo necessario per gestire una richiesta.
  • Traffico. A quanta domanda deve far fronte il tuo sistema.
  • Errori. Quantità delle richieste che non vanno a buon fine. L'errore può essere esplicito (ad esempio, HTTP 500), implicito (ad esempio, una risposta riuscita HTTP 200 abbinata ai contenuti sbagliati) o per criterio (ad esempio, se ti impegni a rispettare tempi di risposta di un secondo, qualsiasi richiesta superiore a un secondo è un errore).
  • Saturazione. Livello di completezza del tuo servizio. La saturazione è una misura della frazione del sistema, enfatizzando le risorse con più vincoli (ovvero, in un sistema con memoria limitata, mostra la memoria; in un sistema con vincoli di I/O, mostra I/O).

Crea un piano di monitoraggio

Crea un piano di monitoraggio in linea con la missione della tua organizzazione e la sua strategia operativa. Includi la pianificazione del monitoraggio e dell'osservabilità durante lo sviluppo delle applicazioni. Includere un piano di monitoraggio nelle prime fasi dello sviluppo delle applicazioni può portare un'organizzazione verso l'eccellenza operativa.

Includi i seguenti dettagli nel piano di monitoraggio:

  • Includi tutti i tuoi sistemi, comprese le risorse on-premise e le risorse cloud.
  • Includi il monitoraggio dei costi del cloud per assicurarti che la scalabilità degli eventi non causi il superamento delle soglie di budget.
  • Crea diverse strategie di monitoraggio per misurare le prestazioni dell'infrastruttura, l'esperienza utente e gli indicatori chiave di prestazione (KPI) aziendali. Ad esempio, le soglie statiche potrebbero essere efficaci per misurare le prestazioni dell'infrastruttura, ma non rispecchiare realmente l'esperienza dell'utente.

Aggiorna il piano man mano che le tue strategie di monitoraggio maturano. Ripeti il piano per migliorare l'integrità dei tuoi sistemi.

Definisci metriche che misurano tutti gli aspetti della tua organizzazione

Definisci le metriche necessarie per misurare il comportamento del deployment. Ecco come fare:

  • Definisci i tuoi scopi commerciali.
  • Identifica le metriche e i KPI che possono fornirti informazioni quantificabili per misurare le prestazioni. Assicurati che le definizioni delle metriche si trasformino in tutti gli aspetti della tua organizzazione, dalle esigenze aziendali, compresi i costi del cloud, ai componenti tecnici.
  • Utilizza queste metriche per creare indicatori del livello del servizio (SLI) per le tue applicazioni. Per maggiori informazioni, consulta Scegliere gli SLI appropriati.

Metriche comuni per vari componenti

Le metriche vengono generate a tutti i livelli di servizio, dall'infrastruttura al networking alla logica di business. Ad esempio:

  • Metriche dell'infrastruttura:
    • Statistiche delle macchine virtuali, tra cui istanze, CPU, memoria, utilizzo e conteggi
    • Statistiche basate su container, tra cui utilizzo del cluster, capacità del cluster, utilizzo a livello di pod
    • Statistiche di networking, tra cui traffico in entrata/in uscita, larghezza di banda tra componenti, latenza e velocità effettiva
    • Richieste al secondo, misurate dal bilanciatore del carico
    • Blocchi totali del disco letti, per disco
    • Pacchetti inviati su una determinata interfaccia di rete
    • Dimensioni dello heap di memoria per un determinato processo
    • Distribuzione delle latenze di risposta
    • Numero di query non valide rifiutate da un'istanza di database
  • Metriche dell'applicazione:
    • Comportamento specifico dell'applicazione, incluse query al secondo, scritture al secondo e messaggi inviati al secondo
  • Metriche delle statistiche sui servizi gestiti:
    • QPS, velocità effettiva, latenza, utilizzo per i servizi gestiti da Google (API o prodotti come BigQuery, App Engine e Bigtable)
  • Metriche delle statistiche relative alla connettività di rete:
    • Statistiche relative a VPN/interconnessione sulla connessione a sistemi on-premise o esterni a Google Cloud.
  • SLI
    • Metriche associate all'integrità complessiva del sistema.

Configura il monitoraggio

Configura il monitoraggio per monitorare sia le risorse on-premise che le risorse cloud.

Scegli una soluzione di monitoraggio che:

  • È indipendente dalla piattaforma
  • Offre funzionalità uniformi per il monitoraggio di ambienti on-premise, ibridi e multi-cloud,

L'utilizzo di un'unica piattaforma per consolidare i dati di monitoraggio provenienti da diverse origini consente di creare metriche e dashboard di visualizzazione uniformi.

Quando configuri il monitoraggio, automatizza le attività di monitoraggio, se possibile.

Monitoraggio con Google Cloud

Utilizzare un servizio di monitoraggio, come Cloud Monitoring, è più semplice che creare autonomamente un servizio di monitoraggio. Il monitoraggio di un'applicazione complessa è di per sé un lavoro ingegneristico importante. Nonostante l'infrastruttura esistente per la strumentazione, la raccolta, la visualizzazione e gli avvisi, è un lavoro a tempo pieno che deve essere creato e gestito da qualcuno.

Prendi in considerazione l'utilizzo di Cloud Monitoring per ottenere visibilità su prestazioni, disponibilità e integrità delle tue applicazioni e della tua infrastruttura sia per le risorse on-premise che per quelle cloud.

Cloud Monitoring è un servizio gestito che fa parte dell'osservabilità di Google Cloud. Puoi usare Cloud Monitoring per monitorare i servizi e le metriche personalizzate di Google Cloud. Cloud Monitoring fornisce un'API per l'integrazione con strumenti di monitoraggio di terze parti.

Cloud Monitoring aggrega metriche, log ed eventi dall'infrastruttura basata su cloud del sistema. Questi dati offrono a sviluppatori e operatori un ricco set di indicatori osservabili che possono velocizzare l'analisi delle cause principali e ridurre il tempo medio di risoluzione. Puoi utilizzare Cloud Monitoring per definire avvisi e metriche personalizzate che soddisfino i tuoi scopi commerciali e ti aiutino ad aggregare, visualizzare e monitorare l'integrità del sistema.

Cloud Monitoring offre dashboard predefinite per servizi per applicazioni cloud e open source. Utilizzando il modello delle metriche, puoi definire dashboard personalizzate con potenti strumenti di visualizzazione e configurare grafici in Metrics Explorer.

Configura avvisi

Un buon sistema di avviso migliora la tua capacità di rilasciare funzionalità. Consente di confrontare le prestazioni nel tempo per determinare la velocità delle release delle funzionalità o la necessità di eseguire il rollback di una release di funzionalità. Per informazioni sui rollback, vedi Ripristinare le release precedenti senza problemi.

Quando imposti gli avvisi, mappali direttamente alle metriche critiche. Queste metriche critiche includono:

  • I quattro segnali aurei:
    • Latenza
    • Traffico
    • Errori
    • Saturazione
  • Integrità del sistema
  • Utilizzo del servizio
  • Eventi di sicurezza
  • Esperienza utente

Rendi utilizzabili gli avvisi per ridurre al minimo i tempi di risoluzione. A questo scopo, per ogni avviso:

  • Includi una descrizione chiara, ad esempio indicando cosa viene monitorato e il suo impatto sull'attività.
  • Fornisci tutte le informazioni necessarie per intervenire immediatamente. Se per comprendere gli avvisi sono necessari pochi clic e una navigazione agevole, il personale di pronto intervento risulta difficile.
  • Definire i livelli di priorità per i vari avvisi.
  • Identifica in modo chiaro la persona o il team responsabile di rispondere all'avviso.

Per le applicazioni e i servizi critici, integra azioni di riparazione automatica negli avvisi attivati a causa di condizioni di errore comuni, come errore di integrità dei servizi, modifica della configurazione o picchi di velocità effettiva.

Mentre imposti gli avvisi, cerca di eliminare il lavoro manuale. Ad esempio, puoi eliminare il lavoro manuale eliminando errori frequenti o automatizzando le correzioni di questi errori, in modo da evitare che venga attivato un avviso. L'eliminazione del lavoro manuale consente a chi è disponibile di concentrarsi sull'affidabilità dei componenti operativi dell'applicazione. Per scoprire di più, consulta Creare una cultura dell'automazione.

Crea dashboard di monitoraggio e avvisi

Una volta attivato il monitoraggio, crea dashboard pertinenti e non complicate che includano informazioni dei tuoi sistemi di monitoraggio e avviso.

Scegliere un modo appropriato per visualizzare la dashboard può essere difficile da collegare ai tuoi obiettivi di affidabilità. Crea dashboard per visualizzare entrambe:

  • Analisi a breve termine e in tempo reale
  • Analisi a lungo termine

Per ulteriori informazioni sull'implementazione della gestione visiva, consulta l'articolo sulle funzionalità Gestione visiva.

Abilita il logging per le applicazioni critiche

I servizi di logging sono fondamentali per il monitoraggio dei sistemi. Mentre le metriche costituiscono la base degli elementi specifici da monitorare, i log contengono informazioni preziose necessarie per il debug, l'analisi relativa alla sicurezza e i requisiti di conformità.

La registrazione dei dati generati dai sistemi aiuta a garantire un'efficace strategia di sicurezza. Per ulteriori informazioni su logging e sicurezza, consulta Implementare il logging e i controlli di rilevamento nella categoria di sicurezza del framework dell'architettura.

Cloud Logging è un servizio di logging integrato che puoi utilizzare per archiviare, cercare, analizzare, monitorare e creare avvisi su dati di log ed eventi. Logging raccoglie automaticamente i log dai servizi di Google Cloud e di altri cloud provider. Puoi utilizzare questi log per creare metriche per il monitoraggio e per creare esportazioni di logging verso servizi esterni come Cloud Storage, BigQuery e Pub/Sub.

Configurare un audit trail

Per rispondere a domande come "chi ha fatto cosa, dove e quando" nei tuoi progetti Google Cloud, utilizza Cloud Audit Logs.

Cloud Audit Logs acquisisce diversi tipi di attività, tra cui:

  • I log delle attività di amministrazione contengono voci di log per le chiamate API o altre azioni amministrative che modificano la configurazione o i metadati delle risorse. I log delle attività di amministrazione sono sempre abilitati.
  • Gli audit log di accesso ai dati registrano le chiamate API che creano, modificano o leggono i dati forniti dall'utente. Gli audit log di accesso ai dati sono disabilitati per impostazione predefinita in quanto possono essere molto grandi. Puoi configurare quali servizi Google Cloud producono log di accesso ai dati.

Per un elenco dei servizi Google Cloud che scrivono audit log, consulta Servizi Google con audit log. Utilizza i controlli di Identity and Access Management (IAM) per limitare gli utenti che possono visualizzare gli audit log.

Passaggi successivi