Condividi tramite


Risolvere i problemi relativi ai log delle risorse

Questa guida pratica fornisce una panoramica dei log delle risorse di Pubblicazione Web di Azure e suggerimenti per l'uso dei log per la risoluzione dei problemi. È possibile usare i log 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:

  • I log di connettività forniscono informazioni dettagliate per le connessioni hub PubSub di Azure. Possono includere informazioni di base, ad esempio ID utente e ID connessione, o informazioni sugli eventi, ad esempio la connessione e la disconnessione.
  • I log di messaggistica forniscono informazioni di traccia per i messaggi hub inviati o ricevuti tramite il servizio Web PubSub di Azure, ad esempio l'ID di traccia o il tipo di 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 o il codice di stato. In genere, una richiesta HTTP viene registrata quando arriva o esce dal servizio.

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

Lo strumento di traccia in tempo reale nel servizio Web PubSub di Azure può 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.

Quando si usa lo strumento di traccia in tempo reale, è consigliabile considerare i fattori seguenti:

  • I log delle risorse in tempo reale acquisiti dallo strumento di traccia in tempo reale vengono fatturati come messaggi (traffico in uscita).
  • L'istanza del livello gratuito del servizio Web PubSub di Azure ha un limite giornaliero di 20.000 messaggi (traffico in uscita). È possibile raggiungere in modo imprevisto il limite giornaliero usando la traccia in tempo reale.
  • 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.

Avviare lo strumento di traccia in tempo reale

Quando si abilita una chiave di accesso, si usa il token di accesso per autenticare lo strumento di traccia in tempo reale. In caso contrario, si usa Microsoft Entra ID per autenticare lo strumento di traccia in tempo reale. Per scoprire se la chiave di accesso è abilitata, passare al riquadro Chiavi nell'istanza di Servizio Azure SignalR nel portale di Azure.

Aprire la traccia in tempo reale quando la chiave di accesso è abilitata

  1. Passare al riquadro portale di Azure e Servizio SignalR.

  2. Nel menu del servizio, in Monitoraggio, selezionare Impostazioni di traccia dinamica.

  3. Selezionare Abilita traccia dinamica.

  4. Selezionare il pulsante Salva. L'applicazione delle modifiche richiede qualche istante.

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

    Screenshot dell'apertura dello strumento di traccia in tempo reale.

Aprire lo strumento di traccia in tempo reale quando la chiave di accesso è disabilitata

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

  1. Passare al riquadro portale di Azure e Servizio SignalR.

  2. Seleziona Controllo di accesso (IAM).

  3. Selezionare +Aggiungi e quindi selezionare Assegnazione di ruolo.

  4. Nella scheda Ruoli della funzione processo selezionare il ruolo proprietario Servizio SignalR e quindi selezionare Avanti.

  5. Nel riquadro Membri fare clic su +Seleziona membri.

  6. Cercare e selezionare i membri, quindi fare clic su Seleziona.

  7. Selezionare Rivedi e assegna e attendere la notifica di completamento.

Abilitare lo strumento di traccia in tempo reale

  1. Passare al riquadro portale di Azure e Servizio SignalR.

  2. Dal menu del servizio, in Monitoraggio, selezionare Impostazioni di traccia dinamica.

  3. Selezionare Abilita traccia dinamica.

  4. Selezionare il pulsante Salva. L'applicazione delle modifiche richiede qualche istante.

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

    Screenshot dell'apertura dello strumento di traccia in tempo reale.

Accedi con il tuo account Microsoft

  1. Lo strumento di traccia dinamica causa l'apertura di una finestra di accesso Microsoft. Se non viene visualizzata alcuna finestra, consentire le finestre popup nelle impostazioni del browser.

  2. Attendere la visualizzazione di Ready (Pronto ) sulla barra di stato.

Acquisire i log delle risorse

Lo strumento di traccia in tempo reale consente di acquisire i log delle risorse per la risoluzione dei problemi.

  • L'acquisizione inizia a acquisire i log delle risorse in tempo reale da PubSub Web di Azure.
  • Cancella cancella i log delle risorse in tempo reale acquisiti.
  • Il filtro log filtra i log delle risorse in tempo reale acquisiti con una parola chiave specifica. I separatori comuni, ad esempio spazio, virgola e punto e virgola, vengono considerati come parte della parola chiave .
  • Lo stato indica se lo strumento di traccia in tempo reale è connesso o disconnesso con l'istanza specifica.

