Monitoraggio delle applicazioni Web in Azure

Servizio app di Azure
Azure Log Analytics
Monitoraggio di Azure

Questo scenario è relativo ai servizi di monitoraggio che è possibile usare e descrive un modello di flusso di dati da usare con più origini dati. Quando si parla di monitoraggio, molti strumenti e servizi usano le distribuzioni di Azure. In questo scenario vengono scelti servizi immediatamente disponibili proprio perché sono facili da usare. Più avanti in questo articolo sono descritte altre opzioni di monitoraggio.

Architettura

Scaricare un file di Visio di questa architettura.

Flusso di dati

Questo scenario usa un ambiente gestito di Azure per ospitare un livello dati e applicazione. Il flusso dei dati nello scenario avviene come segue:

  1. Un utente interagisce con l'applicazione.
  2. Il browser e il servizio app generano dati di telemetria.
  3. Application Insights raccoglie e analizza i dati relativi a integrità, prestazioni e utilizzo dell'applicazione.
  4. Gli sviluppatori e gli amministratori possono esaminare le informazioni su integrità, prestazioni e utilizzo.
  5. Il database SQL di Azure genera i dati di telemetria.
  6. Monitoraggio di Azure raccoglie e analizza le quote e le metriche dell'infrastruttura.
  7. Log Analytics raccoglie e analizza i log e le metriche.
  8. Gli sviluppatori e gli amministratori possono esaminare le informazioni su integrità, prestazioni e utilizzo.

Componenti

  • Servizio app di Azure è un servizio PaaS per la compilazione e l'hosting di app in macchine virtuali gestite. Le infrastrutture di calcolo sottostanti in cui vengono eseguite le app sono gestite automaticamente. Il servizio app monitora le quote di utilizzo delle risorse e le metriche delle app, registra le informazioni di diagnostica e genera avvisi basati sulle metriche. Ancora meglio, è possibile usare Application Insights per creare test di disponibilità per testare l'applicazione da aree diverse.
  • Application Insights è un servizio estendibile di gestione delle prestazioni delle applicazioni per sviluppatori e supporta più piattaforme. Monitora l'applicazione, rileva le anomalie dell'applicazione, ad esempio un peggioramento delle prestazioni ed errori, e invia i dati di telemetria al portale di Azure. Application Insights è anche utilizzabile per la registrazione, l'analisi distribuita e le metriche dell'applicazione personalizzate.
  • Attualmente Monitoraggio di Azure offre log e metriche dell'infrastruttura di livello base per la maggior parte dei servizi in Azure. È possibile interagire con le metriche in diversi modi, tra cui la creazione di grafici nel portale di Azure, l'accesso tramite l'API REST o l'esecuzione di query tramite PowerShell o l'interfaccia della riga di comando. Monitoraggio di Azure offre anche i dati direttamente in Log Analytics e altri servizi, in cui è possibile eseguire query e combinarli con i dati di altre origini in locale o nel cloud.
  • Log Analytics aiuta a correlare i dati sull'utilizzo e sulle prestazioni raccolti da Application Insights ai dati di configurazione e sulle prestazioni delle risorse di Azure che supportano l'app. Questo scenario usa l'agente di Azure Log Analytics per eseguire il push dei log di controllo di SQL Server in Log Analytics. È possibile scrivere le query e visualizzare i dati nel pannello Log Analytics del portale di Azure.

Dettagli dello scenario

Le offerte PaaS (Platform as a Service) di Azure gestiscono automaticamente le risorse di calcolo e influiscono sulle modalità di monitoraggio delle distribuzioni. Azure include più servizi di monitoraggio, ognuno dei quali esegue un ruolo specifico. Insieme, questi servizi offrono una soluzione completa per la raccolta, l'analisi e l'uso dei dati di telemetria provenienti dalle applicazioni e dalle risorse di Azure utilizzate.

Questo scenario è relativo ai servizi di monitoraggio che è possibile usare e descrive un modello di flusso di dati da usare con più origini dati. Quando si parla di monitoraggio, molti strumenti e servizi usano le distribuzioni di Azure. In questo scenario vengono scelti servizi immediatamente disponibili proprio perché sono facili da usare. Più avanti in questo articolo sono descritte altre opzioni di monitoraggio.

Potenziali casi d'uso

Gli altri casi d'uso pertinenti includono:

  • Strumentazione di un'applicazione Web per il monitoraggio dei dati di telemetria.
  • Raccolta dei dati di telemetria front-end e back-end per un'applicazione distribuita in Azure.
  • Monitoraggio delle metriche e delle quote associate ai servizi in Azure.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure.

Eccellenza operativa

L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e la mantengono in esecuzione nell'ambiente di produzione. Per altre informazioni, vedere Panoramica del pilastro dell'eccellenza operativa.

Monitoraggio

È consigliabile aggiungere Application Insights al codice durante lo sviluppo usando Application Insights SDK ed eseguendo la personalizzazione per ogni applicazione. Questi SDK open source sono disponibili per la maggior parte dei framework applicazioni. Per arricchire e controllare i dati raccolti, incorporare l'uso degli SDK sia per le distribuzioni di test che per quelle di produzione nel processo di sviluppo. Il requisito principale è che l'app possa visualizzare direttamente o indirettamente l'endpoint di inserimento di Application Insights ospitato con un indirizzo per Internet. È quindi possibile aggiungere i dati di telemetria o arricchire una raccolta di dati di telemetria esistente.

Il monitoraggio in fase di esecuzione è un altro modo semplice per iniziare. I dati di telemetria raccolti devono essere controllati tramite i file di configurazione. È ad esempio possibile includere metodi di runtime che abilitano strumenti come Application Insights Status Monitor per distribuire gli SDK nella cartella corretta e aggiungere le configurazioni appropriate per iniziare il monitoraggio.

Come Application Insights, Log Analytics fornisce strumenti per l'analisi dei dati nelle origini, la creazione di query complesse e l'invio di avvisi proattivi in condizioni specificate. È anche possibile visualizzare i dati di telemetria nel portale di Azure. Log Analytics aggiunge valore ai servizi di monitoraggio esistenti, ad esempio Monitoraggio di Azure, e può inoltre monitorare gli ambienti locali.

Sia Application Insights che Log Analytics usano il linguaggio di query di Azure Log Analytics. È anche possibile usare le query in più risorse per analizzare i dati di telemetria raccolti da Application Insights e Log Analytics in un'unica query.

Monitoraggio di Azure, Application Insights e Log Analytics inviano avvisi. Ad esempio, Monitoraggio di Azure invia avvisi sulle metriche a livello di piattaforma, come l'utilizzo della CPU, mentre Application Insights invia avvisi sulle metriche a livello di applicazione, come il tempo di risposta del server. Monitoraggio Azure invia avvisi sui nuovi eventi nel log attività di Azure, mentre Log Analytics può generare avvisi sui dati delle metriche o degli eventi per i servizi configurati per usarli. Gli avvisi unificati in Monitoraggio di Azure sono una nuova esperienza di avvisi unificati in Azure che usa una tassonomia diversa.

Alternative

Questo articolo descrive le opzioni di monitoraggio facilmente disponibili con le funzionalità più diffuse, ma sono possibili molte altre scelte, tra cui l'opzione per creare i propri meccanismi di registrazione. È consigliabile aggiungere i servizi di monitoraggio mentre si creano i livelli in una soluzione. Ecco alcune possibili estensioni e alternative:

Per altre informazioni, vedere Monitoraggio per DevOps in Azure Well-Architected Framework.

Disponibilità e scalabilità

Questo scenario è in gran parte incentrato sulle soluzioni PaaS per il monitoraggio perché gestiscono facilmente e automaticamente la disponibilità e la scalabilità e sono supportate dai contratti di servizio. Servizi app, ad esempio, fornisce un contratto di servizio garantito per la disponibilità.

Application Insights prevede limiti per il numero di richieste al secondo che possono essere elaborate. Se si supera il limite di richieste, potrebbe verificarsi la limitazione dei messaggi. Per evitare tale limitazione, implementare filtri o il campionamento per ridurre la velocità dati.

Le considerazioni sulla disponibilità elevata per l'app eseguita, tuttavia, sono responsabilità dello sviluppatore. Per informazioni sulla scalabilità, ad esempio, vedere le considerazioni sulla scalabilità nell'architettura di riferimento dell'applicazione Web di base. Dopo la distribuzione di un'app, è possibile configurare i test per monitorarne la disponibilità usando Application Insights.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

I requisiti di conformità e le informazioni sensibili influiscono sulla raccolta, la conservazione e l'archiviazione dei dati. Sono disponibili altre informazioni su come Application Insights e Log Analytics gestiscono i dati di telemetria.

Possono valere anche le considerazioni sulla sicurezza seguenti:

  • Sviluppare un piano per gestire le informazioni personali se gli sviluppatori possono raccogliere i dati o arricchire i dati di telemetria esistenti.
  • Considerare la conservazione dei dati. Ad esempio, Application Insights conserva i dati di telemetria per 90 giorni. Archiviare i dati a cui si vuole accedere per periodi più lunghi usando Microsoft Power BI, l'esportazione continua o l'API REST. Si applicano le tariffe di archiviazione.
  • Limitare l'accesso alle risorse di Azure per controllare l'accesso ai dati e chi può visualizzare i dati di telemetria da un'applicazione specifica. Per consentire il blocco dell'accesso al monitoraggio dei dati di telemetria, vedere Risorse, ruoli e controllo di accesso in Application Insights.
  • Considerare la possibilità di controllare l'accesso in lettura/scrittura nel codice dell'applicazione per impedire agli utenti di aggiungere marcatori di versione o tag che limitano l'inserimento dati dall'applicazione. Con Application Insights, non è possibile controllare i singoli elementi di dati dopo che sono stati inviati a una risorsa, quindi, se un utente ha accesso ad alcuni dati, ha accesso a tutti i dati in una singola risorsa.
  • Aggiungere meccanismi di governance per applicare controlli per i criteri o i costi nelle risorse di Azure, se necessario. Ad esempio, usare Log Analytics per il monitoraggio relativo alla sicurezza, ad esempio con criteri e controllo degli accessi in base al ruolo, oppure usare Criteri di Azure per creare, assegnare e gestire le definizioni dei criteri.
  • Per monitorare potenziali problemi di sicurezza e ottenere una visione centrale dello stato di sicurezza delle risorse di Azure, è consigliabile usare Microsoft Defender per il cloud.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

I costi di monitoraggio possono essere aggiunti rapidamente. Prendere in considerazione i prezzi in anticipo, comprendere cosa si esegue il monitoraggio e controllare le tariffe associate per ogni servizio. Monitoraggio di Azure fornisce gratuitamente le metriche di base, mentre i costi di monitoraggio per Application Insights e Log Analytics dipendono dalla quantità di dati inseriti e dal numero di test eseguiti.

Per iniziare, usare il calcolatore dei prezzi per valutare i costi. Modificare le varie opzioni dei prezzi in modo che corrispondano alla distribuzione prevista.

I dati di telemetria da Application Insights vengono inviati al portale di Azure durante il debug e dopo la pubblicazione dell'app. A scopo di test e per evitare addebiti non necessari, viene instrumentato un volume limitato di dati di telemetria. Per aggiungere altri indicatori, è possibile aumentare il limite dei dati di telemetria. Per un controllo più granulare, vedere Campionamento in Application Insights.

Dopo la distribuzione, è possibile osservare un'istanza di Live Metrics Stream per gli indicatori delle prestazioni. Questi dati non vengono archiviati, ovvero si stanno visualizzando metriche in tempo reale, ma i dati di telemetria possono essere raccolti e analizzati in un secondo momento. Non sono previste spese per i dati di Live Stream.

La fatturazione di Log Analytics si basa su ogni gigabyte (GB) di dati inseriti nel servizio. I primi 5 GB di dati inseriti nel servizio Azure Log Analytics ogni mese sono gratuiti e i dati vengono conservati senza alcun addebito per i primi 31 giorni nell'area di lavoro Log Analytics.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Vedere queste risorse progettate per poter iniziare con la propria soluzione di monitoraggio: