Azure Monitor
Tipp
Diese Inhalte sind ein Auszug aus dem E-Book „Architecting Cloud Native .NET Applications for Azure“, verfügbar in der .NET-Dokumentation oder als kostenlos herunterladbare PDF-Datei, die offline gelesen werden kann.
Kein anderer Cloudanbieter verfügt über eine so ausgereifte Überwachungslösung für Cloudanwendungen wie die in Azure. Azure Monitor ist ein Überbegriff für eine Sammlung von Tools, die einen Einblick in den Zustand Ihres Systems bieten. Azure Monitor hilft Ihnen, die Leistung Ihrer cloudnativen Dienste zu verstehen. Es werden proaktiv Probleme erkannt, die sich auf die Anwendungen auswirken. Abbildung 7-12 zeigt eine allgemeine Ansicht von Azure Monitor.
Abbildung 7-12. Allgemeine Ansicht von Azure Monitor.
Sammeln von Protokollen und Metriken
Der erste Schritt in jeder Überwachungslösung besteht darin, so viele Daten wie möglich zu sammeln. Je mehr Daten gesammelt werden, desto gründlicher sind die Erkenntnisse. Instrumentierungssysteme waren traditionell schwierig. Simple Network Management Protocol (SNMP) war das favorisierte Standardprotokoll zum Sammeln von Informationen auf Computerebene, erforderte aber viel Wissen und Konfiguration. Glücklicherweise entfiel ein Großteil dieser harten Arbeit, da die gängigsten Metriken automatisch von Azure Monitor erfasst werden.
Metriken und Ereignisse auf Anwendungsebene können nicht automatisch instrumentiert werden, da sie für die bereitgestellte Anwendung spezifisch sind. Zum Erfassen dieser Metriken sind SDKs und APIs verfügbar, um solche Informationen direkt zu melden, z. B. wenn sich ein Kunde registriert oder eine Bestellung abschließt. Ausnahmen können auch erfasst und über Application Insights an Azure Monitor zurückgegeben werden. Die SDKs unterstützen die meisten Sprachen in cloudnativen Anwendungen, einschließlich Go, Python, JavaScript und die .NET-Sprachen.
Das ultimative Ziel des Sammelns von Informationen über den Zustand Ihrer Anwendung besteht darin, sicherzustellen, dass Ihre Endbenutzer eine gute Erfahrung machen. Wie könnten Sie besser feststellen, ob Benutzer Probleme haben, als mittels Überwachen der Verfügbarkeit mit URL-Pingtests? Diese Tests können so einfach sein wie das Anpingen Ihrer Website von Standorten in der ganzen Welt oder so aufwändig wie das Einloggen von Agenten auf der Website und das Simulieren von Benutzeraktionen.
Berichten von Daten
Sobald die Daten erfasst sind, können sie bearbeitet, zusammengefasst und in Diagramme gezeichnet werden, sodass Benutzer sofort sehen können, wenn Probleme auftreten. Diese Diagramme können in Dashboards oder in Arbeitsmappen zusammengefasst werden, in einem mehrseitigen Bericht, um eine Geschichte über einen Aspekt des Systems zu erzählen.
Ohne künstliche Intelligenz oder maschinelles Lernen wäre keine moderne Anwendung vollständig. Zu diesem Zweck können Daten den verschiedenen Machine Learning-Tools in Azure übergeben werden, damit Sie Trends und Informationen extrahieren können, die andernfalls ausgeblendet würden.
Application Insights bietet eine leistungsstarke (SQL-ähnliche) Abfragesprache namens Kusto, die Datensätze abfragen, zusammenfassen und sogar Diagramme zeichnen kann. Die folgende Abfrage findet beispielsweise alle Datensätze für den Monat November 2007, gruppiert sie nach Zustand und stellt die obersten 10 als Kreisdiagramm dar.
StormEvents
| where StartTime >= datetime(2007-11-01) and StartTime < datetime(2007-12-01)
| summarize count() by State
| top 10 by count_
| render piechart
Abbildung 7-13 zeigt die Ergebnisse dieser Application Insights-Abfrage.
Abbildung 7-13. Application Insights-Abfrageergebnisse.
Es gibt eine Spielwiese zum Experimentieren mit Kusto-Abfragen. Das Lesen von Beispielabfragen kann ebenfalls aufschlussreich sein.
Dashboards
Es gibt verschiedene Dashboardtechnologien, mit denen die Informationen aus Azure Monitor angezeigt werden können. Am einfachsten ist es vielleicht, Abfragen in Application Insights auszuführen und die Daten in einem Diagramm zu zeichnen.
Abbildung7-14 Ein Beispiel für Application Insights-Diagramme, die in das Azure-Hauptdashboard eingebettet sind.
Diese Diagramme können dann mithilfe des Dashboardfeatures in das richtige Azure-Portal eingebettet werden. Für Benutzer mit anspruchsvolleren Anforderungen, die z. B. die Möglichkeit erwarten, einen Drilldown in mehrere Datenebenen ausführen zu können, stehen Azure Monitor-Daten für Power BI zur Verfügung. Power BI ist ein branchenführendes Business Intelligence-Tool der Unternehmensklasse, das Daten aus vielen verschiedenen Datenquellen aggregieren kann.
Abbildung 7-15. Ein Power BI-Beispieldashboard.
Alerts
Manchmal ist die Verwendung von Datendashboards nicht ausreichend. Wenn niemand die Dashboards überwacht, kann es noch viele Stunden dauern, bis ein Problem behoben oder sogar erkannt wird. Zu diesem Zweck bietet Azure Monitor auch eine erstklassige Lösung für Warnungen. Warnungen können durch eine Vielzahl von Bedingungen ausgelöst werden, darunter:
- Metrikwerte
- Protokollsuchabfragen
- Aktivitätsprotokollereignisse
- Integrität der zugrunde liegenden Azure-Plattform
- Tests für die Verfügbarkeit von Websites
Wenn Warnungen ausgelöst werden, können sie eine Vielzahl von Aufgaben ausführen. Im einfachsten Falle senden die Warnungen nur eine E-Mail-Benachrichtigung an eine Mailingliste oder eine SMS an eine Person. Aufwändigere Warnungen könnten einen Workflow in einem Tool wie PagerDuty auslösen, das weiß, wer für eine bestimmte Anwendung anzusprechen ist. Warnungen können in Microsoft Flow Aktionen auslösen und damit nahezu unbegrenzte Möglichkeiten für Workflows eröffnen.
Wenn häufige Ursachen für Warnungen identifiziert werden, können die Warnungen mit Details zu den häufigsten Ursachen der Warnungen und den zu ihrer Behebung erforderlichen Schritten erweitert werden. Hoch ausgereifte cloudnative Anwendungsbereitstellungen können optional selbstheilende Aufgaben starten, die Aktionen wie z. B. das Entfernen fehlerhafter Knoten aus einer Skalierungsgruppe oder das Auslösen einer automatischen Skalierungsaktivität ausführen. Schließlich ist es möglicherweise nicht mehr notwendig, das Bereitschaftspersonal um 2 Uhr morgens aufzuwecken, um ein akutes Problem am Standort zu beheben, da das System in der Lage ist, sich anzupassen, um das Problem zu kompensieren oder zumindest provisorisch zu funktionieren, bis jemand am nächsten Morgen zur Arbeit kommt.
Azure Monitor nutzt maschinelles Lernen automatisch, um die normalen Betriebsparameter bereitgestellter Anwendungen zu verstehen. Dieser Ansatz ermöglicht, Dienste zu erkennen, die außerhalb ihrer normalen Parameter arbeiten. Der typische Wochentagsdatenverkehr auf der Website kann beispielsweise 10.000 Anforderungen pro Minute betragen. In einer bestimmten Woche steigt die Anzahl der Anforderungen dann plötzlich auf höchst ungewöhnliche 20.000 Anforderungen pro Minute. Intelligente Erkennung erkennt diese Abweichung von der Norm und löst eine Warnung aus. Gleichzeitig ist die Trendanalyse intelligent genug, um zu vermeiden, dass falsch positive Ergebnisse ausgelöst werden, wenn die Datenverkehrslast erwartet wird.