Sdílet prostřednictvím


Řešení potíží s protokoly prostředků

Tento průvodce postupy poskytuje přehled protokolů prostředků Azure Web PubSub a tipy pro použití protokolů k řešení problémů. Protokoly můžete použít k identifikaci problému, sledování připojení, trasování zpráv, trasování požadavků HTTP a analýze.

Co jsou protokoly prostředků?

Existují tři typy protokolů prostředků:

  • Protokoly připojení poskytují podrobné informace o připojeních centra Azure Web PubSub. Můžou obsahovat základní informace, jako je ID uživatele a ID připojení, nebo informace o událostech, jako je připojení a odpojení.
  • Protokoly zasílání zpráv poskytují informace o trasování zpráv centra, které se odesílají nebo přijímají prostřednictvím služby Azure Web PubSub, jako je ID trasování nebo typ zprávy.
  • Protokoly požadavků HTTP poskytují trasovací informace pro požadavky HTTP na službu Azure Web PubSub, jako je metoda HTTP nebo stavový kód. Požadavek HTTP se obvykle zaznamená, když dorazí do služby nebo z ní odejde.

Zachycení protokolů prostředků pomocí nástroje živého trasování

Nástroj živého trasování ve službě Azure Web PubSub může shromažďovat protokoly prostředků v reálném čase, což je užitečné při řešení problémů ve vašem vývojovém prostředí. Nástroj živého trasování může zaznamenávat protokoly připojení, protokoly zasílání zpráv a protokoly požadavků HTTP.

Při použití nástroje pro živé trasování byste měli zvážit následující faktory:

  • Protokoly prostředků v reálném čase, které zachytává nástroj pro živé trasování, se účtují jako zprávy (odchozí provoz).
  • Instance úrovně Free služby Azure Web PubSub má denní limit 20 000 zpráv (odchozí provoz). Denní limit můžete neočekávaně dosáhnout pomocí živého trasování.
  • Nástroj živého trasování v současné době nepodporuje autorizaci Microsoft Entra. Abyste mohli živé trasování používat, musíte povolit přístupové klíče. V části Nastavení vyberte Klíče a pak povolte přístupový klíč.

Spuštění nástroje živého trasování

Když povolíte přístupový klíč, použijete přístupový token k ověření nástroje živého trasování. V opačném případě použijete Microsoft Entra ID k ověření nástroje živého trasování. To, jestli je přístupový klíč povolený, zjistíte tak, že přejdete do podokna Klíče v instanci služby Azure SignalR na webu Azure Portal.

Otevření živého trasování při povolení přístupového klíče

  1. Přejděte na web Azure Portal a podokno služby SignalR.

  2. V nabídce služby v části Monitorování vyberte nastavení živého trasování.

  3. Vyberte Povolit živé trasování.

  4. Vyberte tlačítko Uložit. Změny se projeví za chvíli.

  5. Po dokončení aktualizace vyberte Otevřít nástroj Živé trasování.

    Snímek obrazovky s otevřením nástroje pro živé trasování

Otevřete nástroj živého trasování, když je přístupový klíč zakázaný.

Přiřazení oprávnění rozhraní API nástroje živého trasování sobě

  1. Přejděte na web Azure Portal a podokno služby SignalR.

  2. Vyberte Řízení přístupu (IAM) .

  3. Vyberte +Přidat a pak vyberte Přiřazení role.

  4. Na kartě Role funkce úlohy vyberte roli Vlastník služby SignalR a pak vyberte Další.

  5. V podokně Členové klikněte na +Vybrat členy.

  6. Vyhledejte a vyberte členy a klepněte na tlačítko Vybrat.

  7. Vyberte Zkontrolovat a přiřadit a počkejte na oznámení o dokončení.

Povolení nástroje živého trasování

  1. Přejděte na web Azure Portal a podokno služby SignalR.

  2. V nabídce služby v části Monitorování vyberte nastavení živého trasování.

  3. Vyberte Povolit živé trasování.

  4. Vyberte tlačítko Uložit. Změny se projeví za chvíli.

  5. Po dokončení aktualizace vyberte Otevřít nástroj Živé trasování.

    Snímek obrazovky s otevřením nástroje pro živé trasování

Přihlásit se pomocí účtu Microsoft

  1. Nástroj živého trasování způsobí, že se otevře přihlašovací okno Microsoftu. Pokud se neotevře žádné okno, povolte automaticky otevíraná okna v nastavení prohlížeče.

  2. Počkejte na zobrazení Připraveno na stavovém řádku.

Zachycení protokolů prostředků

