Überwachung von Webanwendungen in AzureWeb application monitoring on Azure

Azure-PaaS-Angebote (Platform-as-a-Service) verwalten Computeressourcen für Sie und verändern die Art und Weise, wie Sie Bereitstellungen überwachen.Azure platform as a service (PaaS) offerings manage compute resources for you and affect how you monitor deployments. Azure umfasst mehrere Überwachungsdienste, die jeweils eine bestimmte Rolle haben.Azure includes multiple monitoring services, each of which performs a specific role. Zusammen bieten diese Dienste eine umfassende Lösung für das Erfassen, Übertragen und Analysieren von Telemetriedaten von Ihrer Anwendung und den von ihnen genutzten Azure-Ressourcen.Together, these services deliver a comprehensive solution for collecting, analyzing, and acting on telemetry from your applications and the Azure resources they consume.

In diesem Szenario geht es um die Überwachungsdienste, die Sie nutzen können, und es wird ein Datenflussmodell für die Verwendung mit mehreren Datenquellen beschrieben.This scenario addresses the monitoring services you can use and describes a dataflow model for use with multiple data sources. In Bezug auf die Überwachung funktionieren viele Tools und Dienste für Azure-Bereitstellungen.When it comes to monitoring, many tools and services work with Azure deployments. In diesem Szenario wählen wir gezielt problemlos verfügbare Dienste aus, da sie auf einfache Weise genutzt werden können.In this scenario, we choose readily available services precisely because they are easy to consume. Weitere Überwachungsoptionen werden weiter unten in diesem Artikel beschrieben.Other monitoring options are discussed later in this article.

Relevante AnwendungsfälleRelevant use cases

Zu den weiteren relevanten Anwendungsfällen zählen:Other relevant use cases include:

  • Instrumentieren einer Webanwendung für die Überwachung von TelemetriedatenInstrumenting a web application for monitoring telemetry.
  • Sammeln von Front-End- und Back-End-Telemetriedaten für eine unter Azure bereitgestellte AnwendungCollecting front-end and back-end telemetry for an application deployed on Azure.
  • Überwachen von Metriken und Kontingenten, die Diensten unter Azure zugeordnet sindMonitoring metrics and quotas associated with services on Azure.

ArchitectureArchitecture

„Architekturdiagramm“

In diesem Szenario wird eine verwaltete Azure-Umgebung verwendet, um eine Anwendung und eine Datenebene zu hosten.This scenario uses a managed Azure environment to host an application and data tier. Die Daten durchlaufen das Szenario wie folgt:The data flows through the scenario as follows:

  1. Ein Benutzer interagiert mit der Anwendung.A user interacts with the application.
  2. Der Browser und App Service geben Telemetriedaten aus.The browser and app service emit telemetry.
  3. Application Insights sammelt und analysiert Integritäts-, Leistungs- und Nutzungsdaten von Anwendungen.Application Insights collects and analyzes application health, performance, and usage data.
  4. Entwickler und Administratoren können die Informationen zur Integrität, Leistung und Nutzung überprüfen.Developers and administrators can review health, performance, and usage information.
  5. Azure SQL-Datenbank gibt Telemetriedaten aus.Azure SQL Database emits telemetry.
  6. Azure Monitor sammelt und analysiert Infrastrukturmetriken und -kontingente.Azure Monitor collects and analyzes infrastructure metrics and quotas.
  7. Log Analytics erfasst und analysiert Protokolle und Metriken.Log Analytics collects and analyzes logs and metrics.
  8. Entwickler und Administratoren können die Informationen zur Integrität, Leistung und Nutzung überprüfen.Developers and administrators can review health, performance, and usage information.

KomponentenComponents

  • Azure App Service ist ein PaaS-Dienst zum Erstellen und Hosten von Apps auf verwalteten virtuellen Computern.Azure App Service is a PaaS service for building and hosting apps in managed virtual machines. Die zugrunde liegenden Infrastrukturen, in denen Ihre Apps ausgeführt werden, werden für Sie verwaltet.The underlying compute infrastructures on which your apps run is managed for you. App Service ermöglicht das Überwachen von Kontingenten zur Ressourcenverwendung und App-Metriken, Protokollieren von Diagnoseinformationen und Anzeigen von Warnungen basierend auf Metriken.App Service provides monitoring of resource usage quotas and app metrics, logging of diagnostic information, and alerts based on metrics. Noch besser ist, dass Sie Application Insights zum Erstellen von Verfügbarkeitstests verwenden können, um Ihre Anwendung von unterschiedlichen Regionen aus zu testen.Even better, you can use Application Insights to create availability tests for testing your application from different regions.
  • Application Insights ist ein erweiterbarer, für Entwickler konzipierter Dienst zur Verwaltung der Anwendungsleistung (Application Performance Management, APM), der mehrere Plattformen unterstützt.Application Insights is an extensible Application Performance Management (APM) service for developers and supports multiple platforms. Er dient zum Überwachen der Anwendung, Erkennen von Anwendungsanomalien, z.B. schlechte Leistung und Fehler, und Senden von Telemetriedaten an das Azure-Portal.It monitors the application, detects application anomalies such as poor performance and failures, and sends telemetry to the Azure portal. Application Insights kann auch für die Protokollierung, die verteilte Ablaufverfolgung und benutzerdefinierte Anwendungsmetriken verwendet werden.Application Insights can also be used for logging, distributed tracing, and custom application metrics.
  • Azure Monitor stellt grundlegende Metriken und Protokolle der Infrastruktur für die meisten Dienste in Azure bereit.Azure Monitor provides base-level infrastructure metrics and logs for most services in Azure. Sie können auf unterschiedliche Weise mit den Metriken interagieren, z.B. die Diagrammdarstellung im Azure-Portal, den Zugriff über die REST-API oder die Abfrage über PowerShell oder die CLI.You can interact with the metrics in several ways, including charting them in Azure portal, accessing them through the REST API, or querying them using PowerShell or CLI. Azure Monitor bietet seine Daten auch direkt für Log Analytics und andere Dienste an, wo Sie diese abfragen und mit Daten aus anderen lokalen Quellen oder Cloudquellen kombinieren können.Azure Monitor also offers its data directly into Log Analytics and other services, where you can query and combine it with data from other sources on premises or in the cloud.
  • Log Analytics dient als Hilfe beim Korrelieren der von Application Insights gesammelten Nutzungs- und Leistungsdaten mit Konfigurations- und Leistungsdaten der Azure-Ressourcen, die die App unterstützen.Log Analytics helps correlate the usage and performance data collected by Application Insights with configuration and performance data across the Azure resources that support the app. In diesem Szenario wird der Azure Log Analytics-Agent verwendet, um SQL Server-Überwachungsprotokolle per Pushvorgang an Log Analytics zu übertragen.This scenario uses the Azure Log Analytics agent to push SQL Server audit logs into Log Analytics. Sie können im Azure-Portal auf dem Blatt „Log Analytics“ Abfragen schreiben und Daten anzeigen.You can write queries and view data in the Log Analytics blade of the Azure portal.

ÜberlegungenConsiderations

Eine empfohlene Methode besteht darin, Ihrem Code während der Entwicklung mit den Application Insights SDKs Application Insights hinzuzufügen und die Anpassung für jede Anwendung einzeln vorzunehmen.A recommended practice is adding Application Insights to your code during development using the Application Insights SDKs, and customizing per application. Diese Open Source-SDKs sind für die meisten Anwendungsframeworks verfügbar.These open-source SDKs are available for most application frameworks. Binden Sie die Nutzung der SDKs sowohl für Test- als auch für Produktionsbereitstellungen in Ihren Entwicklungsprozess ein, um die von Ihnen gesammelten Daten zu erweitern und zu steuern.To enrich and control the data you collect, incorporate the use of the SDKs both for testing and production deployments into your development process. Die wichtigste Voraussetzung besteht darin, dass für die App eine direkte oder indirekte „Sichtverbindung“ mit dem Applications Insights-Erfassungsendpunkt besteht, der mit einer über das Internet zugänglichen Adresse gehostet wird.The main requirement is for the app to have a direct or indirect line of sight to the Applications Insights ingestion endpoint hosted with an Internet-facing address. Sie können dann Telemetriedaten hinzufügen oder eine vorhandene Telemetriedatensammlung erweitern.You can then add telemetry or enrich an existing telemetry collection.

Die Überwachung der Laufzeit ist eine weitere einfache Einstiegsmöglichkeit.Runtime monitoring is another easy way to get started. Die gesammelten Telemetriedaten müssen mit Konfigurationsdateien gesteuert werden.The telemetry that is collected must be controlled through configuration files. Beispielsweise können Sie Laufzeitmethoden einfügen, mit denen Tools, z.B. Application Insights-Statusmonitor, die SDKs im richtigen Ordner bereitstellen und die richtigen Konfigurationen hinzufügen können, um mit der Überwachung zu beginnen.For example, you can include runtime methods that enable tools such as Application Insights Status Monitor to deploy the SDKs into the correct folder and add the right configurations to begin monitoring.

Wie Application Insights auch, verfügt Log Analytics über Tools zum Analysieren von Daten über mehrere Quellen hinweg, Erstellen von komplexen Abfragen und Senden von proaktiven Warnungen basierend auf den jeweils angegebenen Bedingungen.Like Application Insights, Log Analytics provides tools for analyzing data across sources, creating complex queries, and sending proactive alerts on specified conditions. Darüber hinaus können Sie Telemetriedaten im Azure-Portal anzeigen.You can also view telemetry in the Azure portal. Log Analytics erhöht den Nutzen von vorhandenen Überwachungsdiensten wie Azure Monitor und kann auch zum Überwachen von lokalen Umgebungen genutzt werden.Log Analytics adds value to existing monitoring services such as Azure Monitor and can also monitor on-premises environments.

Sowohl für Application Insights als auch für Log Analytics wird die Azure Log Analytics-Abfragesprache verwendet.Both Application Insights and Log Analytics use Azure Log Analytics Query Language. Sie können auch ressourcenübergreifende Abfragen verwenden, um die Telemetriedaten, die von Application Insights und Log Analytics gesammelt werden, in einer einzelnen Abfrage zu analysieren.You can also use cross-resource queries to analyze the telemetry gathered by Application Insights and Log Analytics in a single query.

Azure Monitor, Application Insights und Log Analytics senden Warnungen.Azure Monitor, Application Insights, and Log Analytics all send alerts. Beispielsweise sendet Azure Monitor Warnungen für Metriken auf Plattformebene, z.B. zur CPU-Auslastung, während Application Insights Warnungen für Metriken auf Anwendungsebene sendet, z.B. zur Serverreaktionszeit.For example, Azure Monitor alerts on platform-level metrics such as CPU utilization, while Application Insights alerts on application-level metrics such as server response time. Azure Monitor sendet Warnungen für neue Ereignisse im Azure-Aktivitätsprotokoll, während Log Analytics Warnungen zu Metriken oder Ereignisdaten für die Dienste ausgeben kann, für die die Nutzung konfiguriert ist.Azure Monitor alerts on new events in the Azure Activity Log, while Log Analytics can issue alerts about metrics or event data for the services configured to use it. Einheitliche Warnungen in Azure Monitor ist eine neue einheitliche Benutzeroberfläche für Warnungen in Azure, für die eine andere Taxonomie verwendet wird.Unified alerts in Azure Monitor is a new, unified alerting experience in Azure that uses a different taxonomy.

AlternativenAlternatives

In diesem Artikel werden problemlos verfügbare Überwachungsoptionen mit beliebten Features beschrieben, aber Sie haben eine große Auswahl, z.B. die Option zur Erstellung Ihrer eigenen Protokollierungsmechanismen.This article describes conveniently available monitoring options with popular features, but you have many choices, including the option to create your own logging mechanisms. Eine empfohlene Methode ist das Hinzufügen von Überwachungsdiensten, wenn Sie in einer Lösung Ebenen erstellen.A recommended practice is to add monitoring services as you build out tiers in a solution. Hier sind einige mögliche Erweiterungen und Alternativen aufgeführt:Here are some possible extensions and alternatives:

Skalierbarkeit und VerfügbarkeitScalability and availability

In diesem Szenario liegt der Schwerpunkt vor allem auf PaaS-Lösungen für die Überwachung, da Sie damit bequem für Verfügbarkeit und Skalierbarkeit sorgen können und dafür Vereinbarungen zum Servicelevel (SLAs) vorhanden sind.This scenario focuses on PaaS solutions for monitoring in large part because they conveniently handle availability and scalability for you and are backed by service-level agreements (SLAs). App Services verfügt beispielsweise über eine garantierte SLA für die Verfügbarkeit.For example, App Services provides a guaranteed SLA for its availability.

Für Application Insights gelten Grenzwerte für die Anzahl von Anforderungen, die pro Sekunde verarbeitet werden können.Application Insights has limits on how many requests can be processed per second. Wenn der Grenzwert für die Anforderungen überschritten wird, kommt es ggf. zu einer Drosselung der Nachrichten.If you exceed the request limit, you may experience message throttling. Um eine Drosselung zu verhindern, können Sie eine Filterung oder Sampling zum Reduzieren der Datenrate implementieren.To prevent throttling, implement filtering or sampling to reduce the data rate

Für die Aspekte der Hochverfügbarkeit für die von Ihnen ausgeführte App ist aber der Entwickler verantwortlich.High availability considerations for the app you run, however, are the developer's responsibility. Informationen zur Skalierung finden Sie beispielsweise im Abschnitt Überlegungen zur Skalierbarkeit in der Referenzarchitektur für einfache Webanwendungen.For information about scale, for example, see the Scalability considerations section in the basic web application reference architecture. Nachdem eine App bereitgestellt wurde, können Sie Tests zum Überwachen der Verfügbarkeit einrichten, indem Sie Application Insights verwenden.After an app is deployed, you can set up tests to monitor its availability using Application Insights.

SicherheitSecurity

Die Anforderungen in Bezug auf vertrauliche Informationen und Konformität wirken sich auf die Sammlung, Aufbewahrung und Speicherung von Daten aus.Sensitive information and compliance requirements affect data collection, retention, and storage. Erfahren Sie mehr dazu, wie Application Insights und Log Analytics Telemetriedaten verarbeiten.Learn more about how Application Insights and Log Analytics handle telemetry.

Unter Umständen gelten auch die folgenden Sicherheitsaspekte:The following security considerations may also apply:

  • Entwickeln Sie einen Plan zur Verarbeitung von persönlichen Informationen, wenn es für Entwickler zulässig ist, eigene Daten zu sammeln oder vorhandene Telemetriedaten zu erweitern.Develop a plan to handle personal information if developers are allowed to collect their own data or enrich existing telemetry.
  • Berücksichtigen Sie die Datenaufbewahrung.Consider data retention. Für Application Insights werden Telemetriedaten beispielsweise 90 Tage lang aufbewahrt.For example, Application Insights retains telemetry data for 90 days. Archivieren Sie Daten, auf die der Zugriff längere Zeit möglich sein soll, mit Microsoft Power BI, dem fortlaufenden Export oder der REST-API.Archive data you want access to for longer periods using Microsoft Power BI, Continuous Export, or the REST API. Hierfür gelten die Speichergebühren.Storage rates apply.
  • Beschränken Sie den Zugriff auf Azure-Ressourcen, um den Datenzugriff zu steuern und festzulegen, wer Telemetriedaten über eine bestimmte Anwendung anzeigen kann.Limit access to Azure resources to control access to data and who can view telemetry from a specific application. Informationen zum Sperren des Zugriffs auf Telemetriedaten der Überwachung finden Sie unter Ressourcen, Rollen und Zugriffssteuerung in Application Insights.To help lock down access to monitoring telemetry, see Resources, roles, and access control in Application Insights.
  • Überlegen Sie, ob der Lese-/Schreibzugriff im Anwendungscode gesteuert werden sollte. So wird verhindert, dass Benutzer Versions- oder Tagmarkierungen hinzufügen, mit denen die Datenerfassung für die Anwendung eingeschränkt wird.Consider whether to control read/write access in application code to prevent users from adding version or tag markers that limit data ingestion from the application. Bei Application Insights können einzelne Datenelemente nach dem Senden an eine Ressource nicht mehr gesteuert werden. Wenn ein Benutzer also Zugriff auf Daten hat, hat er auch Zugriff auf alle Daten einer einzelnen Ressource.With Application Insights, there is no control over individual data items once they are sent to a resource, so if a user has access to any data, they have access to all data in an individual resource.
  • Fügen Sie Mechanismen für Governance hinzu, um bei Bedarf Richtlinien- oder Kostenkontrollen für Azure-Ressourcen zu erzwingen.Add governance mechanisms to enforce policy or cost controls over Azure resources if needed. Nutzen Sie beispielsweise Log Analytics für die sicherheitsbezogene Überwachung, z. B. Richtlinien und die rollenbasierte Zugriffssteuerung, oder verwenden Sie Azure Policy, um Richtliniendefinitionen zu erstellen, zuzuweisen und zu verwalten.For example, use Log Analytics for security-related monitoring such as policies and role-based access control, or use Azure Policy to create, assign and, manage policy definitions.
  • Zum Überwachen potenzieller Sicherheitsprobleme und Erlangen eines zentralen Überblicks über den Sicherheitszustand Ihrer Azure-Ressourcen können Sie auch Azure Security Center nutzen.To monitor potential security issues and get a central view of the security state of your Azure resources, consider using Azure Security Center.

PreisePricing

Die Gebühren für die Überwachung können sich schnell zu einem höheren Betrag anwachsen. Daher sollten Sie sich die Preise im Voraus ansehen, sich im Klaren darüber sein, was Sie überwachen, und die entsprechenden Gebühren für jeden Dienst prüfen.Monitoring charges can add up quickly, so consider pricing up front, understand what you are monitoring, and check the associated fees for each service. Azure Monitor stellt einfache Metriken kostenlos bereit, während sich die Überwachungskosten für Application Insights und Log Analytics nach der Menge der erfassten Daten und der Anzahl von durchgeführten Tests richten.Azure Monitor provides basic metrics at no cost, while monitoring costs for Application Insights and Log Analytics are based on the amount of data ingested and the number of tests you run.

Verwenden Sie als Einstiegshilfe den Preisrechner, um die Kosten zu schätzen.To help you get started, use the pricing calculator to estimate costs. Wenn Sie wissen möchten, welche Kosten für Ihren spezifischen Anwendungsfall entstehen, können Sie die unterschiedlichen Optionen ändern und an Ihre erwartete Bereitstellung anpassen.To see how the pricing would change for your particular use case, change the various options to match your expected deployment.

Telemetriedaten von Application Insights werden beim Debuggen und nach dem Veröffentlichen Ihrer App an das Azure-Portal gesendet.Telemetry from Application Insights is sent to the Azure portal during debugging and after you have published your app. Zu Testzwecken und zur Vermeidung von Gebühren wird eine begrenzte Menge von Telemetriedaten instrumentiert.For testing purposes and to avoid charges, a limited volume of telemetry is instrumented. Sie können den Grenzwert für die Telemetriedaten erhöhen, um weitere Indikatoren hinzuzufügen.To add more indicators, you can raise the telemetry limit. Informationen zu einer präziseren Steuerung finden Sie unter Erstellen von Stichproben in Application Insights.For more granular control, see Sampling in Application Insights.

Nach der Bereitstellung können Sie sich einen Live Metrics Stream mit Leistungsindikatoren ansehen.After deployment, you can watch a Live Metrics Stream of performance indicators. Diese Daten werden nicht gespeichert (Sie zeigen Echtzeitmetriken an), die Telemetriedaten können jedoch erfasst und später analysiert werden.This data is not stored — you are viewing real-time metrics — but the telemetry can be collected and analyzed later. Für Live Stream-Daten fallen keine Gebühren an.There is no charge for Live Stream data.

Die Abrechnung von Log Analytics erfolgt pro GB an Daten, die im Dienst erfasst werden.Log Analytics is billed per gigabyte (GB) of data ingested into the service. Die ersten 5 GB an Daten, die jeden Monat mit dem Azure Log Analytics-Dienst erfasst werden, sind kostenlos. Die Daten werden für die ersten 31 Tage ohne Gebühren in Ihrem Log Analytics-Arbeitsbereich aufbewahrt.The first 5 GB of data ingested to the Azure Log Analytics service every month is offered free, and the data is retained at no charge for first 31 days in your Log Analytics workspace.

Nächste SchritteNext steps

Nutzen Sie diese Ressourcen als Hilfe bei den ersten Schritten mit Ihrer eigenen Überwachungslösung:Check out these resources designed to help you get started with your own monitoring solution:

Referenzarchitektur für einfache WebanwendungenBasic web application reference architecture

Starten der Überwachung Ihrer ASP.NET-WebanwendungStart monitoring your ASP.NET Web Application

Sammeln von Daten über virtuelle Azure-ComputerCollect data about Azure Virtual Machines

Überwachen von Azure-Anwendungen und -RessourcenMonitoring Azure applications and resources

Suchen und Diagnostizieren von Laufzeitausnahmen mit Azure Application InsightsFind and diagnose run-time exceptions with Azure Application Insights