Monitoraggio dell'intera soluzione
In questa unità viene esaminato il monitoraggio dell'intera soluzione.
Introduzione
Per abilitare il monitoraggio negli attuali ambienti informatici complessi, è necessario raccogliere dati operativi da ogni livello e componente di un sistema distribuito. È necessario analizzare in modo approfondito questi dati e combinarli con diverse prospettive per supportare i numerosi stakeholder dell'organizzazione.
Monitoraggio di Azure raccoglie dati da diversi tipi di origini per l'analisi, la visualizzazione e la creazione di avvisi. Offre informazioni approfondite su tutte le risorse monitorate e anche con i dati di altri servizi che sono stati archiviati in Monitoraggio di Azure.
Log Analytics
I log sono eventi che si sono verificati nel sistema. I log possono contenere tipi di dati diversi e possono essere in formato di testo strutturato o libero con un timestamp. I log possono essere creati sporadicamente quando gli eventi dell'ambiente generano voci di log. Un sistema con carico elevato genera in genere un volume di log maggiore.
I log di Monitoraggio di Azure sono utili per identificare le cause radice dei problemi. I dati che log di Monitoraggio di Azure raccoglie vengono archiviati in un'area di lavoro Log Analytics. I dati vengono recuperati da un'area di lavoro Log Analytics usando una query su log, ovvero una richiesta di sola lettura per elaborare i dati e restituire risultati. Le query su log sono scritte in KQL (Kusto Query Language), lo stesso linguaggio di query che usa Esplora dati di Azure.
Nota
L'applicazione di esempio di App Spring di Azure è stata già configurata con un'area di lavoro Log Analytics. Per altre informazioni sulla sintassi KQL, vedere l'unità Riepilogo alla fine di questo modulo.
Usare Log Analytics
Esistono in realtà tre modi per accedere ai log dell'applicazione: Archiviazione di Azure, hub eventi di Azure e Log Analytics. Questa unità è incentrata su Log Analytics, perché è il sistema più comune ed è integrato in App Spring di Azure per il monitoraggio delle metriche.
Importante
L'inserimento dei dati dei log in Monitoraggio di Azure può richiedere fino a 15 minuti. Se i dati non vengono trovati in Log Analytics, l'inserimento dei dati dei log di App Spring di Azure potrebbe richiedere più tempo.
Apri il portale di Azure.
Selezionare Azure Spring Apps nell'elenco dei servizi di Azure.
Selezionare l'istanza di Azure Spring Apps.
Nella sezione Monitoraggio selezionare Log.
Nella casella di ricerca Query:
Per visualizzare i log, eseguire una query, ad esempio:
AppPlatformLogsforSpring | limit 50
Per visualizzare le metriche, immettere una query, ad esempio:
AzureMetrics | limit 50
È possibile eseguire ricerche nei log dell'applicazione o dell'istanza specifica impostando una condizione di filtro:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Analizzare i log dell'applicazione
I log dell'applicazione forniscono informazioni cruciali e dettagliate sull'integrità, le prestazioni e altro ancora. Nelle sezioni successive vengono fornite alcune query che consentono di identificare gli stati correnti e passati dell'applicazione.
Visualizzare i log dell'applicazione in App Spring di Azure
Apri il portale di Azure.
Selezionare Azure Spring Apps nell'elenco dei servizi di Azure.
Selezionare l'istanza di Azure Spring Apps.
Nella sezione Monitoraggio selezionare Log.
Nella casella di ricerca Query:
Per esaminare un elenco di log dell'applicazione in App Spring di Azure, ordinati in base all'ora con quelli più recenti visualizzati per primi, eseguire la query seguente:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | sort by TimeGenerated desc
Per esaminare le voci di log non ordinate che menzionano un errore o un'eccezione, eseguire la query seguente:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | where Log contains "error" or Log contains "exception"
Per creare un grafico a torta che visualizza il numero di errori ed eccezioni registrati dall'applicazione, eseguire la query seguente:
AppPlatformLogsforSpring | where TimeGenerated > ago(1h) | where Log contains "error" or Log contains "exception" | summarize count_per_app = count() by AppName | sort by count_per_app desc | render piechart
Monitoraggio del database
Il monitoraggio dei dati relativi ai server facilita la risoluzione dei problemi e l'ottimizzazione in relazione al carico di lavoro. Database di Azure per MySQL offre varie metriche che consentono di ottenere informazioni approfondite sul comportamento del server.
Nel Database di Azure per MySQL, il log delle query lente è disponibile per gli utenti. L'accesso al log delle transazioni non è supportato. È possibile usare il log delle query lente per identificare i colli di bottiglia delle prestazioni per la risoluzione dei problemi.
Nell'applicazione di esempio i log delle query lente sono impostati per essere reindirizzati ai log di Monitoraggio di Azure tramite log di diagnostica ed eseguire ulteriori analisi. Di seguito sono riportate alcune query di esempio per iniziare/
Importante
L'inserimento dei dati dei log di MySQL in Monitoraggio di Azure può richiedere fino a 30 minuti. Se i dati non vengono trovati in Log Analytics, l'inserimento dei dati dei log di MySQL potrebbe richiedere più tempo.
Accedere al portale di Azure.
Selezionare il server di Database di Azure per MySQL da usare per App Spring di Azure.
Nella sezione Monitoraggio selezionare Log.
Nella casella di ricerca Query:
Per recuperare tutte le query più lunghe di un secondo, eseguire la query seguente:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s
Per elencare le prime cinque query più lunghe, eseguire la query seguente:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | order by query_time_d desc | take 5
Per riepilogare le query lente in base al tempo minimo, massimo, medio e con deviazione standard, eseguire la query seguente:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_s
Per creare un grafico della distribuzione delle query lente in un server specifico, eseguire la query seguente:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m) | render timechart
È anche possibile usare il log di controllo per tenere traccia dell'attività a livello di database. Viene comunemente usato per la conformità. I log di audit sono integrati con i log di diagnostica di Monitoraggio di Azure. Nell'esempio sono stati abilitati i log di controllo nel server MySQL per poter eseguire un'ulteriore analisi degli eventi controllati.
Qui è riportata una query di esempio che recupera il log generale di MySQL:
AzureDiagnostics | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated desc
Monitoraggio dell'interfaccia utente
Se si aggiunge Application Insights allo script della pagina, si ottengono gli intervalli di tempo di caricamento delle pagine e delle chiamate AJAX, i conteggi e i dettagli delle eccezioni del browser e degli errori AJAX, nonché i conteggi relativi a utenti e sessioni. È possibile segmentare tutte queste metriche in base a pagina, versione del sistema operativo client e del browser, posizione geografica e altre dimensioni. È possibile impostare avvisi sui conteggi degli errori o sul caricamento lento delle pagine e inserendo chiamate di traccia nel codice JavaScript, è possibile tenere traccia del modo in cui vengono usate le diverse funzionalità dell'applicazione di una pagina Web.
È possibile usare Application Insights con qualsiasi pagina Web; è sufficiente aggiungere un breve segmento di codice JavaScript. Se il servizio Web è Java, è possibile usare gli SDK sul lato server con JavaScript SDK sul lato client per ottenere informazioni sulle prestazioni dell'app.
Nota
Per altre informazioni sul monitoraggio dell'interfaccia utente, vedere l'unità Riepilogo alla fine di questo modulo.