Come risolvere i problemi relativi ai log delle risorse

Questa guida pratica fornisce una panoramica dei log delle risorse di Pubblicazione Web di Azure e alcuni suggerimenti per l'uso dei log per la risoluzione di determinati problemi. I log possono essere usati per l'identificazione dei problemi, il rilevamento delle connessioni, la traccia dei messaggi, la traccia delle richieste HTTP e l'analisi.

Che cosa sono i log delle risorse?

Esistono tre tipi di log delle risorse: Connessione ivity, Messaging e HTTP requests.

  • i log di Connessione ivity forniscono informazioni dettagliate per le connessioni hub Web PubSub di Azure. Ad esempio, informazioni di base (ID utente, ID connessione e così via) e informazioni sugli eventi (connessione, disconnessione e così via).
  • I log di messaggistica forniscono informazioni di traccia per i messaggi dell'hub Web PubSub di Azure ricevuti e inviati tramite il servizio Web PubSub di Azure. Ad esempio, l'ID di traccia e il tipo di messaggio del messaggio.
  • I log delle richieste HTTP forniscono informazioni di traccia per le richieste HTTP al servizio Web PubSub di Azure. Ad esempio, il metodo HTTP e il codice di stato. In genere la richiesta HTTP viene registrata all'arrivo o all'uscita dal servizio.

Acquisire i log delle risorse usando lo strumento di traccia in tempo reale

Lo strumento di traccia in tempo reale del servizio Web PubSub di Azure è in grado di raccogliere i log delle risorse in tempo reale, utile per la risoluzione dei problemi nell'ambiente di sviluppo. Lo strumento di traccia in tempo reale può acquisire i log di connettività, i log di messaggistica e i log delle richieste HTTP.

Nota

Le considerazioni seguenti si applicano all'uso dello strumento di traccia in tempo reale:

  • I log delle risorse in tempo reale acquisiti dallo strumento di traccia in tempo reale verranno fatturati come messaggi (traffico in uscita).
  • Lo strumento di traccia in tempo reale attualmente non supporta l'autorizzazione di Microsoft Entra. È necessario abilitare le chiavi di accesso per usare la traccia in tempo reale. In Impostazioni selezionare Chiavi e quindi abilitare Chiave di accesso.
  • L'istanza del livello gratuito del servizio Web PubSub di Azure ha un limite giornaliero di 20.000 messaggi (traffico in uscita). La traccia in tempo reale può causare un raggiungimento imprevisto del limite giornaliero.

Avviare lo strumento di traccia in tempo reale

Nota

Quando si abilita la chiave di accesso, si userà il token di accesso per autenticare lo strumento di traccia in tempo reale. In caso contrario, si userà Microsoft Entra ID per autenticare lo strumento di traccia in tempo reale. È possibile verificare se abilitare o meno la chiave di accesso nella pagina Chiavi del Servizio SignalR in portale di Azure.

Passaggi per la chiave di accesso abilitata

  1. Passare alla pagina portale di Azure e Servizio SignalR.

  2. Dal menu a sinistra, in Monitoraggio selezionare Impostazioni traccia dinamica.

  3. Selezionare Abilita traccia dinamica.

  4. Selezionare il pulsante Salva . L'applicazione delle modifiche richiederà qualche minuto.

  5. Al termine dell'aggiornamento, selezionare Apri strumento di traccia dinamica.

    Screenshot of launching the live trace tool.

Passaggi per la chiave di accesso disabilitata

Assegnare l'autorizzazione API dello strumento di traccia in tempo reale a se stessi

  1. Passare alla pagina portale di Azure e Servizio SignalR.
  2. Seleziona Controllo di accesso (IAM).
  3. Nella nuova pagina fare clic su +Aggiungi e quindi su Assegnazione di ruolo.
  4. Nella nuova pagina concentrarsi sulla scheda Ruoli funzione processo, Selezionare Servizio SignalR ruolo Proprietario e quindi fare clic su Avanti.
  5. Nella pagina Membri fare clic su +Seleziona membri.
  6. Nel nuovo pannello cercare e selezionare i membri e quindi fare clic su Seleziona.
  7. Fare clic su Rivedi e assegna e attendere la notifica di completamento.

Visitare lo strumento di traccia in tempo reale

  1. Passare alla pagina portale di Azure e Servizio SignalR.

  2. Dal menu a sinistra, in Monitoraggio selezionare Impostazioni traccia dinamica.

  3. Selezionare Abilita traccia dinamica.

  4. Selezionare il pulsante Salva . L'applicazione delle modifiche richiederà qualche minuto.

  5. Al termine dell'aggiornamento, selezionare Apri strumento di traccia dinamica.

    Screenshot of launching the live trace tool.

Accedi con il tuo account Microsoft

  1. Lo strumento di traccia in tempo reale aprirà una finestra di accesso Microsoft. Se non viene visualizzata alcuna finestra, selezionare e consentire finestre popup nel browser.
  2. Attendere Pronto visualizzato nella barra di stato.

