Monitoraggio di disponibilità e prestazioni in ambienti ibridi

Hub eventi di Azure
Azure Log Analytics
Monitoraggio di Azure
Archiviazione di Azure
Macchine virtuali di Azure

Questa architettura di riferimento illustra come usare Monitoraggio di Azure per monitorare le prestazioni e la disponibilità dei carichi di lavoro del sistema operativo eseguiti in macchine virtuali .This reference architecture shows how to use Azure Monitor to monitor the performance and availability of operating system (OS) workloads that run in virtual machines (VM). Le macchine virtuali possono trovarsi in Microsoft Azure, in ambienti locali o in cloud non Azure.

Architettura

Diagramma che illustra le funzioni di monitoraggio e disponibilità di Monitoraggio di Azure per i carichi di lavoro del sistema operativo in Azure, in ambienti locali e con provider di servizi cloud di terze parti. I dati vengono inviati in un'area di lavoro Log Analytics. I dati vengono usati dai servizi application insights, analisi, visualizzazione, avvisi e scalabilità automatica come parte di Monitoraggio di Azure

Scaricare un file di Visio di questa architettura.

Workflow

  • Ufficio principale locale - VM 1. Questo componente è un'applicazione Web con accesso a Internet e una pagina Web pubblica e gli agenti di Log Analytics e Dependency installati. Per informazioni sugli agenti, vedere Panoramica dell'agente di Log Analytics e Panoramica degli agenti di Monitoraggio di Azure, Dependency Agent.
  • Ufficio principale locale - VM 2. Questo ambiente per la logica di business non ha accesso a Internet. Tuttavia, sono installati gli agenti di Log Analytics e Dependency.
  • Ufficio principale locale - VM 3. Questo componente è un archivio dati senza accesso a Internet, ma con gli agenti di Log Analytics e Dependency installati.
  • Sede principale locale - Gateway di Log Analytics. Il gateway di Log Analytics raccoglie i dati di log e metrica dalle tre macchine virtuali locali e li distribuisce nell'area di lavoro Log Analytics tramite Transmission Control Protocol (TCP) sulla porta 443.
  • Ufficio principale locale - Firewall. Il traffico da e verso l'ambiente locale viene instradato attraverso il firewall.
  • Gateway. Il gateway fornisce la connettività alla succursale.
  • Succursale locale - VM 4. Questo componente è l'applicazione aziendale in esecuzione senza accesso a Internet, ma con Gli agenti di Log Analytics e Dependency installati. L'agente di Log Analytics installato nella macchina virtuale è configurato per trasferire i dati direttamente nell'area di lavoro Log Analytics senza la necessità di un gateway di Log Analytics.
  • Succursale locale - Gateway. Questo gateway connette la succursale all'ufficio principale locale tramite una rete privata virtuale (VPN).
  • Provider di servizi cloud di terze parti - VM 5. Questo componente è un'applicazione Web con accesso a Internet, una pagina Web pubblica e gli agenti di Log Analytics e Dependency installati.
  • Provider di servizi cloud di terze parti - VM 6. Questo componente è un ambiente di archivio dati senza accesso a Internet, ma con gli agenti di Log Analytics e Dependency installati. Non esiste connettività diretta dagli ambienti del provider di servizi cloud di terze parti agli ambienti locali.
  • Azure - SET di scalabilità di macchine virtuali. Si tratta di un set di scalabilità creato con Azure set di scalabilità di macchine virtuali. Esegue un'applicazione aziendale con gli agenti di log analytics e di diagnostica installati.
  • Azure - Server applicazioni. Questo server dispone di una singola macchina virtuale che esegue un'applicazione aziendale, con Log Analytics e agenti di diagnostica installati.
  • Metriche di Monitoraggio di Azure. I dati raccolti dalle metriche di Monitoraggio di Azure vengono archiviati in un database time series ottimizzato per l'analisi dei dati con timestamp. Archivia anche le metriche inviate da macchine virtuali locali e macchine virtuali di Azure.
  • Monitoraggio di Azure - Area di lavoro Log Analytics. Questa area di lavoro archivia i log inviati da macchine virtuali locali, macchine virtuali di Azure e macchine virtuali in provider di servizi cloud di terze parti. L'area di lavoro è una risorsa di Azure in cui vengono aggregati i dati e funge da limite amministrativo per l'accesso a questi dati. Altri servizi di Monitoraggio di Azure si connettono quindi all'area di lavoro Log Analytics e usano i dati per vari scopi. Per altre informazioni, vedere Progettazione della distribuzione dei log di Monitoraggio di Azure.
  • Monitoraggio di Azure - Insights - Application Insights. Application Insights offre analisi delle applicazioni e delle informazioni dettagliate sull'uso. In questa architettura di esempio, un test ping di disponibilità verifica la disponibilità dell'applicazione Web locale. Le regole di avviso sono abilitate per fornire una notifica di un test non riuscito. Per altre informazioni, vedere Informazioni su Application Insights e Monitorare la disponibilità di qualsiasi sito Web.
  • Monitoraggio di Azure - Informazioni dettagliate - Monitoraggio di Azure per le macchine virtuali. Monitoraggio di Azure per le macchine virtuali monitora le prestazioni e l'integrità delle macchine virtuali e dei set di scalabilità di macchine virtuali. Il monitoraggio include i processi in esecuzione e le dipendenze da altre risorse. In questo scenario, il Monitoraggio di Azure per le macchine virtuali fornirà informazioni dettagliate sulle macchine virtuali. Per altre informazioni, vedere Che cos'è Monitoraggio di Azure per le macchine virtuali?.
  • Monitoraggio di Azure - Analisi. I dati dei log e delle metriche delle macchine virtuali vengono sottoposti a query all'interno delle metriche di Monitoraggio di Azure e dell'area di lavoro Log Analytics usando il Linguaggio di query Kusto (KQL). I risultati forniscono informazioni dettagliate sull'infrastruttura, la topologia e le risorse. Per altre informazioni, vedere Esempi di query di log di Kusto: Panoramica e Monitoraggio di Azure.
  • Monitoraggio di Azure - Visualizzazioni. Monitoraggio di Azure usa gli strumenti di visualizzazione per esaminare i componenti dell'applicazione e dell'infrastruttura e le comunicazioni tra i servizi in Monitoraggio di Azure. Gli strumenti di visualizzazione includono Mappa delle applicazioni in informazioni dettagliate app Azure lication, la funzionalità Mappa di Monitoraggio di Azure per le macchine virtuali, cartelle di lavoro di Monitoraggio di Azure e varie visualizzazioni del dashboard disponibili in Monitoraggio di Azure. Per altre informazioni, vedere Usare la funzionalità Mappa di Monitoraggio di Azure per le macchine virtuali per comprendere i componenti dell'applicazione, Creare e condividere dashboard dei dati di Log Analytics e Cartelle di lavoro di Monitoraggio di Azure.
  • Monitoraggio di Azure - Integrazioni. Monitoraggio di Azure si integra con una gamma di strumenti e estensioni di terze parti e partner. Questi strumenti ed estensioni migliorano e si basano sulle funzionalità di Monitoraggio di Azure esistenti, ad esempio l'analisi e le visualizzazioni.
  • Monitoraggio di Azure - Azioni - Avvisi. Le variazioni nei dati delle metriche e dei log possono indicare l'occorrenza degli eventi. Le regole definiscono le varianti di dati che attivano avvisi, forniscono notifiche e avviano risposte correttive. In questa architettura, quando viene attivato un avviso, i runbook di automazione aggiornano automaticamente le macchine virtuali locali e le macchine virtuali di Azure. Sono disponibili anche azioni webhook, integrazione di Gestione dei servizi e altri tipi di azione. Per altre informazioni, vedere Creare, visualizzare e gestire gli avvisi delle metriche usando Monitoraggio di Azure e Creare, visualizzare e gestire gli avvisi dei log con Monitoraggio di Azure.
  • Monitoraggio di Azure - Azioni - Scalabilità automatica. La scalabilità automatica aggiunge o rimuove istanze di macchine virtuali in base a deman, che mantiene le prestazioni e aumenta l'efficienza dei costi. In questa architettura, la scalabilità automatica presenta condizioni definite intorno al carico medio della CPU (in percentuale). Quando vengono soddisfatte le condizioni, la scalabilità automatica di Monitoraggio di Azure regola il set di scalabilità in base alla domanda. Per altre informazioni, vedere Panoramica della scalabilità automatica in Microsoft Azure.

