Ständiges Überwachen von Anwendungen und Diensten

Abgeschlossen

In dieser Einheit lernen Sie Folgendes:

  • Wie ständige Überwachung Ihnen hilft, Integrität, Leistung und Zuverlässigkeit Ihrer Anwendung und Infrastruktur zu überprüfen
  • Wie Einblick Daten aus den Systemen verfügbar macht, die Sie überwachen müssen
  • Wie Azure Monitor und Application Insights Ihnen ermöglichen, eine ständige Überwachung zu implementieren
  • Wie der ITSM-Connector (IT-Service-Management) Ihnen beim Implementieren eines Ticketsystems behilflich sein kann

Was ist ständige Überwachung?

Das Team möchte Website und Infrastruktur während des Betatests überwachen. Tim hat etwas recherchiert und einiges herausgefunden.

Zur ständigen Überwachung gehören Prozesse und Technologien zur Überwachung jeder Phase des Lebenszyklus Ihrer Anwendung. Durch ständige Überwachung können Sie Integrität, Leistung und Zuverlässigkeit Ihrer Anwendung und Infrastruktur prüfen, sobald Änderungen aus der Entwicklung in die Produktion einfließen.

Ständige Überwachung baut auf CI/CD-Konzepten auf, mit denen Sie Software schneller und zuverlässiger entwickeln und ausliefern können, um Ihren Benutzern kontinuierlich einen Mehrwert zu bieten.

Was bedeutet Einblick?

Einblick bezieht sich auf die Bereitstellung von Daten innerhalb des Systems, das Sie überwachen möchten. Im Rahmen der Überwachung werden diese Daten gesammelt und angezeigt.

Was ist Azure Monitor?

Azure Monitor ist ein Dienst in Azure, der sowohl in der Cloud als auch lokal einen umfassenden Einblick in Anwendungen und Infrastrukturen bietet.

Azure Monitor arbeitet mit Entwicklungstools wie Visual Studio und Visual Studio Code zusammen, weshalb diese Plattform in der Entwicklungs- und Testphase einsetzbar ist. Der Dienst und Azure DevOps sind integriert, um während der Bereitstellungsphasen die Verwaltung von Releases und Arbeitselementen zu ermöglichen.

Azure Monitor ist auch in ITSM- und SIEM-Tools (IT-Service-Management/Security Information and Event Management) integriert, damit Sie Issues und Vorfälle innerhalb Ihrer bestehenden IT-Prozesse nachverfolgen können.

Aktivieren der Überwachung für alle Ihre Anwendungen

Anwendungen sind komplex und weisen viele miteinander verbundene Komponenten auf. Um die Transaktionen und Verbindungen systemweit vollständig zu visualisieren, müssen Sie für alle Ihre Webanwendungen und -dienste die Überwachung aktivieren.

Wenn in Azure DevOps noch kein Projekt vorliegt, können Sie mit der Azure Developer CLI starten. Die Azure Developer CLI (azd) ist ein Open-Source-Tool, mit dem Sie den Zeitraum zum Verlagern einer Anwendung aus einer lokalen Entwicklungsumgebung in Azure verkürzen können. azd bietet bewährte entwicklungsfreundliche Befehle, die den wichtigsten Phasen eines Workflows entsprechen, ganz gleich, ob Sie an einem Terminal, in Ihrem Editor bzw. in der integrierten Entwicklungsumgebung (IDE) oder mit CI/CD (Continuous Integration/Continuous Deployment) arbeiten.

Anschließend können Sie Ihre Releasepipeline mit ständiger Überwachung versehen, indem Sie Azure Pipelines und Azure Application Insights kombinieren. Application Insights ist ein Azure Monitor-Feature, mit dem Sie Ihre aktiven Anwendungen überwachen können. Wir sehen uns Application Insights in Kürze genauer an.

Aktivieren der Überwachung in Ihrer Infrastruktur

Anwendungen sind nur so zuverlässig wie ihre zugrunde liegende Infrastruktur. Mit aktivierter Überwachung in der gesamten Infrastruktur verschaffen Sie sich einen vollständigen Einblick und können leichter die Ursachen finden, wenn etwas fehlschlägt.