Acquisire i log delle risorse

Lo strumento di traccia in tempo reale offre funzionalità che consentono di acquisire i log delle risorse per la risoluzione dei problemi.

  • Acquisizione: iniziare a acquisire i log delle risorse in tempo reale da PubSub Web di Azure.
  • Cancella: cancella i log delle risorse in tempo reale acquisiti.
  • Filtro log: lo strumento di traccia in tempo reale consente di filtrare i log delle risorse in tempo reale acquisiti con una parola chiave specifica. I separatori comuni ( ad esempio, spazio, virgola, punto e virgola e così via) verranno considerati come parte della parola chiave.
  • Stato: lo stato indica se lo strumento di traccia in tempo reale è connesso o disconnesso con l'istanza specifica.

Screenshot of capturing resource logs with live trace tool.

I log delle risorse in tempo reale acquisiti dallo strumento di traccia in tempo reale contengono informazioni dettagliate per la risoluzione dei problemi.

Nome Descrizione
Data e ora Registrare l'ora dell'evento
Livello di registrazione Il livello di evento del log può essere [Traccia | Debug | Informazioni | Avviso | Errore]
Nome evento Nome dell'operazione dell'evento
Message Messaggio dettagliato per l'evento
Eccezione Eccezione di runtime del servizio Web PubSub di Azure
Hub Nome dell'hub definito dall'utente
ID Connessione ion Identità della connessione
ID utente Identità utente
IP Indirizzo IP client
Modello di route Modello di route dell'API
Http, metodo Metodo Http (POST/GET/PUT/DELETE)
URL Localizzatore di risorse uniforme
ID traccia Identificatore univoco della chiamata
Codice di stato Codice di risposta Http
Durata Durata tra la ricezione della richiesta e l'elaborazione della richiesta
Intestazioni Informazioni aggiuntive passate dal client e dal server con una richiesta o una risposta HTTP

Acquisire i log delle risorse con Monitoraggio di Azure

Come abilitare i log delle risorse

Attualmente Web PubSub di Azure supporta l'integrazione con Archiviazione di Azure.

  1. Vai al portale di Azure.

  2. Nella pagina Impostazioni di diagnostica dell'istanza del servizio Web PubSub di Azure selezionare + Aggiungi impostazione di diagnostica. Screenshot of viewing diagnostic settings and create a new one

  3. In Nome dell'impostazione di diagnostica immettere il nome dell'impostazione.

  4. In Dettagli categoria selezionare qualsiasi categoria di log necessaria.

  5. In Dettagli destinazione selezionare Archivia in un account di archiviazione.

    Screenshot of configuring diagnostic setting detail

  6. Selezionare Salva per salvare l'impostazione di diagnostica.

    Nota

    L'account di archiviazione deve trovarsi nella stessa area del servizio Web PubSub di Azure.

Archiviare in un account Archiviazione di Azure

I log vengono archiviati nell'account di archiviazione configurato nel riquadro Impostazioni di diagnostica. Viene creato automaticamente un contenitore denominato insights-logs-<CATEGORY_NAME> per archiviare i log delle risorse. All'interno del contenitore, i log vengono archiviati nel file 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. Il percorso viene combinato da resource ID e Date Time. I file di log vengono suddivisi per hour. Il valore del minuto è sempre m=00.

Tutti i log vengono archiviati in formato JavaScript Object Notation (JSON). Ogni voce presenta campi stringa che usano il formato descritto nelle sezioni seguenti.

Le stringhe JSON del log di archiviazione includono elementi elencati nelle tabelle seguenti:

Formattazione

Nome Descrizione
Ora Registrare l'ora dell'evento
level Livello di evento del log
resourceId ID risorsa del Servizio Azure SignalR
posizione Posizione del Servizio Azure SignalR
Categoria Categoria dell'evento del log
operationName Nome dell'operazione dell'evento
callerIpAddress Indirizzo IP del server o del client
proprietà Proprietà dettagliate correlate a questo evento del log. Per altri dettagli, vedere la tabella delle proprietà seguente

Tabella delle proprietà

Nome Descrizione
collection Raccolta dell'evento del log. I valori consentiti sono: Connection, Authorization e Throttling
connectionId Identità della connessione
userId Identità dell'utente
messaggio Messaggio dettagliato dell'evento del log
hub Nome hub definito dall'utente
routeTemplate Modello di route dell'API
httpMethod Metodo Http (POST/GET/PUT/DELETE)
URL. Localizzatore di risorse uniforme
traceId Identificatore univoco della chiamata
statusCode Codice di risposta Http
duration La durata tra la richiesta viene ricevuta ed elaborata
intestazioni Informazioni aggiuntive passate dal client e dal server con una richiesta o una risposta HTTP

Il codice seguente è un esempio di stringa JSON di log di archiviazione:

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

Archiviare in Azure Log Analytics