Componenti

Questa architettura è costituita dai componenti seguenti:

Consigli

Le procedure consigliate seguenti sono raccomandazioni che si applicano per la maggior parte degli scenari. Seguire queste procedure, a meno che non si disponga di un requisito specifico che li sostituisce.

area di lavoro Log Analytics

Quando si progetta l'area di lavoro Log Analytics, prendere in considerazione i consigli seguenti:

  • Posizionare l'area di lavoro e le risorse nella stessa area di Azure, se la latenza è un fattore importante.
  • Iniziare con una singola area di lavoro Log Analytics e aumentare il numero di aree di lavoro man mano che cambiano i requisiti.
  • Se si dispone di team e risorse geograficamente distribuiti, potrebbe essere necessaria un'area di lavoro per area.
  • L'area di lavoro non deve trovarsi nella stessa sottoscrizione delle risorse in esecuzione.

Avvisi

Per scenari più semplici, è possibile usare le metriche per contrassegnare gli avvisi anziché i log. Metriche:

  • Specificare un conteggio o un valore numerico per eventi come l'utilizzo della CPU, la memoria disponibile o lo spazio su disco logico.
  • Bassa latenza.
  • Offrire una maggiore granularità, ad esempio intervalli al secondo o al minuto.
  • Notificare rapidamente un problema.