Screenshot dell'acquisizione dei log delle risorse con lo strumento di traccia in tempo reale.

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
Ora Ora dell'evento di log
Livello di log Livello di evento del log (Trace, Debug, InformationalWarning o Error)
Nome dell’evento Nome dell'operazione dell'evento
Messaggio Messaggio dettagliato per l'evento
Eccezione Eccezione di runtime del servizio Web PubSub di Azure
Hub Nome hub definito dall'utente
ID connessione Identità della connessione
ID utente Identità utente
IP Indirizzo IP client
Modello di route Modello di route dell'API
Metodo HTTP Metodo HTTP (POST, GETo 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

Abilitare i log risorse

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

  1. Vai al portale di Azure.

  2. Nel riquadro Impostazioni di diagnostica dell'istanza del servizio Web PubSub di Azure selezionare + Aggiungi impostazione di diagnostica.

    Screenshot della visualizzazione delle impostazioni di diagnostica e della creazione di una nuova.

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

  4. In Dettagli categoriaselezionare qualsiasi categoria di log necessaria.

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

    Screenshot della configurazione dell'impostazione di diagnostica.

  6. Selezionare Salva per salvare le impostazioni di diagnostica.

    Nota

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

Archiviare in un account di 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 nei log di archiviazione includono elementi elencati nelle tabelle seguenti.

Formato

Nome Descrizione
time Ora dell'evento di log
level Livello dell'evento di log
resourceId ID risorsa dell'istanza di Servizio Azure SignalR
location Posizione dell'istanza di Servizio Azure SignalR
category Categoria dell'evento di log
operationName Nome dell'operazione dell'evento
callerIpAddress Indirizzo IP del server o del client
properties Proprietà dettagliate correlate a questo evento di log (vedere la tabella seguente)

Tabella Proprietà

Nome Descrizione
collection Raccolta dell'evento del log (Connectiono ThrottlingAuthorization )
connectionId Identità della connessione
userId Identità dell'utente
message Messaggio dettagliato dell'evento di log
hub Nome hub definito dall'utente
routeTemplate Modello di route dell'API
httpMethod Metodo HTTP (POST, GETo PUT DELETE)
url Localizzatore di risorse uniforme
traceId Identificatore univoco della chiamata
statusCode Codice di risposta HTTP
duration Durata del tempo tra la ricezione e l'elaborazione della richiesta
headers Informazioni aggiuntive passate dal client e dal server con una richiesta o una risposta HTTP

Il codice seguente è un esempio di stringa JSON in un 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. Nel riquadro Impostazioni di diagnostica, in Dettagli destinazione selezionare Invia all'area di lavoro Log Analytics.

  2. In Sottoscrizione selezionare la sottoscrizione che si vuole usare.

  3. Per la destinazione per i log, selezionare Area di lavoro Log Analytics.

Per visualizzare i log delle risorse, seguire questa procedura:

  1. Selezionare Log nell'area di lavoro Log Analytics di destinazione.

    Screenshot di una voce di menu di Log Analytics.

  2. Per eseguire una query sul log, immettere WebPubSubConnectivity, WebPubSubMessagingo WebPubSubHttpRequeste quindi selezionare l'intervallo di tempo. Per query avanzate, vedere Introduzione a Log Analytics in Monitoraggio di Azure.

    Screenshot di una query in Log Analytics.

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

  1. Selezionare Log nell'area di lavoro Log Analytics di destinazione.

  2. Selezionare Query per aprire Esplora query.

  3. Selezionare Tipo di risorsa per raggruppare le query di esempio in base al tipo di risorsa.

  4. Selezionare Esegui per eseguire lo script.

    Screenshot di una query di esempio in Log Analytics.

Colonne del log di archiviazione includono gli elementi elencati nella tabella seguente.

Nome Descrizione
TimeGenerated Ora dell'evento di log
Collection Raccolta dell'evento di log (Connection, Authorizatione Throttling)
OperationName Nome dell'operazione dell'evento
Location Posizione dell'istanza di Servizio Azure SignalR
Level Livello dell'evento di log
CallerIpAddress Indirizzo IP del server/client
Message Messaggio dettagliato dell'evento di log
UserId Identità dell'utente
ConnectionId Identità della connessione
ConnectionType Tipo di connessione (Server, una connessione dal lato server e Client, una connessione dal lato client)
TransportType Tipo di trasporto della connessione (Websockets, ServerSentEventse LongPolling)

Usare i log delle risorse per risolvere i problemi

Se si rilevano aumenti o riduzioni imprevisti del numero di connessioni, è possibile risolvere il problema usando i log delle risorse. I potenziali problemi includono modifiche impreviste alla quantità di connessione, connessioni che raggiungono i limiti di connessione e errori di autorizzazione.

Eventi di disconnessione imprevisti

Se una connessione si disconnette, i log delle risorse registrano 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. Al contrario, ConnectionAborted in genere si riferisce a un evento in cui una connessione viene eliminata in modo imprevisto e il motivo della disconnessione viene fornito in message.

Nella tabella seguente sono elencati i motivi di una disconnessione imprevista.

Motivo Descrizione
Il numero di connessioni raggiunge il limite Il numero di connessioni raggiunge il limite del piano tariffario corrente. Valutare la possibilità di aumentare le 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 PubSub Web di Azure. Il ripristino deve essere automatico.

Aumento imprevisto delle connessioni

Quando il numero di connessioni client aumenta in modo imprevisto, è necessario seguire questa procedura. Filtrare prima di tutto le connessioni superflue e aggiungere un ID utente di test univoco alla connessione client di test. Controllare quindi i log delle risorse. Se si nota che più connessioni client hanno lo stesso ID utente di test o IP, è probabile che il client stia creando 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 l'errore Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>, significa che i gruppi di destinatari nel token di accesso sono tutti non validi. Provare a usare i gruppi di destinatari validi suggeriti nel log.

Limitazione

Se non è possibile stabilire connessioni client al servizio PubSub Web 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 di Pubblicazione Web di Azure.