Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe la información de solución de problemas pertinente para usar Azure Diagnostics. Para obtener más información sobre diagnósticos, consulte Azure Diagnostics información general.
Importante
La extensión de Azure Diagnostics se consideró obsoleta el 31 de marzo de 2026 y ya no se admite. No se recomiendan nuevas implementaciones de la extensión. Para garantizar el soporte y el acceso continuos a las nuevas características, migre a las soluciones alternativas recomendadas aquí.
Componentes lógicos
Los componentes son:
- Selector de complementos de diagnóstico (DiagnosticsPluginLauncher.exe): inicia la extensión Diagnostics. Sirve como proceso de punto de entrada.
- Complemento de diagnóstico (DiagnosticsPlugin.exe): configura, inicia y administra la duración del agente de supervisión. Es el proceso principal que lanza el iniciador.
- Agente de supervisión (MonAgent*.exe procesos): supervisa, recopila y transfiere los datos de diagnóstico.
Rutas de acceso de registro y de artefacto
Las rutas de acceso siguientes conducen a algunos registros y artefactos importantes. Nos remitimos a esta información a lo largo de este artículo.
Azure Cloud Services
| Artefacto | Ruta |
|---|---|
| archivo de configuración de Azure Diagnostics | %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\Config.txt |
| Archivos de registro | C:\Logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\ |
| Almacén local para los datos de diagnóstico | C:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Tables |
| Archivo de configuración del agente de supervisión | C:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MaConfig.xml |
| paquete de extensión Azure Diagnostics | %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version> |
| Ruta de acceso a la utilidad de recopilación de registros | %SystemDrive%\Packages\GuestAgent\ |
| Archivo de registro de MonAgentHost | C:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MonAgentHost.<seq_num>.log |
Máquinas virtuales
| Artefacto | Ruta |
|---|---|
| archivo de configuración de Azure Diagnostics | C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\RuntimeSettings |
| Archivos de registro | C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\ |
| Almacén local para los datos de diagnóstico | C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Tables |
| Archivo de configuración del agente de supervisión | C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MaConfig.xml |
| Archivo de estado | C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\Status |
| paquete de extensión Azure Diagnostics | C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion> |
| Ruta de acceso a la utilidad de recopilación de registros | C:\WindowsAzure\Logs\WaAppAgent.log |
| Archivo de registro de MonAgentHost | C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MonAgentHost.<seq_num>.log |
Los datos de métricas no aparecen en el portal de Azure
El diagnóstico proporciona datos de métricas que se pueden mostrar en el portal de Azure. Si tiene problemas para ver los datos en el portal, compruebe la tabla WADMetrics\* en la cuenta de almacenamiento de Diagnósticos para ver si hay los registros de métricas correspondientes y asegúrese de que el proveedor resourceMicrosoft.Insights está registrado.
En este caso, el elemento PartitionKey de la tabla se compone del id. de recursos, la máquina virtual o el conjunto de escalado de máquinas virtuales.
RowKey es el nombre de la métrica, también conocido como nombre del contador de rendimiento.
Si el identificador de recursos es incorrecto, compruebe Configuración de diagnóstico>Métricas>ResourceId para ver si el identificador de recursos está configurado correctamente.
Si no hay ningún dato para la métrica específica, compruebe Configuración de diagnóstico>PerformanceCounter para ver si se incluye la métrica (el contador de rendimiento). Los siguientes contadores se habilitan de forma predeterminada:
- \Procesador(_Total)% de tiempo del procesador
- \Memoria\Bytes disponibles
- \ASP.NET Applications(Total)\Requests/sec
- \ASP.NET Applications(Total)\Errors Total/Sec [\Aplicaciones ASP.NET(Total)\Total de errores/s]
- \ASP.NET\Solicitudes en cola
- \ASP.NET\Solicitudes rechazadas
- \Processor(w3wp)% de tiempo del procesador
- \Process(w3wp)\Private Bytes [\Proceso(w3wp)\Bytes privados]
- \Process(WaIISHost)% de tiempo del procesador
- \Process(WaIISHost)\Private Bytes [\Proceso(WallSHost)\Bytes privados]
- \Process(WaWorkerHost)% de tiempo del procesador
- \Process(WaWorkerHost)\Private Bytes (\Proceso(WaWorkerHost)\Bytes privados)
- \Memory\Page Faults/sec (\Memoria\Errores de página/s)
- .NET CLR Memory(Global)% hora en GC
- \LogicalDisk(C:)\Disk Write Bytes/sec [\DiscoLógico(C:)\Bytes de escritura en disco/segundo]
- \LogicalDisk(C:)\Disk Read Bytes/sec [\DiscoLógico(C:)\Bytes de lectura en disco/s]
- \LogicalDisk(D:)\Disk Write Bytes/sec [\DiscoLógico(D:)\Bytes de escritura en disco/s]
- \LogicalDisk(D:)\Disk Read Bytes/sec [\DiscoLógico(D:)\Bytes de lectura en disco/s]
Si la configuración se ha establecido correctamente, pero todavía no puede ver los datos métricos, siga las instrucciones siguientes para solucionar cualquier problema que tenga.
Azure Diagnostics no se inicia
Examine los archivos DiagnosticsPluginLauncher.log y DiagnosticsPlugin.log en la ubicación de los archivos de registro proporcionada anteriormente, para ver por qué Azure Diagnostics no se pudo iniciar.
Si estos registros indican Monitoring Agent not reporting success after launch, significa que hubo un error al iniciar MonAgentHost.exe. Examine los registros de la ubicación indicada para el MonAgentHost archivo de registro en la sección anterior "Máquinas virtuales".
La última línea de los archivos de registro contiene el código de salida.
DiagnosticsPluginLauncher.exe Information: 0 : [4/16/2016 6:24:15 AM] DiagnosticPlugin exited with code 0
Si encuentra un código de salida negativo, consulte la tabla de códigos de salida en la sección Referencias.
Los datos de diagnóstico no se registran en Azure Storage
Determine si es que no aparece ningún dato o si solo aparecen algunos de ellos.
Registros de infraestructura de diagnóstico
Diagnostics registra todos los errores de los registros de infraestructura de diagnóstico. Asegúrese de habilitar la captura de registros de infraestructura de diagnóstico en la configuración. A continuación, puede buscar rápidamente los errores más relevantes que aparezcan en la DiagnosticInfrastructureLogsTable tabla de la cuenta de almacenamiento configurada.
No aparece ningún dato
La razón más común para que los datos de evento no aparezcan en absoluto, es que la información de la cuenta de almacenamiento se ha definido incorrectamente.
Solución: corrija la configuración de Diagnostics y vuelva a instalar esta extensión.
Si la cuenta de almacenamiento está configurada correctamente, acceda de forma remota a la máquina y compruebe que DiagnosticsPlugin.exe y MonAgentCore.exe se están ejecutando. Si no se ejecutan, siga los pasos descritos en Azure Diagnostics no se inicia.
Si los procesos se están ejecutando, vaya a ¿Se capturan los datos localmente?. A continuación, siga las instrucciones que se indican allí.
Si el problema persiste, pruebe lo siguiente:
- Desinstale el agente.
- Quite el directorio C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics.
- Vuelva a instalar el agente.
No están todos los datos
Si puede ver algunos datos pero no todos, significa que la colección de datos o la canalización de transferencia están configuradas correctamente. Siga las subsecciones que se muestran aquí para acotar el problema.
¿Está configurada la colección?
La configuración de diagnóstico contiene instrucciones que indican que se debe recopilar un tipo determinado de datos. Revise la configuración para comprobar que solo está buscando los datos que configuró para la colección.
¿Genera datos el host?
-
Contadores de rendimiento: abra
perfmony compruebe el contador. -
Registros de seguimiento: conéctese a la máquina virtual mediante Escritorio remoto y agregue
TextWriterTraceListeneral archivo de configuración de la aplicación. Para configurar el cliente de escucha de texto, consulte Creación e inicialización de clientes de escucha de seguimiento. Asegúrese de que el elemento<trace>tenga<trace autoflush="true">. Si no ve los registros de seguimiento que se generan, consulte la sección "Más información sobre los registros de seguimiento que faltan". - Event Tracing for Windows (ETW) traces: Acceso remoto a la máquina virtual e instalar la herramienta PerfView. En PerfView, ejecute Archivo>Comando de usuario>Escuchar etwprovder1>etwprovider2, etc. Tenga en cuenta que el comando Listen distingue mayúsculas de minúsculas y que no puede haber espacios entre la lista de proveedores de ETW separada por comas. Si no se puede ejecutar el comando, seleccione Registrar en la esquina inferior derecha de la herramienta Perfview para ver lo que se intentó ejecutar y cuál fue el resultado. Suponiendo que la entrada sea correcta, aparece una nueva ventana. En unos segundos verá seguimientos de ETW.
- Registros de eventos: conéctese a la máquina virtual mediante Escritorio remoto. Abra Visor de eventos y asegúrese de que existen los eventos.
¿Se capturan los datos localmente?
A continuación, asegúrese de que los datos se capturen localmente. Los datos se almacenan localmente en archivos *.tsf en el almacén local de datos de diagnóstico. Diferentes tipos de registros se recopilan en diferentes archivos *.tsf. Los nombres son similares a los nombres de tabla de Azure Storage.
Por ejemplo, los contadores de rendimiento se recopilan en PerformanceCountersTable.tsf. Los registros de eventos se recopilan en WindowsEventLogsTable.tsf. Siga las instrucciones de la sección Extracción de registros locales para abrir los archivos de recopilación locales y asegúrese de que se recopilan en el disco.
Si no ve los registros que se recopilan localmente y ha comprobado que el host está generando datos, es probable que tenga un problema de configuración. Revise las opciones de configuración.
Igualmente, revise la configuración que se generó para MonitoringAgent MaConfig.xml. Compruebe que haya una sección que describa el origen de los registros de interés y que no se pierda en la conversión entre la configuración de Diagnostics y la del agente de supervisión.
¿Se transfieren los datos?
Si ha comprobado que los datos se capturan localmente, pero aún no los ve en la cuenta de almacenamiento, siga estos pasos:
- Compruebe que proporcionó una cuenta de almacenamiento correcta y que no realizó un cambio de claves para la cuenta de almacenamiento indicada. Para Azure Cloud Services, a veces los usuarios no actualizan
useDevelopmentStorage=true. - Compruebe que la cuenta de almacenamiento proporcionada es correcta. Asegúrese de que no tenga restricciones de red que no permitan que los componentes alcancen los puntos de conexión de almacenamiento público. Una forma de hacerlo consiste en conectarse a la máquina mediante Escritorio remoto e intentar escribir algo en la misma cuenta de almacenamiento.
- Por último, puede ver qué errores ha notificado el agente de supervisión. El agente de supervisión escribe sus registros en maeventtable.tsf, que se encuentra en el almacén local de datos de diagnóstico. Para abrir este archivo, siga las instrucciones de la sección Extracción de registros local . A continuación, intente determinar si hay
errorsque indiquen la imposibilidad de leer archivos locales o de escribir en el almacenamiento.
Captura y archivado de registros
Si va a ponerse en contacto con el servicio técnico, lo primero que podrían pedirle es que recopilara registros de su máquina. Para ahorrar tiempo, hágalo usted mismo. Ejecute la utilidad CollectGuestLogs.exe en la ruta de la utilidad de recopilación de registros. Genera un archivo .zip con todos los registros de Azure pertinentes en la misma carpeta.
Tablas de datos de diagnóstico no encontradas
Las tablas de Azure Storage que contienen eventos ETW se denominan mediante el código siguiente:
if (String.IsNullOrEmpty(eventDestination)) {
if (e == "DefaultEvents")
tableName = "WADDefault" + MD5(provider);
else
tableName = "WADEvent" + MD5(provider) + eventId;
}
else
tableName = "WAD" + eventDestination;
Este es un ejemplo:
<EtwEventSourceProviderConfiguration provider="prov1">
<Event id="1" />
<Event id="2" eventDestination="dest1" />
<DefaultEvents />
</EtwEventSourceProviderConfiguration>
<EtwEventSourceProviderConfiguration provider="prov2">
<DefaultEvents eventDestination="dest2" />
</EtwEventSourceProviderConfiguration>
"EtwEventSourceProviderConfiguration": [
{
"provider": "prov1",
"Event": [
{
"id": 1
},
{
"id": 2,
"eventDestination": "dest1"
}
],
"DefaultEvents": {
"eventDestination": "DefaultEventDestination",
"sinks": ""
}
},
{
"provider": "prov2",
"DefaultEvents": {
"eventDestination": "dest2"
}
}
]
Este código genera cuatro tablas:
| Evento | Nombre de la tabla |
|---|---|
| provider="prov1" <Identificador de Evento="1" /> | WADEvent+MD5("prov1")+"1" |
| provider="prov1" <Event ID="2" eventDestination="dest1" /> | WADdest1 |
| proveedor="prov1" <DefaultEvents /> | WADDefault+MD5("prov1") |
| proveedor="prov2" <DefaultEvents eventDestination="dest2" /> | WADdest2 |
Referencias
Consulte las referencias siguientes.
Comprobación de la configuración de la extensión Diagnostics
La manera más fácil de comprobar la configuración de la extensión es ir a Azure Explorador de recursos. A continuación, vaya a la máquina virtual o al servicio en la nube donde se encuentra la extensión Diagnostics (IaaSDiagnostics/PaaDiagnostics).
Como alternativa, puede conectarse a la máquina mediante Escritorio remoto y examinar el archivo de configuración de Diagnostics que se describe en la sección Ruta de acceso de artefactos de registro.
En cualquier caso, busque Microsoft.Azure.Diagnostics y el campo xmlCfg o WadCfg.
Si está buscando en alguna máquina virtual y está presente el campo WadCfg, significa que la configuración está en formato JSON. Si el campo xmlCfg existe, significa que la configuración se ha realizado en XML y está codificada en Base 64. Debe descodificarlo para ver el XML cargado por Diagnostics.
Para el rol de servicio en la nube, si elige la configuración del disco, los datos se codifican en base64. Debe descodificarlo para ver el XML cargado por Diagnostics.
códigos de salida del complemento Azure Diagnostics
El complemento devuelve los siguientes códigos de salida:
- 0— Éxito.
- -1: error genérico.
- -2: no se puede cargar el archivo rcf. Este error interno solo debería ocurrir si el iniciador del complemento del agente invitado se invoca manualmente de forma incorrecta en la máquina virtual.
- -3: no se puede cargar el archivo de configuración de diagnóstico. Esto se debe a que un archivo de configuración no supera la validación del esquema. Solución: Proporcione un archivo de configuración que cumpla con el esquema.
- -4—Otra instancia del agente de supervisión Diagnostics ya está utilizando el directorio local de recursos. Solución: Especifique un valor diferente para LocalResourceDirectory.
- -6: el iniciador del complemento del agente invitado intentó iniciar Diagnósticos con una línea de comandos no válida. Este error interno solo debería ocurrir si el iniciador del complemento del agente invitado se invoca manualmente de forma incorrecta en la máquina virtual.
- -10: el complemento Diagnóstico se cerró con una excepción no controlada.
- -11: el agente invitado no pudo crear el proceso responsable de iniciar y supervisar el agente de supervisión. Solución: Compruebe que hay suficientes recursos del sistema disponibles para iniciar nuevos procesos.
- -101: argumentos no válidos al llamar al complemento Diagnostics. Este error interno solo debería ocurrir si el iniciador del complemento del agente invitado se invoca manualmente de forma incorrecta en la máquina virtual.
- -102: el proceso del complemento no se puede inicializar a sí mismo. Solución: Compruebe que hay suficientes recursos del sistema disponibles para iniciar nuevos procesos.
- -103: el proceso del complemento no se puede inicializar a sí mismo. En concreto, no se puede crear el objeto del registrador. Solución: Compruebe que hay suficientes recursos del sistema disponibles para iniciar nuevos procesos.
- -104: no se puede cargar el archivo rcf proporcionado por el agente invitado. Este error interno solo debería ocurrir si el iniciador del complemento del agente invitado se invoca manualmente de forma incorrecta en la máquina virtual.
- -105: el complemento Diagnostics no puede abrir el archivo de configuración diagnóstico. Este error interno solo debe producirse si el complemento Diagnostics se invoca manualmente de forma incorrecta en la máquina virtual.
- -106: no se puede leer el archivo de configuración de diagnóstico. Esto se debe a que un archivo de configuración no supera la validación del esquema. Solución: Proporcione un archivo de configuración que cumpla con el esquema. Para más información, consulte Comprobación de la configuración de la extensión Diagnostics.
- -107—El directorio de recursos proporcionado al agente de supervisión no es válido. Este error interno solo debería ocurrir si el agente de supervisión se invoca manualmente y de forma incorrecta en la máquina virtual.
- -108: no se puede convertir el archivo de configuración de diagnóstico en el archivo de configuración del agente de supervisión. Este error interno solo debería ocurrir si el complemento Diagnostics se invoca manualmente con un archivo de configuración no válido.
- -110: error de configuración de diagnóstico general. Este error interno solo debería ocurrir si el complemento Diagnostics se invoca manualmente con un archivo de configuración no válido.
- -111—No se puede iniciar el agente de monitorización. Solución: Compruebe que hay suficientes recursos del sistema disponibles.
- -112—Error general.
Extracción de registros locales
El agente de supervisión recopila registros y artefactos como archivos .tsf. El archivo .tsf no se puede leer pero puede convertirlo a .csv de la manera siguiente:
<Azure diagnostics extension package>\Monitor\x64\table2csv.exe <relevantLogFile>.tsf
Un archivo nuevo llamado <relevantLogFile>.csv se crea en la misma ruta de acceso que el archivo .tsf correspondiente.
Nota:
Solo debe ejecutar esta utilidad con el archivo .tsf principal (por ejemplo, PerformanceCountersTable.tsf). Los archivos complementarios (por ejemplo, PerformanceCountersTables_\*\*001.tsf, PerformanceCountersTables_\*\*002.tsf) se procesan automáticamente.
Más información sobre los registros de seguimiento que faltan
Nota:
La siguiente información se aplica principalmente a Azure Cloud Services a menos que haya configurado la DiagnosticsMonitorTraceListener en una aplicación que se ejecuta en la máquina virtual de infraestructura como servicio (IaaS).
- Asegúrese de que DiagnosticMonitorTraceListener esté configurado en el archivo web.config o app.config. De forma predeterminada se configura en los proyectos de servicios en la nube. Sin embargo, algunos clientes lo convierten en comentario, lo que hace que Diagnostics no recopile las instrucciones de seguimiento.
- Si no se escriben registros con el método OnStart o Run, asegúrese de que DiagnosticMonitorTraceListener se encuentre en app.config. De forma predeterminada está en web.config, pero eso solo se aplica al código que se ejecuta en w3wp.exe. Debido a ello, debe estar en app.config para que se capturen los seguimientos que se ejecutan en WaIISHost.exe.
- Asegúrese de que usa Diagnostics.Trace.TraceXXX en lugar de Diagnostics.Debug.WriteXXX. Las instrucciones de depuración se quitarán de una compilación de versión.
- Asegúrese de que el código compilado tenga realmente las líneas de Diagnostics.Trace. Use Reflector, ildasm o ILSpy para comprobarlo. Los comandos Diagnostics.Trace se quitan del binario compilado a menos que se use el símbolo de compilación condicional TRACE. Si usa MSBuild para compilar el proyecto, este es un problema habitual con el que se encontrará.
Problemas conocidos y mitigaciones
Los siguientes problemas conocidos tienen soluciones.
dependencia de .NET 4.5
La extensión Azure Diagnostics para Windows tiene una dependencia en tiempo de ejecución de .NET Framework 4.5 o posterior. En el momento de redactarlo, todas las máquinas que se aprovisionan para Azure Cloud Services y todas las imágenes oficiales basadas en máquinas virtuales de Azure tienen .NET 4.5 o posterior instalado.
Todavía es posible encontrar una situación en la que intente ejecutar la extensión Azure Diagnostics para Windows en un equipo que no tenga .NET 4.5 o posterior. Esta situación sucede cuando se crea la máquina a partir de una imagen o instantánea anterior, o cuando se proporciona un disco propio personalizado.
Por lo general, este problema se manifiesta como un código de salida 255 al ejecutar DiagnosticsPluginLauncher.exe. El error se produce debido a la siguiente excepción no controlada:
System.IO.FileLoadException: Could not load file or assembly 'System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies
Mitigación: Instale .NET 4.5 o posterior en su equipo.
Los datos de los contadores de rendimiento están disponibles en el almacenamiento, pero no se muestran en el portal
La experiencia del portal de las máquinas virtuales muestra de forma predeterminada determinados contadores de rendimiento. Si no ve los contadores de rendimiento y sabe que los datos se están generando porque están disponibles en el almacenamiento, compruebe lo siguiente:
Si los datos del almacenamiento tienen nombres de contadores en inglés. Si los nombres de contador no están en inglés, el gráfico de métricas del portal no puede reconocerlo.
- Mitigación: cambie el idioma de la máquina a inglés en las cuentas del sistema. Para cambiarlo, seleccione Panel de control>Region>Administrative>Copy Settings. A continuación, anule la selección de la opción Welcome screen and system accounts para que el idioma personalizado no se aplique a la cuenta del sistema.
Si usa caracteres comodín (*) en los nombres de los contadores de rendimiento, el portal no podrá correlacionar el contador configurado y el recopilado cuando los contadores de rendimiento se envíen al receptor de Azure Storage.
- Mitigación: para asegurarse de que puede usar caracteres comodín y que tiene el portal expandido (*), enrute los contadores de rendimiento hacia el receptor de Azure Monitor.