Per raccogliere indicatori di prestazioni personalizzati o metriche specifiche dell'azienda per fornire informazioni più approfondite, usare metriche personalizzate. Per altre informazioni, vedere Metriche personalizzate in Monitoraggio di Azure (anteprima).

Gli avvisi delle metriche non sono la risposta in tutte le situazioni. È comunque consigliabile usare avvisi basati su log quando è necessaria una maggiore personalizzazione o correlazioni più potenti.

Analisi e diagnostica

Considerare le raccomandazioni seguenti per l'analisi e la diagnostica:

  • Usare i log per un'analisi più approfondita. I log possono:

    • Fornire dettagli dettagliati sugli eventi (rispetto alle metriche).
    • Si verifica in modo intermittente.
    • Facilitare la diagnostica più approfondita dopo un flag di metrica iniziale.
  • Personalizzare la raccolta dei dati di log (simile alle metriche) usando l'API dell'agente di raccolta dati HTTP per inviare i dati di log a un'area di lavoro Log Analytics. Per altre informazioni, vedere Inviare dati di log a Monitoraggio di Azure con l'API dell'agente di raccolta dati HTTP (anteprima pubblica).

  • Analizzare le applicazioni in modo proattivo con la funzionalità di rilevamento intelligente di Application Insight. Il rilevamento intelligente applica le funzionalità di Machine Learning di Azure e l'analisi statistica per rilevare problemi quali anomalie di prestazioni o errori, perdite di memoria o riduzione generale delle applicazioni. Per altre informazioni, vedere Rilevamento intelligente in Application Insights.

  • Usare Monitoraggio di Azure per le macchine virtuali: eseguire il mapping per esaminare le connessioni tra server, processi, latenza di connessione in ingresso e in uscita e porte in qualsiasi architettura connessa a TCP. Non è necessaria alcuna configurazione diversa dall'installazione di un agente. Con Monitoraggio di Azure per le macchine virtuali - Mappa è possibile interagire e interagire con i server come sistemi interconnessi.

Query di Log Analytics

Eseguire query sui dati all'interno di un'area di lavoro Log Analytics usando KQL per cercare termini, eventi specifici o stati per identificare le tendenze e analizzare i modelli. Usare Esplora query per esplorare e selezionare query pre-scritte, modificarle o crearne di personalizzate. È possibile eseguire, salvare, condividere ed esportare query dall'interno di un'area di lavoro e aggiungere le query preferite a un dashboard per il riutilizzo.

Installazione dell'agente

Installare gli agenti automaticamente e su larga scala, anziché singolarmente, usando opzioni di automazione come Criteri di Azure, Azure PowerShell, modelli di Resource Manager o DSC (Desired State Configuration). Per altre informazioni, vedere Abilitare Monitoraggio di Azure per le macchine virtuali usando Criteri di Azure, Abilitare Monitoraggio di Azure per le macchine virtuali con Azure PowerShell e Abilitare Monitoraggio di Azure per le macchine virtuali per una macchina virtuale ibrida - Configurazione dello stato desiderato.

Dashboard

Per le applicazioni critiche, creare una visualizzazione dashboard di Azure. Condividere o rendere il dashboard disponibile in una schermata condivisa, in tempo reale, per gli utenti che necessitano di dati critici dell'applicazione.

Considerazioni

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

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni che l'utente ha preso con i clienti. Per altre informazioni, vedere Panoramica del pilastro dell'affidabilità.

Le considerazioni seguenti consentono di garantire la disponibilità nell'ambiente in uso.

  • Test di disponibilità. Il test ping URL usato in questa architettura è il test di disponibilità esterno più semplice. Tuttavia, sono disponibili altre opzioni, ad esempio:
    • Test Web in più passaggi. Riproduce le registrazioni delle richieste Web sequenziate per testare scenari complessi. I test Web in più passaggi vengono creati in Microsoft Visual Studio Enterprise e quindi caricati nel portale per l'esecuzione.
    • Test di disponibilità di traccia personalizzati. Usare il TrackAvailability() metodo per inviare i risultati dei test ad Application Insights.
  • Avvisi. Quando si crea un test di disponibilità in Application Insights, le notifiche di avviso degli eventi sono abilitate per impostazione predefinita. È possibile modificare le regole di avviso specificando il tipo di notifica e i dettagli, da Avvisi di Monitoraggio>di Azure.

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.

