Problembehandlung mithilfe von Ressourcenprotokollen
Diese Schrittanleitung enthält eine Übersicht über Azure Web PubSub-Ressourcenprotokolle und einige Tipps zur Verwendung der Protokolle zur Behandlung bestimmter Probleme. Protokolle können zur Problemidentifikation, Verbindungsverfolgung, Nachrichtenablaufverfolgung, HTTP-Anforderungsablaufverfolgung und Analyse verwendet werden.
Was sind Ressourcenprotokolle?
Es gibt drei Arten von Ressourcenprotokollen: Konnektivität, Messaging und HTTP-Anforderungen.
- Konnektivitätsprotokolle enthalten detaillierte Informationen für Azure Web PubSub-Hubverbindungen. Hierzu gehören beispielsweise grundlegende Informationen (Benutzer-ID, Verbindungs-ID usw.) und Ereignisinformationen (Verbinden, Trennen usw.).
- Messagingprotokolle bieten Ablaufverfolgungsinformationen für die Azure Web PubSub-Hubnachrichten, die über den Azure Web PubSub-Dienst empfangen und gesendet werden. Zum Beispiel die Ablaufverfolgungs-ID und der Nachrichtentyp der Nachricht.
- HTTP-Anforderungsprotokolle stellen Ablaufverfolgungsinformationen für HTTP-Anforderungen an den Azure Web PubSub-Dienst bereit. z. B. die HTTP-Methode und den Statuscode. In der Regel wird die HTTP-Anforderung im Protokoll erfasst, wenn sie beim Dienst eingeht oder ihn verlässt.
Erfassen von Ressourcenprotokollen mithilfe des Live-Ablaufverfolgungstools
Das Live-Ablaufverfolgungstool des Azure Web PubSub-Diensts verfügt über die Möglichkeit, Ressourcenprotokolle in Echtzeit zu sammeln, was für die Problembehandlung in Ihrer Entwicklungsumgebung hilfreich ist. Das Live-Ablaufverfolgungstool kann Verbindungsprotokolle, Messagingprotokolle und HTTP-Anforderungsprotokolle erfassen.
Hinweis
Die folgenden Überlegungen gelten für die Verwendung des Live-Ablaufverfolgungstools:
- Die vom Liveablaufverfolgungs-Tool aufgezeichneten Echtzeit-Ressourcenprotokolle werden als Nachrichten (ausgehender Datenverkehr) abgerechnet.
- Das Live-Ablaufverfolgungstool unterstützt derzeit keine Microsoft Entra-Autorisierung. Sie müssen Zugriffsschlüssel aktivieren, um die Live-Ablaufverfolgung zu verwenden. Wählen Sie unter EinstellungenSchlüssel aus, und aktivieren Sie dann die Option Zugriffsschlüssel.
- Für Free-Instanzen des Azure Web PubSub-Diensts gilt beim ausgehenden Datenverkehr eine Beschränkung auf 20.000 Nachrichten pro Tag. Die Liveablaufverfolgung kann dazu führen, dass Sie unerwartet den täglichen Grenzwert erreichen.
Starten des Liveablaufverfolgungs-Tools
Hinweis
Wenn Sie Zugriffsschlüssel aktivieren, verwenden Sie Zugriffstoken zum Authentifizieren des Live-Ablaufverfolgungstools. Andernfalls verwenden Sie Microsoft Entra ID zum Authentifizieren des Live-Ablaufverfolgungstools. Auf der Seite „Schlüssel“ für SignalR Service im Azure-Portal können Sie überprüfen, ob Zugriffsschlüssel aktiviert sind oder nicht.
Schritte für aktivierte Zugriffsschlüssel
Wechseln Sie zum Azure-Portal und Ihrer SignalR Service-Seite.
Wählen Sie im Menü links unter Überwachung die Einstellungen der Live-Ablaufverfolgung aus.
Wählen Sie Liveablaufverfolgung aktivieren aus.
Wählen Sie die Schaltfläche Speichern aus. Es dauert einen Moment, bis die Änderungen wirksam werden.
Wenn die Aktualisierung abgeschlossen ist, wählen Sie Tool für die Liveablaufverfolgung öffnen aus.
Schritte für deaktivierte Zugriffsschlüssel
Zuweisen der API-Berechtigung zum Live-Ablaufverfolgungstool für sich selbst
- Wechseln Sie zum Azure-Portal und Ihrer SignalR Service-Seite.
- Wählen Sie Zugriffssteuerung (IAM) aus.
- Klicken Sie auf der neuen Seite auf Hinzufügen und dann auf Rollenzuweisung.
- Legen Sie auf der neuen Seite den Fokus auf die Registerkarte Rollen der Stellenfunktion, wählen Sie die Rolle SignalR Service-Besitzer aus, und klicken Sie dann auf Weiter.
- Klicken Sie auf der Seite Mitglieder auf +Mitglieder auswählen.
- Suchen Sie im neuen Bereich nach Mitgliedern, wählen Sie sie aus, und klicken Sie dann auf Auswählen.
- Klicken Sie auf Überprüfen und zuweisen, und warten Sie, bis die Benachrichtigung abgeschlossen ist.
Anzeigen des Tools für die Liveablaufverfolgung
Wechseln Sie zum Azure-Portal und Ihrer SignalR Service-Seite.
Wählen Sie im Menü links unter Überwachung die Einstellungen der Live-Ablaufverfolgung aus.
Wählen Sie Liveablaufverfolgung aktivieren aus.
Wählen Sie die Schaltfläche Speichern aus. Es dauert einen Moment, bis die Änderungen wirksam werden.
Wenn die Aktualisierung abgeschlossen ist, wählen Sie Tool für die Liveablaufverfolgung öffnen aus.
Anmelden mit Ihrem Microsoft-Konto
- Das Live-Ablaufverfolgungstool öffnet ein Microsoft-Anmeldefenster. Wenn kein Fenster angezeigt wird, erlauben Sie Popupfenster in Ihrem Browser.
- Warten Sie, bis in der Statusleiste Bereit angezeigt wird.
Aufzeichnen der Ressourcenprotokolle
Das Tool zur Liveablaufverfolgung bietet Funktionen, mit denen Sie die Ressourcenprotokolle zur Problembehandlung erfassen können.
- Aufzeichnen: Beginnen Sie mit dem Aufzeichnen der Echtzeit-Ressourcenprotokolle über die Azure Web PubSub-Instanz mit dem Liveablaufverfolgungs-Tool.
- Clear (Löschen): Löschen Sie die aufgezeichneten Echtzeit-Ressourcenprotokolle.
- Protokollfilter: Im Liveablaufverfolgungs-Tool können Sie die aufgezeichneten Echtzeit-Ressourcenprotokolle nach einem bestimmten Schlüsselwort filtern. Die allgemeinen Trennzeichen (z. B. Leerzeichen, Komma, Semikolon usw.) werden als Teil des Schlüsselworts behandelt.
- Status: Der Status zeigt an, ob das Liveablaufverfolgungs-Tool mit der jeweiligen Instanz verbunden oder von dieser getrennt ist.
Die vom Liveablaufverfolgungs-Tool aufgezeichneten Echtzeit-Ressourcenprotokolle enthalten ausführliche Informationen für die Problembehandlung.
Name | Beschreibung |
---|---|
Time | Protokollereigniszeit |
Protokollebene | Folgende Protokollereignisebenen sind möglich: „Ablaufverfolgung“, „Debuggen“, „Information“, „Warnung“, „Fehler“. |
Veranstaltungsname | Vorgangsname des Ereignisses. |
`Message` | Detaillierte Nachricht für das Ereignis |
Ausnahme | Die Laufzeitausnahme des Azure Web PubSub-Diensts |
Hub | Benutzerdefinierter Hubname |
Verbindungs-ID | Identität der Verbindung. |
Benutzerkennung | Benutzeridentität |
IP | Client-IP-Adresse |
Routenvorlage | Die Routenvorlage der API |
HTTP-Methode | Die HTTP-Methode (POST/GET/PUT/DELETE) |
URL | Der Uniform Resource Locator |
Ablaufverfolgungs-ID | Der eindeutige Bezeichner für den Aufruf |
Statuscode | Der HTTP-Antwortcode |
Duration | Die Dauer zwischen Empfang der Anforderung und Verarbeitung der Anforderung |
Header | Die zusätzlichen Informationen, die vom Client und vom Server mit einer HTTP-Anforderung oder -Antwort übergeben werden |
Erfassen von Ressourcenprotokollen mit Azure Monitor
Aktivieren von Ressourcenprotokollen
Derzeit unterstützt Azure Web PubSub die Integration in Azure Storage.
Navigieren Sie zum Azure-Portal.
Wählen Sie auf der Seite Diagnoseeinstellungen Ihrer Azure Web PubSub-Dienstinstanz die Option + Diagnoseeinstellung hinzufügen aus.
Geben Sie im Feld Name der Diagnoseeinstellung den Namen der Einstellung ein.
Wählen Sie unter Kategoriedetails die benötigten Protokollkategorien aus.
Aktivieren Sie unter Zieldetails das Kontrollkästchen bei In ein Speicherkonto archivieren.
Wählen Sie Speichern aus, um die Diagnoseeinstellung zu speichern.
Hinweis
Das Speicherkonto sollte sich in derselben Region wie der Azure Web PubSub-Dienst befinden.
Archivieren in ein Azure Storage-Konto
Protokolle werden im Speicherkonto gespeichert, das im Bereich Diagnoseeinstellungen konfiguriert ist. Ein Container mit dem Namen insights-logs-<CATEGORY_NAME>
wird automatisch erstellt, um Ressourcenprotokolle zu speichern. In dem Container werden Protokolle in der Datei resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json
gespeichert. Der Pfad setzt sich aus resource ID
und Date Time
zusammen. Die Protokolldateien werden anhand der hour
aufgeteilt. Der Minutenwert ist immer m=00
.
Alle Protokolle werden im JavaScript Object Notation (JSON)-Format gespeichert. Jeder Eintrag enthält Zeichenfolgenfelder im nachfolgend beschriebenen Format.
JSON-Zeichenfolgen im Archivprotokoll enthalten Elemente, die in den folgenden Tabellen aufgeführt sind:
Format
Name | Beschreibung |
---|---|
time | Protokollereigniszeit |
level | Protokollereignisebene |
resourceId | Ressourcen-ID Ihres Azure SignalR Service. |
location | Standort Ihres Azure SignalR Service. |
category | Kategorie des Protokollereignisses. |
operationName | Vorgangsname des Ereignisses. |
callerIpAddress | IP-Adresse Ihres Servers oder Clients |
properties | Detaillierte Eigenschaften im Zusammenhang mit diesem Protokollereignis. Weitere Details finden Sie in der unten stehenden Tabelle. |
Eigenschaftentabelle
Name | BESCHREIBUNG |
---|---|
collection | Sammlung des Protokollereignisses. Zulässige Werte sind Connection , Authorization und Throttling . |
connectionId | Identität der Verbindung. |
userId | Identität des Benutzers. |
message | Ausführliche Meldung des Protokollereignisses. |
Hub | Vom Benutzer definierter Hubname |
routeTemplate | Die Routenvorlage der API |
httpMethod | Die HTTP-Methode (POST/GET/PUT/DELETE) |
url | Der Uniform Resource Locator |
traceId | Der eindeutige Bezeichner für den Aufruf |
statusCode | Der HTTP-Antwortcode |
duration | Die Dauer zwischen dem Empfang und der Verarbeitung der Anforderung |
headers | Die zusätzlichen Informationen, die vom Client und vom Server mit einer HTTP-Anforderung oder -Antwort übergeben werden |
Es folgt ein Codebeispiel für eine JSON-Zeichenfolge im Archivierungsprotokoll:
{
"properties": {
"message": "Connection started",
"collection": "Connection",
"connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
"userId": null
},
"operationName": "ConnectionStarted",
"category": "ConnectivityLogs",
"level": "Informational",
"callerIpAddress": "167.220.255.79",
"resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
"time": "2021-09-17T05:25:05Z",
"location": "westus"
}
Archivieren in Azure Log Analytics
So senden Sie Protokolle an einen Log Analytics-Arbeitsbereich:
- Wählen Sie auf der Seite Diagnoseeinstellung unter Zieldetails die Option **An Log Analytics-Arbeitsbereich senden aus.
- Wählen Sie das Abonnement aus, das Sie verwenden möchten.
- Wählen Sie den Log Analytics-Arbeitsbereich aus, der als Ziel für die Protokolle verwendet werden soll.
Führen Sie die folgenden Schritte aus, um die Ressourcenprotokolle anzuzeigen:
Wählen Sie
Logs
in Ihrem Ziel-Log Analytics.Geben Sie
WebPubSubConnectivity
,WebPubSubMessaging
oderWebPubSubHttpRequest
ein, und wählen Sie dann den Zeitraum für die Protokollabfrage aus. Informationen zu komplexeren Abfragen finden Sie unter Erste Schritte mit Log Analytics in Azure Monitor.
Führen Sie die folgenden Schritte aus, um eine Beispielabfrage für den SignalR-Dienst zu verwenden.
- Wählen Sie
Logs
in Ihrem Ziel-Log Analytics. - Wählen Sie
Queries
zum Öffnen des Abfrage-Explorers aus. - Wählen Sie
Resource type
, um Beispielabfragen im Ressourcentyp zu gruppieren. - Wählen Sie
Run
aus, um das Skript auszuführen.
Archivprotokollspalten enthalten Elemente, die in der folgenden Tabelle aufgeführt sind:
Name | Beschreibung |
---|---|
TimeGenerated | Protokollereigniszeit |
Collection | Sammlung des Protokollereignisses. Zulässige Werte sind Connection , Authorization und Throttling . |
Vorgangsname | Vorgangsname des Ereignisses. |
Standort | Standort Ihres Azure SignalR Service. |
Ebene | Protokollereignisebene |
CallerIpAddress | IP-Adresse Ihres Servers/Clients. |
`Message` | Ausführliche Meldung des Protokollereignisses. |
UserId | Identität des Benutzers. |
ConnectionId | Identität der Verbindung. |
ConnectionType | Typ der Verbindung. Zulässige Werte sind: Server | Client . Server : serverseitige Verbindung; Client : clientseitige Verbindung |
TransportType | Transporttyp der Verbindung. Zulässige Werte sind: Websockets | ServerSentEvents | LongPolling . |
Problembehandlung mit den Ressourcenprotokollen
Wenn Sie unerwartete Änderungen an der Anzahl der Verbindungen feststellen – sei es eine Zu- oder eine Abnahme –, können Sie Ressourcenprotokolle nutzen, um das Problem zu beheben. Typische, häufig auftretende Probleme sind unerwartete Änderungen bei der Anzahl der Verbindungen, das Erreichen von Verbindungsgrenzwerten und fehlgeschlagene Autorisierungen.
Unerwartete Änderungen an der Anzahl von Verbindungen
Unerwartete Verbindungsunterbrechungen
Wenn eine Verbindung getrennt wird, zeichnet die Ressourcenprotokolle das Trennungsereignis mit ConnectionAborted
oder ConnectionEnded
in operationName
auf.
Der Unterschied zwischen ConnectionAborted
und ConnectionEnded
besteht darin, dass ConnectionEnded
eine erwartete Trennung ist, die von client- oder serverseitiger Seite ausgelöst wird. Während die ConnectionAborted
in der Regel ein unerwartetes Verbindungsabbruchereignis ist und der Grund für die Trennung in message
bereitgestellt wird.
Die Gründe für Abbrüche sind in der folgenden Tabelle aufgeführt:
`Reason` | BESCHREIBUNG |
---|---|
Anzahl der Verbindungen erreicht das Limit. | Die Anzahl der Verbindungen erreicht das Limit Ihres aktuellen Tarifs. Erwägen Sie, die Diensteinheit hochzuskalieren. |
Erneutes Laden des Diensts, Wiederherstellen der Verbindung. | Azure Web PubSub-Dienst wird neu geladen. Sie müssen Ihren eigenen Mechanismus für das Wiederverbinden implementieren oder manuell eine neue Verbindung mit dem Azure Web PubSub-Dienst herstellen. |
Vorübergehender interner Serverfehler. | Ein vorübergehender Fehler tritt im Azure Web PubSub-Dienst auf; sollte automatisch wiederhergestellt werden. |
Unerwarteter Anstieg der Verbindungen
Wenn die Anzahl der Clientverbindungen unerwartet zunimmt, müssen Sie zunächst die überflüssigen Verbindungen herausfiltern. Sie können Ihrer Testclientverbindung eine eindeutige Testbenutzer-ID hinzufügen. Überprüfen Sie dann die Ressourcenprotokolle; Wenn mehr als eine Clientverbindung dieselbe Testbenutzer-ID oder IP aufweist, erstellt der Client wahrscheinlich mehr Verbindungen als erwartet. Überprüfen Sie Ihren Clientcode, um die Quelle der zusätzlichen Verbindungen zu finden.
Autorisierungsfehler
Wenn Sie bei Clientanforderungen die Rückgabe „401 – Nicht autorisiert“ erhalten, überprüfen Sie Ihre Ressourcenprotokolle. Wenn Sie Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>
finden, bedeutet dies, dass alle Zielgruppen in Ihrem Zugriffstoken ungültig sind. Versuchen Sie, die im Protokoll vorgeschlagenen gültigen Zielgruppen zu verwenden.
Drosselung
Wenn Sie feststellen, dass Sie keine Clientverbindungen mit dem Azure Web PubSub-Dienst herstellen können, überprüfen Sie Ihre Ressourcenprotokolle. Wenn im Ressourcenprotokoll Connection count reaches limit
angezeigt wird, haben Sie zu viele Verbindungen mit dem Azure Web PubSub-Dienst hergestellt und das Limit der Verbindungsanzahl erreicht. Erwägen Sie die Hochskalierung Ihrer Azure Web PubSub-Dienstinstanz. Wenn Message count reaches limit
im Ressourcenprotokoll angezeigt wird und Sie die Stufe "Frei" verwenden, bedeutet dies, dass Sie das Kontingent von Nachrichten verwendet haben. Wenn Sie weitere Nachrichten senden möchten, sollten Sie ihre Azure Web PubSub-Dienstinstanz auf die Standardebene ändern. Weitere Informationen finden Sie unter Azure Web PubSub-Dienst – Preise.