Mit Azure Monitor können Sie Integrität und Leistung Ihrer gesamten hybriden Infrastruktur nachverfolgen, einschließlich virtueller Computer, Container, Speicher und Netzwerke.

Mit Azure Monitor können Sie Folgendes erfassen:

  • Plattformmetriken sowie Aktivitäts- und Diagnoseprotokolle für die meisten Ihrer Azure-Ressourcen, ohne dass zusätzliche Konfiguration erforderlich ist
  • Überwachungsdaten für VMs (Azure Monitor für VMs)
  • Überwachungsdaten für AKS-Cluster (Azure Monitor für Container)

Infrastruktur als Code ermöglicht es Ihnen, die für Ihre Anwendung benötigte Infrastruktur durch Code zu beschreiben. Da Sie Ihre Infrastruktur mittels Code beschreiben, können Sie die gleichen Entwicklungs-, Test- und Versionsverwaltungsschemas befolgen, die DevOps-Teams für Anwendungen verwenden.

Zum Aktivieren der Überwachung mithilfe eines Infrastructure-as-Code-Ansatzes haben Sie folgende Möglichkeiten:

  • Resource Manager-Vorlagen, um die Überwachung und Konfiguration von Warnungen für eine große Anzahl von Ressourcen zu ermöglichen.
  • Azure Policy, um unterschiedliche Regeln für Ihre Ressourcen zu erzwingen. Azure Policy hilft sicherzustellen, dass diese Ressourcen mit Ihren Unternehmensstandards und Vereinbarungen zum Servicelevel (SLAs) konform bleiben.

Kombinieren von Ressourcen mithilfe von Azure-Ressourcengruppen

Eine typische Anwendung in Azure umfasst Computeressourcen wie VMs, Azure App Service, Microservices, AKS-Cluster (Azure Kubernetes Service) und Azure Service Fabric. Diese Anwendungen hängen häufig von Daten- und Netzwerkdiensten wie Azure Event Hubs, Azure Storage, Microsoft Azure SQL-Datenbank und Azure Service Bus ab.

Eine Ressourcengruppe in Azure enthält zusammengehörige Azure-Ressourcen. Sie können Ressourcen in einer Ressourcengruppe kombinieren, um sich einen vollständigen Einblick in alle Ressourcen zu verschaffen, aus denen Ihre verschiedenen Anwendungen bestehen. Azure Monitor für Ressourcengruppen bietet eine einfache Möglichkeit, Integrität und Leistung Ihrer gesamten Anwendung nachzuverfolgen, und ermöglicht Ihnen eine detaillierte Untersuchung einzelner Komponenten zum Beheben von Fehlern.

Sicherstellen von Qualität durch Continuous Deployment

Mit CI/CD können Sie Änderungen am Code Ihrer Anwendung automatisch integrieren und bereitstellen, und zwar basierend auf den Ergebnissen automatisierter Tests. CI/CD rationalisiert den Bereitstellungsprozess und gewährleistet die Qualität Ihres Codes, bevor Änderungen in die Produktion einfließen.

Es folgen Empfehlungen, wie Sie die Qualität während Ihres Bereitstellungsprozesses sicherstellen können:

  • Nutzen Sie Azure Pipelines, um eine CI/CD-Pipeline zu implementieren, die Ihren gesamten Prozess, einschließlich automatisierter Tests, vom Zeitpunkt des Commits des Codes bis in die Produktion automatisiert.

  • Fügen Sie Ihren Umgebungen vor und nach der Bereitstellung mithilfe von Bereitstellungsgates Überwachungsfunktionen hinzu.

    Bereitstellungsgates stellen sicher, dass wichtige Integritäts- und Leistungsmetriken (KPIs) erfüllt werden, wenn Ihre Anwendungen von der Entwicklung in die Produktion übergehen. Bereitstellungsgates stellen außerdem sicher, dass Unterschiede in der Infrastrukturumgebung oder die angewendete Skalierung keine negativen Auswirkungen auf Ihre KPIs haben.

  • Unterhalten Sie separate Überwachungsinstanzen zwischen Ihren verschiedenen Bereitstellungsumgebungen wie Entwicklung, Test, Staging und Produktion.

    Separate Überwachungsinstanzen stellen sicher, dass alle gesammelten Daten sowohl für Anwendungen als auch für Infrastruktur relevant sind. Wenn Sie Daten umgebungsübergreifend korrelieren müssen, können Sie Diagramme für mehrere Ressourcen im Metrik-Explorer verwenden oder ressourcenübergreifende Abfragen in Log Analytics erstellen.

Erstellen von Warnungen, auf die Sie reagieren können

Um sicherzustellen, dass Ihre Überwachungsmaßnahmen effektiv sind, müssen Sie Administratoren über aktuelle und prognostizierte Probleme informieren. Dazu haben Sie folgende Möglichkeiten:

  • Erstellen Sie basierend auf Protokollen und Metriken Warnungen in Azure Monitor, um vorhersehbare Fehlerzustände zu ermitteln.

    Ziel ist es sicherzustellen, dass jede Warnung eine kritische Bedingung darstellt, auf die Sie reagieren können. Ein falsch positives Ergebnis tritt auf, wenn die Überwachung ein Problem meldet, das tatsächlich nicht vorhanden ist. Ermitteln Sie mithilfe dynamischer Schwellenwerte automatisch Grundwerte für Metrikdaten, anstatt eigene statische Schwellenwerte festzulegen.

  • Definieren Sie Aktionen für Warnungen, sodass Ihre Administratoren so effektiv wie möglich benachrichtigt werden.

    Benachrichtigungsmöglichkeiten sind SMS, E-Mail, Pushbenachrichtigungen oder Sprachanrufe.

  • Über erweiterte Aktionen können Sie sich mittels Webhooks mit Ihrem ITSM Tool oder anderen Systemen zur Verwaltung von Warnungen verbinden.

  • Mithilfe von Azure Automation-Runbooks oder Webhooks können Sie Warnungsbedingungen beseitigen.

  • Mithilfe automatischer Skalierung können Sie Ihre Computeressourcen basierend auf den gesammelten Metriken dynamisch anpassen.

Erstellen von Dashboards und Arbeitsmappen

Wenn Ihre Entwicklungs- und Betriebsteams Zugriff auf dieselben Telemetriedaten und Tools haben, können sie Muster in Ihrer gesamten Umgebung erkennen und die mittlere Zeit bis zur Erkennung (MTTD) und die mittlere Zeit bis zur Wiederherstellung (MTTR) minimieren. Es folgen verschiedene Möglichkeiten:

  • Erstellen Sie benutzerdefinierte Dashboards, die auf gemeinsamen Metriken und Protokollen für die verschiedenen Rollen in Ihrer Organisation basieren.

    In Dashboards können Daten aus mehreren Azure-Ressourcen kombiniert werden.

  • Erstellen Sie Azure Monitor-Arbeitsmappen, damit Entwicklungs- und Betriebsteams ihr Wissen austauschen können.

    Sie können eine Arbeitsmappe als dynamischen Bericht mit Diagrammen und Protokollzusammenfassungen vorbereiten. Entwickler können Anleitungen zur Problembehandlung erstellen, um das Kundensupport- oder Betriebsteam bei der Problemlösung zu unterstützen.

Kontinuierliche Optimierung

Überwachung ist einer der grundlegenden Aspekte der beliebten Philosophie Entwickeln – Messen – Lernen, die empfiehlt, dass Sie Ihre KPIs und Metriken zum Benutzerverhalten kontinuierlich nachverfolgen und diese dann durch iterative Planungsübungen optimieren. Azure Monitor hilft Ihnen, Metriken und Protokolle zu sammeln, die für Ihr Unternehmen relevant sind, und bei der nächsten Bereitstellung neue Datenpunkte hinzuzufügen.

Was ist Azure Application Insights?

Application Insights ist ein für Webentwickler konzipierter Dienst zur Verwaltung der Anwendungsleistung (Application Performance Management, APM). Sie können damit folgende Aufgaben durchführen:

  • Überwachen Ihrer aktiven Webanwendung
  • Automatisches Erkennen von Leistungsanomalien
  • Diagnostizieren von Ausfällen und Verstehen, was Benutzer tatsächlich mit Ihrer Anwendung tun

Application Insights eignet sich für .NET, Node.js, Java und viele andere Programmiersprachen und Frameworks. Die Lösung funktioniert mit Anwendungen, die in der Cloud oder lokal gehostet werden.

Application Insights bietet Verbindungspunkte, die Sie mit Ihren vorhandenen DevOps-Prozessen und -Tools verbinden können. Application Insights lässt sich auch in Visual Studio App Center integrieren, wodurch Sie die Telemetrie Ihrer mobilen Anwendungen überwachen und analysieren können.

Funktionsweise von Application Insights

Sie beginnen mit dem Hinzufügen eines kleinen Instrumentierungspakets zu Ihrer Anwendung. Anschließend erstellen Sie im Azure-Portal eine Application Insights-Ressource. Die Instrumentierung überwacht Ihre Anwendung und sendet Telemetriedaten zurück an Azure, auf die Sie im Portal zugreifen können. Denken Sie daran, dass Ihre Anwendung überall laufen kann und nicht in Azure gehostet werden muss.

Neben Webanwendungen können Sie auch nahezu jede Art von Hintergrundkomponente instrumentieren. Sie können sogar JavaScript-Code instrumentieren.

Hier ist ein Diagramm, das den Fluss von Überwachungsdaten von aktiven Diensten zu Application Insights zeigt. Application Insights kann dann Warnungen auslösen oder Daten an ein anderes Tool weiterleiten, sodass Sie Trends visualisieren und verstehen können.

Ein Diagramm, das den Fluss von Überwachungsdaten von aktiven Diensten zu Application Insights zeigt.

Sie können Telemetriedaten auch aus Ihren Hostumgebungen abrufen. Zu diesen Daten gehören Leistungsindikatoren, Azure-Diagnose-Ergebnisse und Docker-Protokolle. Sie können auch synthetische Überwachungstests einrichten. Die synthetische Überwachung bewertet Leistung und Verfügbarkeit anhand einer Reihe von Transaktionen. Synthetische Transaktionen sind vorhersagbare Tests, mit denen Sie die Ergebnisse von Release zu Release vergleichen können.

Wie sieht der Aufwand aus? Die Auswirkungen auf die Leistung Ihrer Anwendung sind in der Regel gering. Verfolgungsaufrufe sind nicht blockierend und werden im Batch in einem separaten Thread gesendet.

Was wird von Application Insights überwacht?

Application Insights hilft Entwicklungsteams zu verstehen, wie ihre Anwendung funktioniert und genutzt wird.

Application Insights überwacht Folgendes:

  • Anforderungsraten, Antwortzeiten und Fehlerraten

    Finden Sie heraus, welche Seiten zu welchen Tageszeiten am häufigsten verwendet werden und wo sich Ihre Benutzer befinden. Stellen Sie fest, welche Seiten die beste Leistung aufweisen. Vergleichen Sie Ihre Antwortzeiten und Ausfallraten mit Ihrem Datenverkehrsaufkommen.

  • Ob externe Dienste Sie ausbremsen.

  • Ausnahmen in Anwendungen.

    Analysieren Sie die aggregierten Statistiken, oder wählen Sie bestimmte Instanzen aus, und untersuchen Sie die Stapelüberwachung auf verwandte Anforderungen. Application Insights meldet sowohl auf dem Server als auch auf dem Client auftretende Ausnahmen.

  • Ladeleistung der Webseite gemäß Meldung des Webbrowsers des Benutzers.

  • AJAX-Aufrufe von Webseiten, einschließlich Antwortzeiten und Fehlerraten.

  • Anzahl von Benutzern und Sitzungen.

  • Leistungsindikatoren von Ihren Windows- oder Linux-Servercomputern, z.B. CPU, Arbeitsspeicher und Netzwerkverwendung.

  • Hostdiagnose von Docker oder Azure.

  • Ablaufverfolgungsprotokolle zur Diagnose Ihrer App. Auf diese Weise können Sie Ablaufverfolgungsereignisse mit Anforderungen korrelieren.

  • Benutzerdefinierte Ereignisse und Metriken, die Sie selbst in den Client- oder Servercode schreiben. Beispielsweise können Sie Ereignisse wie verkaufte Artikel oder gewonnene Spiele verfolgen.

Wo finde ich meine Telemetriedaten?

Hier finden Sie Möglichkeiten, wie Sie Ihre Telemetriedaten anzeigen und verfolgen können:

  • Intelligente Erkennung

    Automatische Warnungen sind an die normalen Telemetriemuster Ihrer App angepasst und werden ausgelöst, wenn etwas nicht den üblichen Mustern entspricht. Sie können auch Warnungen auf bestimmten Ebenen von benutzerdefinierten oder standardmäßigen Metriken festlegen.

    Screenshot der intelligenten Erkennung in Application Insights

  • Anwendungszuordnung

    Mit der Anwendungsübersicht können Sie Leistungsengpässe oder Fehlerhotspots in allen Komponenten Ihrer verteilten Anwendung erkennen.

    Screenshot der Anwendungsübersicht in Application Insights

  • Profiler

    Sie können Profiler für ASP.NET- und ASP.NET Core-Apps verwenden, die in Azure App Service auf der Dienstebene „Basic“ oder höher ausgeführt werden.

    Screenshot des Profilers in Application Insights

  • Nutzungsanalyse

    Mit diesem Feature können Sie die Benutzersegmentierung und -bindung analysieren.

    Screenshot der Nutzungsanalyse in Application Insights

  • Suchen

    Mit der Suchfunktion können Sie einzelne Telemetrieelemente, wie z. B. Seitenaufrufe, Ausnahmen oder Webanforderungen, finden und erkunden.

    Screenshot der Suchfunktion in Application Insights

  • Metrik-Explorer

    Mit dem Metrik-Explorer können Sie Diagramme erstellen, Trends visuell korrelieren und Spitzen und Rückgänge in Metriken untersuchen.

    Screenshot des Metrik-Explorers in Azure Monitor

  • Live Metrics Stream

    Wenn Sie einen neuen Build bereitstellen, beobachten Sie die Leistungsindikatoren nahezu in Echtzeit, um sicherzustellen, dass alles wie erwartet funktioniert.

    Screenshot von Live Metrics Stream in Application Insights

  • Log Analytics

    Beantworten Sie mit einer leistungsstarken Abfragesprache schwierige Fragen zu Leistung und Nutzung Ihrer Anwendung.

    Screenshot von Log Analytics in Azure Monitor

  • Momentaufnahmedebugger

    Erstellen Sie eine Debugmomentaufnahme Ihrer aktiven Webanwendung.

    Screenshot des Momentaufnahmedebuggers in Application Insights

  • Power BI

    Integrieren Sie Nutzungsmetriken und andere Business Intelligence-Daten.

    Screenshot von Power BI

  • Fortlaufendem Export

    Exportieren Sie Rohdaten in Speicher, sobald sie eingehen.

    Screenshot des fortlaufenden Exports in Application Insights

Was ist der ITSM-Connector?

Der ITSM-Connector (IT-Service-Management) für Azure bietet bidirektionale Integration zwischen Azure-Überwachungstools und Ihren ITSM-Tools wie z. B.:

  • ServiceNow
  • Provance
  • Cherwell
  • System Center Service Manager

Sie können Azure-Überwachungstools für folgende Zwecke in ITSMC integrieren:

  • Erstellen oder Aktualisieren von Arbeitselementen in den ITSM-Tools auf Grundlage von Azure-Warnungen
  • Abrufen von Incident- und Änderungsantragsdaten aus ITSM-Tools in Azure Log Analytics

Mit den Überwachungstools von Azure können Sie Probleme ermitteln, analysieren und beheben. Die Arbeitselemente, die sich auf ein Issue beziehen, werden jedoch meist in einem ITSM-Tool gespeichert. Es ist sinnvoller, ein Ticketsystem mit dem ITSMC-Tool zu implementieren. Auf diese Weise müssen Sie nicht mehr zwischen Ihrem ITSM-Tool und den Überwachungstools von Azure hin- und herwechseln, sondern erhalten alle benötigten Informationen an einem Ort. ITSMC verbessert die Problembehandlung, indem der Zeitaufwand für die Lösung von Problemen reduziert wird.