Di seguito sono riportate alcune considerazioni per rendere l'ambiente più sicuro.

  • Area di lavoro Log Analytics. Le modalità di accesso vengono definite come uno dei contesti seguenti:
    • Contesto dell'area di lavoro. È possibile eseguire query su tutti i log a cui l'area di lavoro dispone dell'autorizzazione per l'accesso. Si tratta di un approccio di accesso verticale. Ad esempio, un team di sicurezza potrebbe dover accedere a tutti i dati delle risorse dall'alto verso il basso.
    • Contesto delle risorse. È possibile eseguire query solo su log per risorse specifiche. Ad esempio, a un team di applicazioni può essere concesso l'accesso ai log per la risorsa specifica su cui stanno lavorando.
  • Proteggere i dati in transito a Log Analytics. I dati in transito vengono protetti usando tls (Transport Layer Security) 1.2 minimo. Non è necessario abilitare questa funzionalità in modo esplicito. Per altre informazioni, vedere Sicurezza dei dati di Log Analytics.
  • Proteggere i dati inattivi in Log Analytics. I dati inattivi in Log Analytics sono protetti, in base Archiviazione di Azure, usando la crittografia AES (Advanced Encryption Standard) a 256 bit per impostazione predefinita.
  • Rilevamento intelligente. Usare il rilevamento intelligente in Application Insights per analizzare i dati di telemetria generati dall'applicazione e per rilevare i problemi di sicurezza. Per altre informazioni, vedere Application Security Detection Pack (anteprima).
  • Integrare Monitoraggio di Azure con strumenti SIEM (Security Information and Event Management). Instradare i dati di monitoraggio a un hub eventi con Monitoraggio di Azure per integrare strumenti di monitoraggio e siem esterni. Per altre informazioni, vedere Trasmettere i dati di monitoraggio di Azure a un hub eventi o a un partner esterno.

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.

Gli elementi seguenti sono considerazioni per il controllo e la gestione dei costi nell'ambiente.

  • Monitoraggio di Azure. I costi di Monitoraggio di Azure sono basati sul consumo, spesso definiti con pagamento in base al consumo.
  • Log Analytics. Si paga per l'inserimento e la conservazione dei dati. È possibile stimare e prevedere il numero di macchine virtuali e la quantità di dati (in gigabyte) che si prevede di raccogliere da ogni macchina virtuale. Una tipica macchina virtuale di Azure usa tra 1 gigabyte (GB) e 3 GB di dati ogni mese. Se si valuta l'utilizzo dei dati con i log di Monitoraggio di Azure, usare le statistiche sui dati del proprio ambiente e ottenere uno sconto con prenotazioni di capacità.
  • Application Insights. Questo componente viene fatturato in base al volume di dati di telemetria inviati dall'applicazione e al numero di test Web eseguiti.
  • Query sulle metriche. Le query sulle metriche vengono fatturate in base al numero di chiamate effettuate.
  • Avvisi. Gli avvisi vengono fatturati in base al tipo e al numero di segnali monitorati.
  • Notifiche. Le notifiche vengono fatturate in base al tipo e al numero di notifiche inviate.
  • Monitoraggio di Azure. La sezione Utilizzo e costi stimati di Monitoraggio di Azure stima i costi mensili in base ai 31 giorni precedenti di utilizzo.
  • Per altre informazioni, vedere Calcolatore prezzi e prezzi di Monitoraggio di 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.

Gestione

Di seguito sono riportate alcune considerazioni per rendere l'ambiente più gestibile.

  • Cartelle di lavoro di Azure. Usare le cartelle di lavoro per eseguire ulteriori analisi e creare report avanzati. Le cartelle di lavoro combinano testo, query di log, metriche e parametri in report interattivi. I membri del team con accesso alle stesse risorse di Azure possono modificare le cartelle di lavoro. Per altre informazioni, vedere Creare report interattivi Monitoraggio di Azure per le macchine virtuali con cartelle di lavoro.
  • Integrazioni dei partner. Integrare Monitoraggio di Azure con strumenti partner e di terze parti per facilitare l'analisi, la visualizzazione, gli avvisi o la gestione dei servizi e Azure Pipelines. Per altre informazioni, vedere Integrazioni dei partner di Monitoraggio di Azure.
  • Integrare Monitoraggio di Azure con Microsoft System Center. Integrare Monitoraggio di Azure con la suite di prodotti System Center. Per altre informazioni, vedere Connettere Operations Manager a Monitoraggio di Azure.
  • Inviare dati a Hub eventi di Azure. Per l'integrazione di Monitoraggio di Azure con strumenti di monitoraggio esterni e visualizzazione, vedere Trasmettere i dati di monitoraggio di Azure a un hub eventi o a un partner esterno.
  • Gateway di Log Analytics Per ambienti più piccoli, ad esempio la succursale, usare l'agente per trasferire i dati nell'area di lavoro Log Analytics anziché in un gateway. Per altre informazioni, vedere Stabilire la connettività ad Azure Log Analytics.

