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
Passare alla pagina portale di Azure e Servizio SignalR.
Dal menu a sinistra, in Monitoraggio selezionare Impostazioni traccia dinamica.
Selezionare Abilita traccia dinamica.
Selezionare il pulsante Salva . L'applicazione delle modifiche richiederà qualche minuto.
Al termine dell'aggiornamento, selezionare Apri strumento di traccia dinamica.
Passaggi per la chiave di accesso disabilitata
Assegnare l'autorizzazione API dello strumento di traccia in tempo reale a se stessi
- Passare alla pagina portale di Azure e Servizio SignalR.
- Seleziona Controllo di accesso (IAM).
- Nella nuova pagina fare clic su +Aggiungi e quindi su Assegnazione di ruolo.
- Nella nuova pagina concentrarsi sulla scheda Ruoli funzione processo, Selezionare Servizio SignalR ruolo Proprietario e quindi fare clic su Avanti.
- Nella pagina Membri fare clic su +Seleziona membri.
- Nel nuovo pannello cercare e selezionare i membri e quindi fare clic su Seleziona.
- Fare clic su Rivedi e assegna e attendere la notifica di completamento.
Visitare lo strumento di traccia in tempo reale
Passare alla pagina portale di Azure e Servizio SignalR.
Dal menu a sinistra, in Monitoraggio selezionare Impostazioni traccia dinamica.
Selezionare Abilita traccia dinamica.
Selezionare il pulsante Salva . L'applicazione delle modifiche richiederà qualche minuto.
Al termine dell'aggiornamento, selezionare Apri strumento di traccia dinamica.
Accedi con il tuo account Microsoft
- 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.
- 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.
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.
Vai al portale di Azure.
Nella pagina Impostazioni di diagnostica dell'istanza del servizio Web PubSub di Azure selezionare + Aggiungi impostazione di diagnostica.
In Nome dell'impostazione di diagnostica immettere il nome dell'impostazione.
In Dettagli categoria selezionare qualsiasi categoria di log necessaria.
In Dettagli destinazione selezionare Archivia in un account di archiviazione.
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:
- Nella pagina Impostazioni di diagnostica, in Dettagli destinazione selezionare **Invia all'area di lavoro Log Analytics.
- Selezionare la Sottoscrizione da usare.
- Selezionare l'area di lavoro Log Analytics da usare come destinazione per i log.
Per visualizzare i log delle risorse, seguire questa procedura:
Selezionare
Logs
nella destinazione Log Analytics.Immettere
WebPubSubConnectivity
,WebPubSubMessaging
oWebPubSubHttpRequest
e quindi selezionare l'intervallo di tempo per eseguire query sul log. Per le query avanzate, vedere Introduzione a Log Analytics in Monitoraggio di Azure.
Per usare una query di esempio per il servizio SignalR, seguire questa procedura.
- Selezionare
Logs
nella destinazione Log Analytics. - Selezionare questa opzione
Queries
per aprire Esplora query. - Selezionare questa opzione
Resource type
per raggruppare le query di esempio nel tipo di risorsa. - Selezionare questa opzione
Run
per eseguire lo script.
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.