Per inviare i log a un'area di lavoro Log Analytics:

  1. Nella pagina Impostazioni di diagnostica, in Dettagli destinazione selezionare **Invia all'area di lavoro Log Analytics.
  2. Selezionare la Sottoscrizione da usare.
  3. Selezionare l'area di lavoro Log Analytics da usare come destinazione per i log.

Per visualizzare i log delle risorse, seguire questa procedura:

  1. Selezionare Logs nella destinazione Log Analytics.

    Log Analytics menu item

  2. Immettere WebPubSubConnectivity, WebPubSubMessaging o WebPubSubHttpRequeste quindi selezionare l'intervallo di tempo per eseguire query sul log. Per le query avanzate, vedere Introduzione a Log Analytics in Monitoraggio di Azure.

    Query log in Log Analytics

Per usare una query di esempio per il servizio SignalR, seguire questa procedura.

  1. Selezionare Logs nella destinazione Log Analytics.
  2. Selezionare questa opzione Queries per aprire Esplora query.
  3. Selezionare questa opzione Resource type per raggruppare le query di esempio nel tipo di risorsa.
  4. Selezionare questa opzione Run per eseguire lo script. Sample query in Log Analytics

Le colonne di log di archiviazione includono gli elementi elencati nella tabella seguente.

Nome Descrizione
TimeGenerated Registrare l'ora dell'evento
Sollecito Raccolta dell'evento del log. I valori consentiti sono: Connection, Authorization e Throttling
OperationName Nome dell'operazione dell'evento
Titolo Posizione del Servizio Azure SignalR
Livello Livello di evento del log
CallerIpAddress Indirizzo IP del server/client
Message Messaggio dettagliato dell'evento del log
ID utente Identità dell'utente
ID connessione Identità della connessione
ConnectionType Tipo di connessione. I valori consentiti sono: Server | Client. Server: connessione dal lato server; Client: connessione dal lato client
TransportType Tipo di trasporto della connessione. I valori consentiti sono: Websockets | ServerSentEvents | LongPolling

Risolvere i problemi relativi ai log delle risorse

Se si riscontrano modifiche impreviste nel numero di connessioni, aumentando o riducendo, è possibile sfruttare i log delle risorse per risolvere il problema. I problemi tipici riguardano spesso le modifiche impreviste delle connessioni, le connessioni raggiungono i limiti di connessione e l'errore di autorizzazione.

Modifiche impreviste nel numero di connessioni

Eliminazione imprevista della connessione

Se una connessione si disconnette, i log delle risorse registreranno l'evento di disconnessione con ConnectionAborted o ConnectionEnded in operationName.

La differenza tra ConnectionAborted e ConnectionEnded è che ConnectionEnded si tratta di una disconnessione prevista attivata dal lato client o server. Mentre è ConnectionAborted in genere un evento imprevisto di eliminazione della connessione e il motivo della disconnessione verrà fornito in message.

I motivi di interruzione sono elencati nella tabella seguente:

Motivo Descrizione
il numero di Connessione ion raggiunge il limite Connessione conteggio raggiunge il limite del piano tariffario corrente. Prendere in considerazione l'aumento delle prestazioni dell'unità di servizio
Ricaricamento del servizio, riconnessione Il servizio Web PubSub di Azure viene ricaricato. È necessario implementare il proprio meccanismo di riconnessione o riconnettersi manualmente al servizio Web PubSub di Azure
Errore temporaneo del server interno Si verifica un errore temporaneo nel servizio Web PubSub di Azure, che deve essere ripristinato automaticamente

Aumento imprevisto delle connessioni

Quando il numero di connessioni client aumenta in modo imprevisto, la prima cosa da fare consiste nel filtrare le connessioni superflue. Aggiungere un ID utente di test univoco alla connessione client di test. Controllare quindi i log delle risorse; se vengono visualizzati più connessioni client con lo stesso ID utente o IP di test, è probabile che il client crei più connessioni del previsto. Controllare il codice client per trovare l'origine delle connessioni aggiuntive.

Errore di autorizzazione

Se viene restituito 401 Non autorizzato per le richieste client, controllare i log delle risorse. Se si trova Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>, significa che tutti i gruppi di destinatari nel token di accesso non sono validi. Provare a usare i gruppi di destinatari validi suggeriti nel log.

Limitazione

Se non è possibile stabilire connessioni client al servizio Web PubSub di Azure, controllare i log delle risorse. Se viene visualizzato Connection count reaches limit nel log delle risorse, sono state stabilite troppe connessioni al servizio Web PubSub di Azure e si è raggiunto il limite di conteggio delle connessioni. Valutare la possibilità di aumentare le prestazioni dell'istanza del servizio PubSub di Azure. Se viene visualizzato Message count reaches limit nel log delle risorse e si usa il livello Gratuito, significa che è stata usata la quota di messaggi. Se si vogliono inviare altri messaggi, è consigliabile modificare l'istanza del servizio Web PubSub di Azure al livello Standard. Per altre informazioni, vedere Prezzi del servizio Web PubSub di Azure.