DevOps

Di seguito sono riportate alcune considerazioni per l'integrazione dell'ambiente con processi e soluzioni DevOps.

  • Application Insights. Integrare Application Insights in Azure Pipelines per migliorare le prestazioni e l'usabilità. Application Insights può rilevare automaticamente le anomalie delle prestazioni. Si connette a vari strumenti di sviluppo, ad esempio Azure DevOps Services e GitHub.
  • Strumentazione dell'applicazione. Instrumentare le applicazioni modificando il codice dell'applicazione per abilitare la telemetria con Application Insights. I metodi seguenti consentono di instrumentare le applicazioni:
    • In fase di esecuzione. Instrumentare l'applicazione Web nel server in fase di esecuzione è ideale per le applicazioni già distribuite, in quanto evita di dover aggiornare il codice. Gli scenari adatti includono:
      • Applicazioni Microsoft ASP.NET o ASP.NET Core ospitate in Azure App Web
      • ASP.NET applicazioni ospitate in Microsoft Internet Information Services (IIS) in una macchina virtuale o in un set di scalabilità di macchine virtuali
      • ASP.NET applicazioni ospitate in IIS in una macchina virtuale locale
      • Funzioni di Azure basate su Java
      • Node.JS app in servizio app Linux
      • Microservizi ospitati nel servizio Azure Kubernetes
    • In fase di sviluppo. Aggiungere Application Insights al codice per personalizzare la raccolta di dati di telemetria e inviare altri dati. I linguaggi e le piattaforme supportati includono:
      • Applicazioni ASP.NET
      • Applicazioni ASP.NET Core
      • Applicazioni console .NET
      • Java
      • Node.js
      • Python
  • Usare IT Service Management Connector (ITSMC) per connettersi a strumenti IT Service Management (ITSM) esterni. Gestione dei servizi IT si connette ad Azure ai prodotti e ai servizi ITSM supportati, in cui in genere si trovano elementi di lavoro correlati ai problemi. Per altre informazioni, vedere Connettere Azure agli strumenti di Gestione dei servizi IT tramite IT Service Management Connector.

Efficienza prestazionale

L'efficienza delle prestazioni è la capacità del carico di lavoro di ridimensionarsi in modo efficiente per soddisfare le esigenze che gli utenti lo pongono. Per altre informazioni, vedere Panoramica del pilastro dell'efficienza delle prestazioni.

Di seguito sono riportate alcune considerazioni per il ridimensionamento dell'ambiente.

  • Automatizzare l'installazione e la configurazione delle risorse e delle applicazioni.
  • Applicazioni distribuite su larga scala geograficamente. Usare Traccia distribuita in Application Insights per tenere traccia delle dipendenze e delle chiamate tra più componenti dell'applicazione, risorse back-end e ambienti di microservizi. Con Distributed Tracing è possibile eseguire il debug di applicazioni che chiamano oltre i limiti del processo, all'esterno dello stack locale. Non è necessario abilitare La traccia distribuita è disponibile automaticamente come parte di App Insights.
    • Sono disponibili due opzioni per l'utilizzo dei dati di traccia distribuiti:
      • Esperienza di diagnostica delle transazioni. Questa esperienza è simile a uno stack di chiamate con una dimensione temporale aggiunta. L'esperienza di diagnostica delle transazioni offre visibilità su una singola transazione/richiesta. È utile per trovare la causa radice dei problemi di affidabilità e dei colli di bottiglia delle prestazioni per ogni richiesta. Per altre informazioni, vedere Che cos'è la traccia distribuita?
      • Esperienza mappa delle applicazioni. Questo aggrega molte transazioni per dimostrare come i sistemi interagiscono in modo topologico e forniscono percentuali medie di prestazioni ed errori. Per altre informazioni, vedere Mappa delle applicazioni: Valutazione delle applicazioni distribuite.

Passaggi successivi

Altre informazioni sulle tecnologie dei componenti: