Protokollierung, Metriken und Warnungen in Azure

Um zu verstehen, wie Ihr Azure-Dienst funktioniert, müssen Sie verstehen, welche Protokollierung, Metriken und Warnungen verfügbar sind und wie sie verwendet werden.

Gründe für die Verwendung von Protokollierung, Metriken und Warnungen?

Verwenden Sie die folgende Tabelle, um zu verstehen, welche Informationen Sie zu Ihren Azure-Ressourcen erhalten können.

Typ

Beispielfragen

Azure-Hosting

Hostingdienste wie Azure-App Service und Azure Function bieten verschiedene Arten von Feedback, um Fragen zu beantworten, z. B.:

  • Hat meine Anwendung (oder mein Container) erfolgreich bereitgestellt?
  • Wurde meine Anwendung (oder mein Container) erfolgreich gestartet?
  • Wird meine Anwendung (oder mein Container) erfolgreich ausgeführt?

Azure-Dienst

Azure bietet Metriken für Dienste, mit denen Sie Antworten erhalten können, z. B.:

  • Wie ausgelastet ist der Dienst?
  • Welche Fehler erzeugt der Dienst?
  • Ist mein Dienst so ausgelastet, dass er nicht mit nachfragen kann?
  • Habe ich mein Preisniveau-Transaktionskontingent erreicht?

Azure SDK

Das Azure SDK bietet Zugriff auf Azure aus vielen Programmiersprachen. Die SDKs bieten Protokollierung, damit Sie Fragen stellen können, z. B.:

  • Was tut das SDK selbst?
  • Was tut mein Code?

Code oder Container

Um zu verstehen, wie Ihr eigener Code oder Container funktioniert, integrieren Sie Application Insights aus Azure Monitor. Application Insights ermöglicht es Ihnen, Protokolle über Dienste hinweg für eine einzelne Anwendung zu erfassen, um Fragen zu stellen, z. B.:

  • Welche Ausnahmen löst Ihr Code aus?
  • Welche Ereignisse werden vom Code ausgelöst?
  • Wie interagiert Ihr Code mit Abhängigkeiten?

Was wird für Protokollierung, Metriken und Warnungen bereitgestellt?

Typ Verfügbarkeit Beschreibung
Metriken Ohne Konfiguration bereitgestellt Beginnen Sie mit Metriken, da jeder Azure-Dienst einige Metriken enthält, damit Sie sehen können, wie er ausgeführt wird.
Warnungen Variantenkonfigurator verwenden Konfigurieren Sie Warnungen, die benachrichtigt werden sollen, wenn negative oder ablaufende Verhaltensweisen auftreten.
Protokollierung Variantenkonfigurator verwenden Einige Dienste, z. B. Hostingdienste, haben Protokollierung, damit Sie verstehen können, wie Sich Ihr Code oder Container verhält. Möglicherweise müssen Sie die Protokollierung konfigurieren, bevor Protokolldateien angezeigt werden.
Benutzerdefinierte Protokollierung Konfigurierbar über Code Aus Ihrem eigenen Code können Sie sich mit dem Application Insights SDK für Server und Clientanwendung bei Azure Monitor anmelden. Der Code muss nicht in Azure gehostet werden, um sich bei Azure Monitor anzumelden.

Anzeigen von Metriken im Azure-Portal

Anzeigen von Metriken für Ihre Ressource auf geplanter Basis im Azure-Portal im Abschnitt "Überwachung –> Metriken".

Screenshot to view metrics for Cognitive Services in Azure portal.

Anzeigen von Warnungen in Azure-Portal

Legen Sie im Azure-Portal Warnungen für die einzelnen Ressourcen fest. Warnungen können bestimmte Metriken, Kommunikationsdatenströme (z. B. E-Mail) und die Häufigkeit enthalten. Zu den gängigen Warnungen zählen folgende:

  • Requests
  • Antwortzeit
  • HTTP-Serverfehler (in Hostingumgebungen)

Set common alerts for your resource such as requests, response time and http server errors (for your hosting environment resources).

Anzeigen der Protokollierung des gehosteten Diensts in Azure-Portal

Gehostete Anwendungen und Container können so konfiguriert werden, dass Informationen zu folgenden Themen protokolliert werden:

  • deployment
  • Start-up
  • Laufzeit

Aktivieren Sie diese Protokolle, um zu verstehen, wie sich Ihre gehostete Anwendung verhält. Diese Protokolle sind wahrscheinlich der erste Ort, an dem Sie erfahren, dass Ihre Bereitstellung fehlgeschlagen ist, oder Ihre Startkonfiguration ist falsch konfiguriert oder fehlende Abhängigkeiten.

Protokollierung bei Stdout und Stderr

Die benutzerdefinierte Protokollierung wird automatisch von Azure Web Apps und Azure-Funktionen bereitgestellt, wenn Sie die richtigen Protokollierungsfunktionen verwenden:

  • Web-Apps verwenden console.log('your message here').
  • Funktions-Apps verwenden context.log('your message here').

Benutzerdefinierte Protokollierung in Azure

Sie können eine umfangreichere benutzerdefinierte Protokollierung mit Azure Monitor Application Insights hinzufügen, die Serverszenarien (Node.js) und Client (Browser) bietet:

Aktivieren der Anwendungsprotokollierung mit Application Insights

Ihre beste und konfigurierbarste Protokollierungsauswahl ist Application Insights, die Folgendes bieten kann:

  • Standardprotokollierung
    • im Azure-Dienst
    • in Ihrem Quellcode abhängig von der Initialisierung
  • Benutzerdefinierte Protokollierung
    • aus Ihrer Bereitstellungspipeline
    • in Ihrem Quellcode

Aktivieren der Anwendungsprotokollierung für App Service

So aktivieren Sie die Anwendungshostprotokollierung im Azure-Portal:

  1. Wechseln Sie zu Überwachung –> App Service-Protokolle, aktivieren Sie die Anwendungsprotokollierung für das Dateisystem.
  2. Konfigurieren Sie das Kontingent (MB). Der Standardwert ist 35.
  3. Legen Sie den Wert für den Aufbewahrungszeitraum (Tage) auf einen Standardwert fest, z. B. 3 oder 7 Tage.
  4. Wählen Sie " Speichern" aus, um mit der Erfassung von Hostprotokollen zu beginnen.

Anzeigen von Anwendungsprotokollen für App Service

Wenn Sie Anwendungsprotokolle aktivieren, werden die Protokolle im Protokollordner Ihres Web App-Hosts gespeichert. Zeigen Sie die Protokolle entweder aus dem Azure-Portal oder der Visual Studio Code-Erweiterung für App Service an.

Zu den Protokolldateiformaten gehören:

  • Bereitstellung: {DATE-TIME}_{RANDOM-CHARS}_{docker}.log
  • Start und Laufzeit: {DATE-TIME}_{RANDOM-CHARS}_default_docker.log

Streamprotokolle für App Service

Verwenden Sie für App Service die folgende Tabelle, um weitere Informationen zum Streamen von Protokollen zu erhalten:

Methode Beschreibung
Azure CLI az webapp log tail
App Service-Erweiterung für VSCode Klicken Sie mit der rechten Maustaste auf die Ressource, und wählen Sie Start Streaming Logs (Streamen der Protokolle starten) aus.

Aktivieren der Anwendungsprotokollierung für Azure-Funktionen (Plan)

Siehe die Schritte zum Aktivieren der Hostprotokollierung für App Service

Aktivieren der Anwendungsprotokollierung für Azure-Funktionen (Verbrauch)

Wenn Sie die vom Kontextobjekt in Ihrem Quellcode bereitgestellte Protokollierung verwenden, werden diese Protokolle mit einer verbrauchsbasierten Funktionen-App im Abschnitt "Monitor" der einzelnen Funktionen bereitgestellt. Mit dem Azure-Portal können Sie die Protokolle auch streamen, wenn Anforderungen in die Funktion gelangen.

Abfragen Ihrer Application Insights-Protokolle mit der Kusto-Abfragesprache

Wenn Sie context.log in einer Funktions-App oder console.log in einer Web-App verwenden und Application Insights aktiviert ist, werden diese benutzerdefinierten Protokolle Ihrer Application Insights-Ressource in der Ablaufverfolgungstabelle hinzugefügt. Wenn Sie dem benutzerdefinierten Protokoll eine bestimmte Zeichenfolge (etwa JavaScript) voranstellen, können Sie in der Ablaufverfolgungstabelle nach allen Nachrichten mit diesem Präfix suchen, wenn Sie das Protokoll auf diese benutzerdefinierten Einträge reduzieren möchten. Dazu können Sie die Kusto-Abfragesprache verwenden.

traces
| where message contains "JavaScript"

If you prefix your custom log with a specific string, such as `JavaScript`, you can search the Trace table for any messages that contain that prefix when you want to reduce your log to just those custom entries.

Lokale Entwicklung mit Application Insights

Wenn Sie Application Insights ausprobieren, indem Sie Code lokal ausführen, der eines der Application Insights npm-Pakete verwendet, stellen Sie sicher, dass Sie die flush() Methode aufrufen, damit die Protokollierung sofort an Application Insights gesendet wird. Beachten Sie beim Anzeigen der Protokolle, dass es noch einige Minuten dauern kann, bis Ihre benutzerdefinierten Protokolle in Application Insights verfügbar sind.

Anzeigen von App-Fehlerdaten in Application Insights

Anzeigen von Fehlern für von Application Insights überwachte Ressourcen

View failures for Application Insights monitored resources.

Nächste Schritte