Nástroj živého trasování vám může pomoct zachytit protokoly prostředků pro účely řešení potíží.

  • Zachytávání začne zaznamenávat protokoly prostředků v reálném čase z azure Web PubSub.
  • Vymaže zachycené protokoly prostředků v reálném čase.
  • Filtr protokolu filtruje zachycené protokoly prostředků v reálném čase jedním konkrétním klíčovým slovem. Běžné oddělovače, jako je mezera, čárka a středník, se považují za součást klíčového slova.
  • Stav ukazuje, jestli je nástroj živého trasování připojený nebo odpojený s konkrétní instancí.

Snímek obrazovky zachycení protokolů prostředků pomocí nástroje živého trasování

Protokoly prostředků v reálném čase zachycené nástrojem pro živé trasování obsahují podrobné informace pro řešení potíží.

Název Popis
Time Protokolovat čas události
Úroveň protokolu Úroveň událostí protokolu (Trace, Debug, WarningInformationalnebo Error)
Název události Název operace události
Zpráva Podrobná zpráva o události
Výjimka Výjimka modulu runtime služby Azure Web PubSub
Centrum Uživatelsky definovaný název centra
ID připojení Identita připojení
ID uživatele Identita uživatele
IP IP adresa klienta
Šablona trasy Šablona trasy rozhraní API
Metoda HTTP Metoda HTTP (POST, GETnebo PUTDELETE)
Adresa URL Lokátor jednotek prostředků
ID trasování Jedinečný identifikátor vyvolání
Stavový kód Kód odpovědi protokolu HTTP
Doba trvání Doba trvání mezi příjmem žádosti a zpracováním žádosti
Záhlaví Další informace předávané klientem a serverem s požadavkem nebo odpovědí HTTP

Zachycení protokolů prostředků pomocí služby Azure Monitor

Povolení protokolů prostředků

Azure Web PubSub v současné době podporuje integraci se službou Azure Storage.

  1. Přejděte na Azure Portal.

  2. V podokně Nastavení diagnostiky instance služby Azure Web PubSub vyberte + Přidat nastavení diagnostiky.

    Snímek obrazovky s zobrazením nastavení diagnostiky a vytvořením nového nastavení

  3. Do pole Název nastavení diagnostiky zadejte název nastavení.

  4. V podrobnostech o kategorii vyberte libovolnou kategorii protokolu, kterou potřebujete.

  5. V podrobnostech cíle vyberte Možnost Archivovat do účtu úložiště.

    Snímek obrazovky s konfigurací nastavení diagnostiky

  6. Výběrem možnosti Uložit uložte nastavení diagnostiky.

    Poznámka:

    Účet úložiště by měl být ve stejné oblasti jako služba Azure Web PubSub.

Archivace do účtu úložiště Azure

Protokoly se ukládají do účtu úložiště nakonfigurovaného v podokně nastavení diagnostiky. Kontejner s názvem insights-logs-<CATEGORY_NAME> se automaticky vytvoří pro ukládání protokolů prostředků. V kontejneru jsou protokoly uloženy v souboru 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. Cesta se zkombinuje a resource IDDate Time. Soubory protokolu jsou rozděleny podle hour. Hodnota minuty je vždy m=00.

Všechny protokoly se ukládají ve formátu JSON (JavaScript Object Notation). Každá položka obsahuje pole řetězců, která používají formát popsaný v následujících částech.

Řetězce JSON v archiválních protokolech obsahují prvky uvedené v následujících tabulkách.

Formát

Název Popis
time Protokolovat čas události
level Úroveň událostí protokolu
resourceId ID prostředku instance služby Azure SignalR Service
location Umístění instance služby Azure SignalR Service
category Kategorie události protokolu
operationName Název operace události
callerIpAddress IP adresa vašeho serveru nebo klienta
properties Podrobné vlastnosti související s touto událostí protokolu (viz následující tabulka)

Tabulka Vlastností

Název Popis
collection Shromažďování událostí protokolu (ConnectionAuthorizationneboThrottling)
connectionId Identita připojení
userId Identita uživatele
message Podrobná zpráva o události protokolu
hub Uživatelsky definovaný název centra
routeTemplate Šablona trasy rozhraní API
httpMethod Metoda HTTP (POST, GETnebo PUTDELETE)
url Lokátor jednotek prostředků
traceId Jedinečný identifikátor vyvolání
statusCode Kód odpovědi protokolu HTTP
duration Doba trvání mezi přijetí a zpracováním požadavku
headers Další informace předávané klientem a serverem s požadavkem nebo odpovědí HTTP

Následující kód je příkladem řetězce JSON v archivačním protokolu:

{
  "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"
}

Archivace do Azure Log Analytics

Odeslání protokolů do pracovního prostoru služby Log Analytics:

  1. V podokně Nastavení diagnostiky vyberte v části Podrobnosti o cíli možnost Odeslat do pracovního prostoru služby Log Analytics.

  2. V rozevíracím seznamu Předplatné vyberte předplatné, které chcete použít.

  3. Jako cíl protokolů vyberte pracovní prostor služby Log Analytics.

Pokud chcete zobrazit protokoly prostředků, postupujte takto:

  1. Vyberte protokoly v cílovém pracovním prostoru služby Log Analytics.

    Snímek obrazovky s položkou nabídky Log Analytics

  2. Pokud chcete zadat dotaz na protokol, zadejte WebPubSubConnectivitynebo WebPubSubHttpRequestWebPubSubMessaginga pak vyberte časový rozsah. Pokročilé dotazy najdete v tématu Začínáme se službou Log Analytics ve službě Azure Monitor.

    Snímek obrazovky s dotazem v Log Analytics

Pokud chcete použít ukázkový dotaz pro službu SignalR, postupujte takto:

  1. Vyberte protokoly v cílovém pracovním prostoru služby Log Analytics.

  2. Výběrem možnosti Dotazy otevřete Průzkumníka dotazů.

  3. Výběrem typu prostředek seskupíte ukázkové dotazy podle typu prostředku.

  4. Vyberte Spustit a spusťte skript.

    Snímek obrazovky s ukázkovým dotazem v Log Analytics

Sloupce protokolu archivu obsahují prvky uvedené v následující tabulce.

Název Popis
TimeGenerated Protokolovat čas události
Collection Shromažďování událostí protokolu (Connection, Authorizationa Throttling)
OperationName Název operace události
Location Umístění instance služby Azure SignalR Service
Level Úroveň událostí protokolu
CallerIpAddress IP adresa vašeho serveru nebo klienta
Message Podrobná zpráva o události protokolu
UserId Identita uživatele
ConnectionId Identita připojení
ConnectionType Typ připojení (Serverpřipojení ze strany serveru; a Client, připojení ze strany klienta)
TransportType Typ přenosu spojení (Websockets, ServerSentEventsa LongPolling)

Řešení potíží s využitím protokolů prostředků

Pokud zjistíte neočekávané zvýšení nebo snížení počtu připojení, můžete problém vyřešit pomocí protokolů prostředků. Mezi potenciální problémy patří neočekávané změny množství připojení, připojení při dosažení limitů připojení a selhání autorizace.

Neočekávané události odpojení

Pokud se připojení odpojí, zaznamená prostředek událost odpojení s ConnectionAborted nebo ConnectionEnded v operationName.

Rozdíl mezi ConnectionAborted a ConnectionEnded je to ConnectionEnded očekávaný odpojení aktivované klientem nebo serverem. Naproti tomu obvykle odkazuje na událost, ConnectionAborted ve které připojení neočekávaně klesne, a důvod odpojení je uveden v message.

Následující tabulka uvádí důvody neočekávaného odpojení.

Důvod Popis
Počet připojení dosáhne limitu Počet připojení dosáhne limitu vaší aktuální cenové úrovně. Zvažte vertikální navýšení kapacity jednotky služby.
Opětovné načítání služby, opětovné připojení Služba Azure Web PubSub se znovu načítá. Musíte implementovat vlastní mechanismus opětovného připojení nebo se ručně znovu připojit ke službě Azure Web PubSub.
Vnitřní přechodná chyba serveru Ve službě Azure Web PubSub dojde k přechodné chybě. Obnovení by mělo být automatické.

Neočekávané zvýšení počtu připojení

Pokud se počet klientských připojení neočekávaně zvýší, měli byste postupovat podle těchto kroků. Nejprve vyfiltrujte nadbytečná připojení a přidejte jedinečné ID testovacího uživatele do připojení testovacího klienta. Pak zkontrolujte protokoly prostředků. Pokud si všimnete, že více než jedno připojení klienta má stejné TESTOVACÍ ID uživatele nebo IP adresu, je pravděpodobné, že klient vytváří více připojení, než se čekalo. Zkontrolujte kód klienta a vyhledejte zdroj dalších připojení.

Selhání autorizace

Pokud se pro požadavky klientů vrátí 401 Neautorizováno , zkontrolujte protokoly prostředků. Pokud zjistíte Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>, znamená to, že všechny cílové skupiny ve vašem přístupového tokenu jsou neplatné. Zkuste použít platné cílové skupiny navrhované v protokolu.

Omezování

Pokud zjistíte, že nemůžete navázat připojení klientů ke službě Azure Web PubSub, zkontrolujte protokoly prostředků. Pokud se v protokolu prostředků zobrazí Connection count reaches limit , vytvořili jste příliš mnoho připojení ke službě Azure Web PubSub a dosáhli jste limitu počtu připojení. Zvažte vertikální navýšení kapacity instance služby Azure Web PubSub.

Pokud se v protokolu prostředků zobrazí Message count reaches limit a používáte úroveň Free, znamená to, že jste použili kvótu zpráv. Pokud chcete odesílat další zprávy, zvažte změnu instance služby Azure Web PubSub na úroveň Standard. Další informace najdete v tématu Azure Web PubSub – ceny.