Dati di diagnostica della piattaforma distribuita come servizio (PaaS) di Windows Azure
Quando è necessario risolvere un problema, una delle cose più importanti da comprendere è quali dati di diagnostica sono disponibili. Se non si sa dove cercare i log o altre informazioni di diagnostica, potrebbe essere necessario ricorrere all'approccio trial-and-error o shotgun alla risoluzione dei problemi. Se si ha accesso ai log, è possibile diagnosticare qualsiasi problema, anche se non si trova all'interno dell'area di competenza.
Questo articolo illustra i dati disponibili negli ambienti di calcolo PaaS (Platform as a Service) di Azure. Descrive come raccogliere facilmente questi dati da una macchina virtuale (VM) PaaS di Windows.
Le sezioni seguenti includono le origini dati più usate quando si risolvono i problemi in una macchina virtuale Windows PaaS. Le sezioni vengono ordinate approssimativamente in base all'importanza (la frequenza di utilizzo del log per diagnosticare i problemi).
Registri eventi di Windows Azure
I log eventi di Windows Azure contengono l'output di diagnostica chiave del runtime di Azure. I log registrano informazioni su tali eventi, come i seguenti:
- Il ruolo viene avviato e arrestato
- Attività di avvio
OnStart
avviare e arrestareOnRun
inizio- Crashes
- Ricicla
Per visualizzare i registri eventi di Windows Azure:
Nel menu Start cercare Visualizzatore eventi e quindi selezionare l'app.
Nel riquadro di spostamento espandere Registri applicazioni e servizi e quindi selezionare Windows Azure.
Questa origine di diagnostica consente di identificare la causa di diversi dei problemi più comuni che impediscono l'avvio corretto dei ruoli di Azure. Questi includono errori dell'attività di avvio e arresto anomalo in OnStart
o OnRun
. Visualizzatore eventi acquisisce arresti anomali nei processi host di runtime di Azure che eseguono il codice del punto di ingresso del ruolo (ad esempio WebRole.cs o WorkerRole.cs) e fornisce stack di chiamate.
Log eventi dell'applicazione
È possibile usare i registri eventi dell'applicazione per la risoluzione dei problemi standard nei server azure e locali. È spesso possibile trovare errori correlati w3wp.exe in questi log.
Per visualizzare i registri eventi dell'applicazione:
Nel menu Start cercare Visualizzatore eventi e quindi selezionare l'app.
Nel riquadro di spostamento espandere Log di Windows e quindi selezionare Applicazione.
Log di runtime dell'agente app
Il log di runtime dell'agente app si trova in C:\Logs\AppAgentRuntime.log ed è scritto dal WindowsAzureGuestAgent.exe eseguibile. Il log contiene informazioni sugli eventi che si verificano all'interno dell'agente guest e della macchina virtuale. Queste informazioni sugli eventi includono, ma non solo, le categorie seguenti:
- Configurazione firewall
- Modifiche dello stato del ruolo
- Ricicla
- Riavvio
- Modifiche dello stato di integrità
- Il ruolo viene arrestato e avviato
- Configurazione certificato
Questo log è utile per ottenere una rapida panoramica degli eventi che si verificano nel tempo a un ruolo. Ciò è dovuto al fatto che registra modifiche importanti al ruolo senza registrare heartbeat. Se l'agente guest non è in grado di avviare correttamente il ruolo (ad esempio, se un file bloccato impedisce la pulizia della directory), l'evento registrato in questo log verrà visualizzato.
Log heartbeat dell'agente app
Il log heartbeat dell'agente app si trova in C:\Logs\WaAppAgent.log ed è scritto dal file eseguibile WindowsAzureGuestAgent.exe . Contiene informazioni sullo stato relative ai probe di integrità al programma di avvio automatico dell'host.
Il processo dell'agente guest è responsabile della segnalazione dello stato di integrità (ad esempio, Ready
o Busy
) all'infrastruttura. Di conseguenza, lo stato di integrità che questo report del log corrisponde allo stato visualizzato nel portale di gestione. Il log è utile per determinare lo stato corrente del ruolo all'interno della macchina virtuale o per determinare lo stato in un momento precedente. È possibile fornire descrizioni dei problemi, ad esempio "Il mio sito Web è stato inattivo dalle 10:00 alle 11:30 di ieri" per usare il log heartbeat per determinare lo stato di integrità del ruolo durante tale periodo.
Log del programma di avvio automatico dell'host
Il log del programma di avvio automatico dell'host si trova in C:\Resources\WaHostBootstrapper.log. Contiene voci per le attività di avvio, inclusi i plug-in, ad esempio memorizzazione nella cache o RDP (Remote Desktop Protocol). Il log contiene anche probe di integrità per il processo host che esegue il codice del punto di ingresso del ruolo (il codice WebRole.cs eseguito in WaIISHost.exe).
Un file di log viene generato ogni volta che il programma di avvio automatico dell'host viene riavviato. In altre parole, viene riavviato ogni volta che il ruolo viene riciclato a causa di un evento come un arresto anomalo, un riciclo, un riavvio della macchina virtuale o un aggiornamento. Questa procedura semplifica l'uso del log per determinare con quale frequenza o quando il ruolo è stato riciclato.
Log di Internet Information Services
I log di Internet Information Services (IIS) si trovano in C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\LogFiles\Web. Questi log vengono usati per la risoluzione dei problemi standard sia in Azure che nei server locali.
I log IIS vengono spesso trascurati in scenari come "Il sito Web è inattivo dalle 10:00 alle 11:30 di ieri". È naturale incolpare Azure per l'interruzione del servizio. ("Il mio sito funzionava bene per due settimane, quindi il problema deve essere Azure!") Tuttavia, i log di IIS spesso indicano un'altra operazione. È possibile che si verifichi un aumento dei tempi di risposta immediatamente prima dell'interruzione. In alternativa, è possibile che i codici di stato non riusciti siano stati restituiti da IIS. Questi codici indicano un problema che si è verificato all'interno del sito Web stesso (ovvero nel codice ASP.NET eseguito in w3wp.exe) e non in Azure.
Contatori delle prestazioni
Per visualizzare i contatori delle prestazioni, selezionare il menu Start, cercare in perfmon e quindi selezionare Monitor prestazioni. Questa app è uno snap-in per Microsoft Management Console (MMC). In alternativa, installare e configurare l'estensione diagnostica di Windows Azure (WAD).
I contatori delle prestazioni vengono usati per la risoluzione dei problemi standard nei server di Azure e locali. Se si configura WAD in anticipo, spesso si avranno contatori delle prestazioni importanti per risolvere i problemi che si sono verificati in passato (ad esempio, "Il mio sito Web è stato inattivo dalle 10:00 alle 11:30 ieri.").
A parte i problemi per i quali si raccolgono contatori delle prestazioni specifici, gli usi più comuni per i contatori delle prestazioni raccolti da WAD sono cercare gli elementi seguenti, nell'ordine specificato:
Voci regolari dei contatori delle prestazioni
Un periodo di nessuna voce
Uno degli stati nella tabella seguente.
Stato Descrizione Ripresa delle voci regolari Uno scenario in cui la macchina virtuale potenzialmente non era in esecuzione Utilizzo della CPU al 100% Un ciclo infinito o un altro problema di logica nel codice del sito Web stesso
log HTTP.SYS
I log HTTP.SYS si trovano in D:\Windows\System32\LogFiles\HTTPERR. Questi log vengono usati per la risoluzione dei problemi standard sia in Azure che nei server locali.
Come è vero per i log IIS, i log di HTTP.SYS vengono spesso trascurati. Tuttavia, sono importanti quando si tenta di risolvere un problema in cui un sito Web del servizio ospitato non risponde. Spesso, questo problema è causato dal fatto che IIS non è in grado di elaborare il volume di richieste che arrivano. L'evidenza di questa causa viene in genere visualizzata nei log di HTTP.SYS.
File di log delle richieste iis non riuscite
I file di log "richiesta IIS non riuscita" si trovano in C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\FailedReqLogFiles. Questi log vengono usati per la risoluzione dei problemi standard sia in Azure che nei server locali.
Per impostazione predefinita, questi file di log non sono attivati in Windows Azure. Vengono usati raramente. Tuttavia, se si stanno risolvendo problemi specifici di IIS o ASP.NET, è consigliabile attivare la traccia FREB (buffer degli eventi di richiesta non riuscita). La traccia FREB può fornire maggiori dettagli su questi problemi.
Tabelle e configurazione di diagnostica di Windows Azure
Le tabelle e la configurazione per l'estensione diagnostica di Windows Azure si trovano in C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\Monitor. Questi elementi rappresentano la cache locale su macchina virtuale dei dati WAD.
WAD esegue i passaggi seguenti:
Acquisisce i dati durante la configurazione.
Archivia i dati nei file con estensione tsf personalizzati nella macchina virtuale.
Trasferisce i dati nell'archiviazione in base al periodo di trasferimento pianificato specificato.
Sfortunatamente, poiché i dati sono in un formato tsf personalizzato, il contenuto dei dati WAD è di uso limitato. Ma contengono i file di configurazione di diagnostica utili per risolvere i problemi se WAD non funziona correttamente. Nella cartella Configurazione cercare un file denominato config.xml. Questo file include i dati di configurazione per WAD. Se WAD non funziona correttamente, controllare questo file per assicurarsi che rifletta il modo in cui si prevede che WAD sia configurato.
File di log di memorizzazione nella cache di Windows Azure
I file di log di memorizzazione nella cache di Windows Azure si trovano in C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\AzureCaching. Questi log contengono informazioni dettagliate sulla memorizzazione nella cache basata sui ruoli di Windows Azure. I log consentono di risolvere i problemi in cui la memorizzazione nella cache non funziona come previsto.
Log di WaIISHost
Il log WaIISHost si trova in C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\WaIISHost.log. Contiene informazioni dal processo di WaIISHost.exe . Questo processo è il punto in cui viene eseguito il codice del punto di ingresso del ruolo (WebRole.cs) per WebRoles. La maggior parte di queste informazioni è inclusa anche negli altri log illustrati in questo articolo, ad esempio i registri eventi di Windows Azure. Tuttavia, è possibile trovare occasionalmente informazioni più utili qui.
Log iisConfigurator
Il log IISConfigurator si trova in C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\IISConfigurator.log. Contiene informazioni sul processo IISConfigurator. Questo processo viene usato per eseguire la configurazione IIS effettiva del sito Web, in base al modello definito nei file di definizione del servizio. Il processo raramente non riesce o rileva errori. Tuttavia, se IIS o w3wp.exe non sembra essere configurato correttamente per il servizio, questo log è la posizione da controllare.
File di configurazione del ruolo
Il file di configurazione del ruolo si trova in C:\Config\<DeploymentID>.<RoleName>.<Versione>.xml. Contiene informazioni sulla configurazione per il ruolo, ad esempio gli elementi seguenti:
Impostazioni definite nel file ServiceConfiguration.cscfg
Directory delle risorse locali
Indirizzi IP e porte per IP dinamico (DIP) e IP virtuale (VIP)
Identificazioni personali dei certificati
Probe del servizio di bilanciamento del carico
Altre istanze
Il file di configurazione del ruolo è simile al file di definizione del modello di ruolo in quanto non contiene informazioni generate dal runtime. Tuttavia, può essere utile assicurarsi che il servizio sia configurato come previsto.
File di definizione del modello di ruolo
Il file di definizione del modello di ruolo si trova in E:\RoleModel.xml o F:\RoleModel.xml. Contiene informazioni sulla modalità di definizione del servizio in base al runtime di Azure.
Il file contiene voci per ogni attività di avvio e informazioni sulla modalità di esecuzione dell'attività, incluse le caratteristiche seguenti:
- Background
- Variabili di ambiente
- Ufficio
È anche possibile vedere come viene definito l'elemento <sites> per un ruolo Web.
Il file di definizione del modello di ruolo non contiene informazioni generate dal runtime, ma consente di verificare che Azure esegua il servizio come previsto. Questa verifica spesso consente di usare una versione specifica di una definizione di servizio nel computer di sviluppo, ma il server di compilazione e pacchetto usa un'altra versione dei file di definizione del servizio.
Informazioni sui file ETL
La cartella C:\Logs contiene file RuntimeEvents_<Iteration.etl> e WaAppAgent_<Iteration.etl>. Questi file di log di traccia eventi (ETL) sono tracce ETW (Event Tracing for Windows) che contengono una compilazione delle informazioni disponibili nei registri eventi di Windows Azure, nei log degli agenti guest e in altri log. I file sono una semplice compilazione dei dati di log più importanti in una macchina virtuale di Azure. Poiché i file sono in formato ETL, è necessario eseguire alcuni passaggi aggiuntivi per utilizzare le informazioni. Se si dispone di uno strumento di visualizzazione ETW preferito, è possibile ignorare molti dei file di log indicati. È invece possibile esaminare le informazioni contenute in questi due file ETL.
Passaggi successivi
Ulteriori informazioni
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.