Überwachen der gesamten Lösung
In dieser Lerneinheit sehen Sie sich an, wie Sie die gesamte Lösung überwachen können.
Einführung
Damit Überwachung in den heutigen komplexen Computingumgebungen möglich ist, müssen operative Daten jeder Schicht und Komponente eines verteilten Systems erfasst werden. Sie benötigen detaillierte Erkenntnisse zu diesen Daten und müssen sie mit verschiedenen Perspektiven kombinieren, um eine Vielzahl an Beteiligten in Ihrer Organisation unterstützen zu können.
Azure Monitor erfasst Daten unterschiedlicher Quellen, wo sie dann für Analysen, Visualisierungen und Benachrichtigungen verwendet werden können. So erhalten Sie detaillierte Erkenntnisse für alle Ihre überwachten Ressourcen und erhalten sogar Daten von anderen Diensten, die ihre Daten in Azure Monitor speichern.
Log Analytics
Protokolle sind Ereignisse, die im System aufgetreten sind. Protokolle können verschiedene Arten von Daten enthalten und sind entweder strukturiert oder weisen ein Freitextformat mit Zeitstempel auf. Protokolle können von Zeit zu Zeit erstellt werden, wenn Ereignisse in der Umgebung Protokolleinträge generieren. Ein System unter schwerer Last generiert in der Regel mehr Protokollvolumen.
Protokolle in Azure Monitor sind hilfreich, um die Grundursachen von Problemen zu ermitteln. Die von Azure Monitor-Protokollen erfassten Daten werden in einem oder mehreren Log Analytics-Arbeitsbereichen gespeichert. Daten werden mithilfe einer Protokollabfrage aus einem Log Analytics-Arbeitsbereich abgerufen. Hierbei handelt es sich um eine schreibgeschützte Anforderung zum Verarbeiten von Daten und Zurückgeben von Ergebnissen. Protokollabfragen werden in der Kusto-Abfragesprache (Kusto Query Language, KQL) geschrieben – derselben Abfragesprache, die von Azure Data Explorer verwendet wird.
Hinweis
Ihre Beispielanwendung in Azure Spring Apps wurde bereits mit einem Log Analytics-Arbeitsbereich eingerichtet. Weitere Informationen zur KQL-Syntax erhalten Sie in der Lerneinheit „Zusammenfassung“ am Ende dieses Moduls.
Verwenden von Log Analytics
Es gibt tatsächlich drei Möglichkeiten, um auf die Protokolle Ihrer Anwendung zuzugreifen: Azure Storage, Azure Event Hub und Log Analytics. Der Fokus hier liegt auf Log Analytics, da es sich hierbei um die gängigste Lösung handelt, die zudem in Azure Spring Apps für die Überwachung von Metriken integriert wurde.
Wichtig
Die Datenerfassungszeit für Protokolle in Azure Monitor kann bis zu 15 Minuten betragen. Wenn Daten in Log Analytics nicht gefunden werden, kann es zusätzliche Zeit in Anspruch nehmen, Azure Spring Apps-Protokolldaten zu erfassen.
Öffnen Sie das Azure-Portal.
Wählen Sie aus der Liste der Azure-Dienste den Eintrag Azure Spring Apps aus.
Wählen Sie Ihre Azure Spring Apps-Instanz aus.
Wählen Sie als Nächstes im Abschnitt Überwachung die Option Protokolle aus.
Im Suchfeld Abfrage haben Sie die folgenden Möglichkeiten:
Führen Sie zum Anzeigen von Protokollen eine Abfrage ähnlich der folgenden aus:
AppPlatformLogsforSpring | limit 50
Geben Sie zum Anzeigen von Metriken eine Abfrage ähnlich der folgenden ein:
AzureMetrics | limit 50
Sie können die Protokolle der jeweiligen Anwendung oder Instanz suchen, indem Sie eine Filterbedingung festlegen:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Analysieren der Anwendungsprotokolle
Anwendungsprotokolle bieten wichtige Informationen und ausführliche Protokolle zur Integrität und Leistung Ihrer Anwendung und zu vielem mehr. Im nächsten Abschnitt finden Sie Abfragen, die Ihnen helfen, die aktuellen und früheren Zustände Ihrer Anwendung besser zu verstehen.
Anzeigen von Anwendungsprotokollen aus Azure Spring Apps
Öffnen Sie das Azure-Portal.
Wählen Sie aus der Liste der Azure-Dienste den Eintrag Azure Spring Apps aus.
Wählen Sie Ihre Azure Spring Apps-Instanz aus.
Wählen Sie als Nächstes im Abschnitt Überwachung die Option Protokolle aus.
Im Suchfeld Abfrage haben Sie die folgenden Möglichkeiten:
Um eine Liste mit Anwendungsprotokollen aus Azure Spring Apps zu überprüfen, sortiert nach Uhrzeit mit den neuesten Protokollen zuerst, führen Sie die folgende Abfrage aus:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | sort by TimeGenerated desc
Um unsortierte Protokolleinträge zu überprüfen, die einen Fehler oder eine Ausnahme enthalten, führen Sie die folgende Abfrage aus:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | where Log contains "error" or Log contains "exception"
Wenn Sie ein Kreisdiagramm erstellen möchten, das die Anzahl an Fehlern und Ausnahmen angezeigt, die von Ihrer Anwendung protokolliert wurden, führen Sie die folgende Abfrage aus:
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
Datenbanküberwachung
Die Überwachung der Daten zu Ihren Servern unterstützt Sie bei der Problembehandlung und der Optimierung Ihrer Workloads. Azure Database for MySQL bietet verschiedene Metriken, die Einblicke in das Verhalten Ihres Servers ermöglichen.
In Azure Database for MySQL ist das Protokoll für langsame Abfragen für Benutzer verfügbar. Der Zugriff auf das Transaktionsprotokoll wird nicht unterstützt. Sie können das Protokoll für langsame Abfragen verwenden, um Leistungsengpässe für die Problembehandlung zu erkennen.
In unserer Beispielanwendung werden Ihre Protokolle mit langsamen Abfragen so eingerichtet, dass sie über Diagnoseprotokolle an Protokolle in Azure Monitor weitergeleitet werden. So können Sie Ihre langsamen Abfragen weiter analysieren. Im Folgenden finden Sie Beispielabfragen, die Ihnen beim Einstieg helfen:
Wichtig
Die Datenerfassungszeit in MySQL für Protokolle in Azure Monitor kann bis zu 30 Minuten betragen. Wenn Daten in Log Analytics nicht gefunden werden können, kann es zusätzliche Zeit in Anspruch nehmen, MySQL-Protokolldaten zu erfassen.
Melden Sie sich beim Azure-Portal an.
Wählen Sie Ihren Azure Database for MySQL-Server aus, den Sie für Ihre Azure Spring Apps-Instanz verwenden.
Wählen Sie als Nächstes im Abschnitt Überwachung die Option Protokolle aus.
Im Suchfeld Abfrage haben Sie die folgenden Möglichkeiten:
Führen Sie die folgende Abfrage aus, um alle Abfragen abzurufen, die länger als eine Sekunde dauern:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s
Führen Sie die folgende Abfrage aus, um die fünf Abfragen mit der längsten Dauer aufzulisten:
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
Führen Sie die folgende Abfrage aus, um langsame Abfragen nach minimaler, maximaler und durchschnittlicher Abfragezeit sowie der Abfragezeit mit Standardabweichung zusammenzufassen:
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
Führen Sie die folgende Abfrage aus, um ein Diagramm der Verteilung langsamer Abfragen auf einem bestimmten Server zu erstellen:
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
Sie können das Überwachungsprotokoll auch verwenden, um Aktivitäten auf Datenbankebene nachzuverfolgen. Es wird häufig für Compliance eingesetzt. Überwachungsprotokolle sind in Azure Monitor-Diagnoseprotokolle integriert. In Ihrem Beispiel wurden Überwachungsprotokolle für Ihren MySQL-Server aktiviert, sodass Sie weitere Analysieren für Ihre überwachten Ereignisse durchführen können.
Hier finden Sie eine Beispielabfrage, die das allgemeine MySQL-Protokoll abruft:
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
Überwachung der Benutzeroberfläche
Wenn Sie Application Insights Ihrem Seitenskript hinzufügen, erhalten Sie Zeitangaben zu Seitenladevorgängen und AJAX-Aufrufen, Anzahl und Details von Browserausnahmen und AJAX-Fehlern sowie die Anzahl von Benutzern und Sitzungen. Sie können alle diese Metriken jeweils nach Seite, Clientbetriebssystem und Browserversion, geografischer Position und anderen Dimensionen segmentieren. Sie können Warnungen für die Fehleranzahl oder das langsame Laden von Seiten festlegen. Und indem Sie Ablaufverfolgungsaufrufe in JavaScript-Code einfügen, können Sie nachverfolgen, wie die verschiedenen Funktionen Ihrer Webseitenanwendung genutzt werden.
Sie können Application Insights mit allen Webseiten verwenden. Hierfür müssen Sie lediglich einen kurzen JavaScript-Codeabschnitt hinzufügen. Wenn Ihr Webdienst Java ist, können Sie die serverseitigen SDKs zusammen mit dem clientseitigen JavaScript SDK verwenden, um die Leistung Ihrer App zu verstehen.
Hinweis
Weitere Informationen zur Überwachung von Benutzeroberflächen erhalten Sie in der Lerneinheit „Zusammenfassung“ am Ende dieses Moduls.