Solución de problemas de Azure DiagnosticsAzure Diagnostics troubleshooting

En este artículo se proporciona información para la solución de problemas relacionados con el uso de Azure Diagnostics.This article describes troubleshooting information that's relevant to using Azure Diagnostics. Para obtener información sobre Azure Diagnostics, consulte la introducción a Azure Diagnostics.For more information about Azure diagnostics, see Azure Diagnostics overview.

Componentes lógicosLogical components

Diagnostics Plugin Launcher (DiagnosticsPluginLauncher.exe) : inicia la extensión Azure Diagnostics.Diagnostics Plugin Launcher (DiagnosticsPluginLauncher.exe): Launches the Azure Diagnostics extension. Funciona como el proceso de punto de entrada.Serves as the entry point process.

Diagnostics Plugin (DiagnosticsPlugin.exe) : configura, inicia y administra la duración del agente de supervisión.Diagnostics Plugin (DiagnosticsPlugin.exe): Configures, launches, and manages the lifetime of the monitoring agent. Es el proceso principal que ejecuta el iniciador.It is the main process that is launched by the launcher.

Agente de supervisión (procesos de MonAgent*.exe) : supervisa, recopila y transfiere los datos de diagnóstico.Monitoring Agent (MonAgent*.exe processes): Monitors, collects, and transfers the diagnostics data.

Rutas de acceso de registro y de artefactoLog/artifact paths

Estas son las rutas de acceso a algunos de los registros y artefactos más importantes.Following are the paths to some important logs and artifacts. Se tendrá en cuenta esta información a lo largo del documento.We refer to this information throughout the rest of the document.

Azure Cloud ServicesAzure Cloud Services

ArtefactoArtifact PathPath
Archivo de configuración de Azure DiagnosticsAzure Diagnostics configuration file %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\Config.txt%SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\Config.txt
Archivos de registroLog files C:\Logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>C:\Logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\
Almacén local para los datos de diagnósticoLocal store for diagnostics data C:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\TablesC:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Tables
Archivo de configuración del agente de supervisiónMonitoring agent configuration file C:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MaConfig.xmlC:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MaConfig.xml
Paquete de extensión de Azure DiagnosticsAzure Diagnostics extension package %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>%SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>
Ruta de acceso a la utilidad de recopilación de registrosLog collection utility path %SystemDrive%\Packages\GuestAgent%SystemDrive%\Packages\GuestAgent\
Archivo de registro de MonAgentHostMonAgentHost log file C:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MonAgentHost.<seq_num>.logC:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MonAgentHost.<seq_num>.log

Máquinas virtualesVirtual machines

ArtefactoArtifact PathPath
Archivo de configuración de Azure DiagnosticsAzure Diagnostics configuration file C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\RuntimeSettingsC:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\RuntimeSettings
Archivos de registroLog files C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\
Almacén local para los datos de diagnósticoLocal store for diagnostics data C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\TablesC:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Tables
Archivo de configuración del agente de supervisiónMonitoring agent configuration file C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MaConfig.xmlC:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MaConfig.xml
Archivo de estadoStatus file C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\StatusC:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\Status
Paquete de extensión de Azure DiagnosticsAzure Diagnostics extension package C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>
Ruta de acceso a la utilidad de recopilación de registrosLog collection utility path C:\WindowsAzure\Logs\WaAppAgent.logC:\WindowsAzure\Logs\WaAppAgent.log
Archivo de registro de MonAgentHostMonAgentHost log file C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MonAgentHost.<seq_num>.logC:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MonAgentHost.<seq_num>.log

Los datos métricos no aparecen en Azure PortalMetric data doesn't appear in the Azure portal

Azure Diagnostics proporciona una serie de datos métricos, que se pueden mostrar en Azure Portal.Azure Diagnostics provides metric data that can be displayed in the Azure portal. Si tiene problemas para ver los datos en el portal, consulte la tabla WADMetrics* de la cuenta de almacenamiento de Azure Diagnostics para ver si los registros de las métricas correspondientes están presentes y para asegurarse que el proveedor de recursos Microsoft.Insights esté registrado.If you have problems seeing the data in portal, check the WADMetrics* table in the Azure Diagnostics storage account to see if the corresponding metric records are there and ensure that the resource provider Microsoft.Insights is registered.

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.Here, the PartitionKey of the table is the resource ID, virtual machine, or virtual machine scale set. RowKey es el nombre de la métrica (también conocido como el nombre del contador de rendimiento).RowKey is the metric name (also known as the performance counter name).

Si el identificador del recurso es incorrecto, compruebe la opción Diagnóstico Configuración > Métricas > ResourceId para ver si el identificador del recurso está bien definido.If the resource ID is incorrect, check Diagnostics Configuration > Metrics > ResourceId to see if the resource ID is set correctly.

Si no hay ningún dato para la métrica específica, compruebe la opción Configuración de diagnóstico > Contador de rendimiento para ver si se incluye la métrica (el contador de rendimiento).If there's no data for the specific metric, check Diagnostics Configuration > PerformanceCounter to see if the metric (performance counter) is included. Los siguientes contadores se habilitan de forma predeterminada:We enable the following counters by default:

  • Procesador(_Total)% Hora del procesador\Processor(_Total)% Processor Time
  • \Memoria\Bytes disponibles\Memory\Available Bytes
  • \ASP.NET Applications(Total)\Requests/Sec [\Aplicaciones ASP.NET(Total)\Solicitudes/s]\ASP.NET Applications(Total)\Requests/Sec
  • \ASP.NET Applications(Total)\Errors Total/Sec [\Aplicaciones ASP.NET(Total)\Total de errores/s]\ASP.NET Applications(Total)\Errors Total/Sec
  • \ASP.NET\Requests Queued (\ASP.NET\Solicitudes en cola)\ASP.NET\Requests Queued
  • \ASP.NET\Requests Rejected (\ASP.NET\Solicitudes rechazadas)\ASP.NET\Requests Rejected
  • \Processor(w3wp)% Processor Time [\Procesador(w3wp) Tiempo de procesador]\Processor(w3wp)% Processor Time
  • \Process(w3wp)\Private Bytes [\Proceso(w3wp)\Bytes privados]\Process(w3wp)\Private Bytes
  • \Process(WaIISHost)% Processor Time [\Proceso(WaIISHost) Tiempo de procesador]\Process(WaIISHost)% Processor Time
  • \Process(WaIISHost)\Private Bytes [\Proceso(WallSHost)\Bytes privados]\Process(WaIISHost)\Private Bytes
  • \Process(WaWorkerHost)% Processor Time [\Proceso(WaWorkerHost) Tiempo de procesador]\Process(WaWorkerHost)% Processor Time
  • \Process(WaWorkerHost)\Private Bytes (\Proceso(WaWorkerHost)\Bytes privados)\Process(WaWorkerHost)\Private Bytes
  • \Memory\Page Faults/sec (\Memoria\Errores de página/s)\Memory\Page Faults/sec
  • .NET CLR Memory(Global)% Time in GC [Memoria CLR NET(Global) Tiempo en GC].NET CLR Memory(Global)% Time in GC
  • \LogicalDisk(C:)\Disk Write Bytes/sec [\DiscoLógico(C:)\Bytes de escritura en disco/segundo]\LogicalDisk(C:)\Disk Write Bytes/sec
  • \LogicalDisk(C:)\Disk Read Bytes/sec [\DiscoLógico(C:)\Bytes de lectura en disco/s]\LogicalDisk(C:)\Disk Read Bytes/sec
  • \LogicalDisk(D:)\Disk Write Bytes/sec [\DiscoLógico(D:)\Bytes de escritura en disco/s]\LogicalDisk(D:)\Disk Write Bytes/sec
  • \LogicalDisk(D:)\Disk Read Bytes/sec [\DiscoLógico(D:)\Bytes de lectura en disco/s]\LogicalDisk(D:)\Disk Read Bytes/sec

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.If the configuration is set correctly but you still can't see the metric data, use the following guidelines to help you troubleshoot.

Azure Diagnostics no se iniciaAzure Diagnostics is not starting

Examine los archivos DiagnosticsPluginLauncher.log y DiagnosticsPlugin.log en la ubicación de los archivos de registro proporcionada anteriormente, para obtener información sobre por qué Azure Diagnostics no se pudo iniciar.For information about why Azure Diagnostics failed to start, see the DiagnosticsPluginLauncher.log and DiagnosticsPlugin.log files in the log files location that was provided earlier.

Si estos registros indican Monitoring Agent not reporting success after launch, significa que hubo un error al iniciar MonAgentHost.exe.If these logs indicate Monitoring Agent not reporting success after launch, it means there was a failure launching MonAgentHost.exe. Examine los registros en la ubicación que se indicó para MonAgentHost log file en la sección anterior.Look at the logs in the location that's indicated for MonAgentHost log file in the previous section.

La última línea de los archivos de registro contiene el código de salida.The last line of the log files contains the exit code.

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.If you find a negative exit code, refer to the exit code table in the References section.

Los datos de diagnóstico no se registran en Azure StorageDiagnostics data is not logged to Azure Storage

Compruebe si no aparece ningún dato o si solo aparece parte de ellos.Determine if none of the data is appearing or some of the data is appearing.

Registros de infraestructura de diagnósticoDiagnostics infrastructure logs

Diagnostics registra todos los errores de los registros de infraestructura de diagnóstico.Diagnostics logs all errors in the Diagnostics infrastructure logs. Asegúrese de que ha habilitado la opción de captura de registros de infraestructura de diagnóstico en la configuración.Make sure you have enabled the capture of Diagnostics infrastructure logs in your configuration. A continuación, puede buscar rápidamente los errores más relevantes que aparezcan en la DiagnosticInfrastructureLogsTable tabla de la cuenta de almacenamiento configurada.Then you can quickly look for any relevant errors that appear in the DiagnosticInfrastructureLogsTable table in your configured storage account.

No aparece ningún datoNo data is appearing

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.The most common reason that event data doesn't appear at all is that the storage account information is defined incorrectly.

Solución: corrija la configuración de Diagnostics y vuelva a instalar esta extensión.Solution: Correct your Diagnostics configuration and reinstall Diagnostics.

Si la cuenta de almacenamiento está configurada correctamente, conéctese a la máquina mediante acceso remoto y asegúrese de que DiagnosticsPlugin.exe y MonAgentCore.exe se están ejecutando.If the storage account is configured correctly, remote access into the machine and verify that DiagnosticsPlugin.exe and MonAgentCore.exe are running. Si no se están ejecutando, siga las instrucciones de la sección Azure Diagnostics no se inicia.If they aren't running, follow the steps in Azure Diagnostics is not starting.

Si los procesos están en ejecución, vaya a ¿Se capturan los datos localmente? y siga las instrucciones que se detallan allí.If the processes are running, go to Is data getting captured locally? and follow the instructions there.

Si el problema no se soluciona, pruebe a llevar a cabo las acciones siguientes:If this doesn't solve the problem, try to:

  1. Desinstalación del agenteUninstall the agent
  2. Eliminación del directorio C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnosticsRemove directory C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics
  3. Instalación del agente de nuevoInstall agent again

No están todos los datosPart of the data is missing

Si puede ver algunos de los datos pero no todos, esto quiere decir que la colección de datos o la canalización de transferencia están configuradas correctamente.If you are getting some data but not all, it means that the data collection/transfer pipeline is set correctly. Siga las subsecciones que se muestran aquí para acotar el problema.Follow the subsections here to narrow down the issue.

¿Está configurada la colección?Is the collection configured?

La configuración de diagnóstico contiene instrucciones que indican que se debe recopilar un tipo determinado de datos.The Diagnostics configuration contains instructions for a particular type of data to be collected. Revise la configuración para comprobar que solo está buscando los datos que configuró en la colección.Review your configuration to verify that you are only looking for data that you've configured for the collection.

¿Genera datos el host?Is the host generating data?

  • Contadores de rendimiento: abra el monitor de rendimiento y compruebe el contador.Performance counters: Open perfmon and check the counter.

  • Registros de seguimiento: conéctese a la máquina virtual mediante Escritorio remoto y agregue TextWriterTraceListener al archivo de configuración de la aplicación.Trace logs: Remote access into the VM and add a TextWriterTraceListener to the app’s config file. Consulte https://msdn.microsoft.com/library/sk36c28t.aspx para configurar el agente de escucha de texto.See https://msdn.microsoft.com/library/sk36c28t.aspx to set up the text listener. Asegúrese de que el elemento <trace> tenga <trace autoflush="true">.Make sure the <trace> element has <trace autoflush="true">.
    Si no ve que se generen registros de seguimiento, consulte Más información sobre los registros de seguimiento que faltan.If you don't see trace logs being generated, see More about trace logs missing.

  • Seguimientos de ETW: conéctese a la máquina virtual mediante Escritorio remoto e instale PerfView.ETW traces: Remote access into the VM and install PerfView. En PerfView, ejecute Archivo > Comando de usuario > Escuchar etwprovder1 > etwprovider2 etc.In PerfView, run File > User Command > Listen etwprovder1 > etwprovider2, and so on. Tenga en cuenta que el comando de escucha distingue mayúsculas de minúsculas y que no puede haber espacios entre la lista de proveedores de ETW separados por comas.The Listen command is case-sensitive, and there cannot be spaces between the comma-separated list of ETW providers. Si no se puede ejecutar el comando, puede hacer clic en el botón Registrar en la esquina inferior derecha de la herramienta Perfview para ver lo que se intentó ejecutar y cuál fue el resultado.If the command fails to run, you can select the Log button in the bottom right of the Perfview tool to see what attempted to run and what the result was. Suponiendo que la entrada es correcta, aparece una nueva ventana.Assuming the input is correct, a new window pops up. En unos segundos, empezará a ver los seguimientos de ETW.In a few seconds, you begin seeing ETW traces.

  • Registros de eventos: conéctese a la máquina virtual mediante Escritorio remoto.Event logs: Remote access into the VM. Abra Event Viewer y asegúrese de que los eventos estén ahí.Open Event Viewer, and then ensure that the events exist.

¿Se capturan los datos localmente?Is data getting captured locally?

A continuación, asegúrese de que los datos se capturen localmente.Next, make sure the data is getting captured locally. Los datos se almacenan localmente en archivos *.tsf en el almacén local de datos de diagnóstico.The data is locally stored in *.tsf files in the local store for diagnostics data. Diferentes tipos de registros se recopilan en diferentes archivos .tsf.Different kinds of logs get collected in different .tsf files. Los nombres son similares a los nombres de tablas de Azure Storage.The names are similar to the table names in Azure Storage.

Por ejemplo, los Performance Counters se obtienen en PerformanceCountersTable.tsf.For example, Performance Counters get collected in PerformanceCountersTable.tsf. Los registros de eventos se obtienen en WindowsEventLogsTable.tsf.Event logs get collected in 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.Use the instructions in the Local log extraction section to open the local collection files and verify that you see them getting collected on disk.

Si no ve que los registros se recopilen localmente y ya ha comprobado que el host genera datos, es probable que tenga un problema de configuración.If you don't see logs getting collected locally, and have already verified that the host is generating data, you likely have a configuration issue. Revise las opciones de configuración.Review your configuration carefully.

Igualmente, revise la configuración que se generó para MonitoringAgent MaConfig.xml.Also review the configuration that was generated for MonitoringAgent MaConfig.xml. Compruebe que haya una sección que describa el origen de los registros correspondientes.Verify that there is a section that describes the relevant log source. A continuación, que no se pierdan en la conversión entre la configuración de Diagnostics y la del agente de supervisión.Then verify that it is not lost in translation between the Diagnostics configuration and the monitoring agent configuration.

¿Se transfieren los datos?Is data getting transferred?

Si ha comprobado que los datos se capturan localmente, pero sigue sin verlos en su cuenta de almacenamiento, siga estos pasos:If you have verified that the data is getting captured locally but you still don't see it in your storage account, take the following steps:

  • Asegúrese de que haya proporcionado una cuenta de almacenamiento correcta y que no haya sustituido las claves de la cuenta de almacenamiento propuesta.Verify that you have provided a correct storage account, and that you haven't rolled over keys for the given storage account. Al usar Azure Cloud Services, hay que tener en cuenta que en ocasiones los usuarios no actualizan useDevelopmentStorage=true.For Azure Cloud Services, sometimes we see that people don't update useDevelopmentStorage=true.

  • Compruebe que la cuenta de almacenamiento proporcionada es correcta.Verify that the provided storage account is correct. 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.Make sure you don't have network restrictions that prevent the components from reaching public storage endpoints. Una forma de hacerlo consiste en conectarse a la máquina mediante Escritorio remoto e intentar escribir algo en la misma cuenta de almacenamiento.One way to do that is to remote access into the machine, and then try to write something to the same storage account yourself.

  • Por último, intente ver qué errores notifica el agente de supervisión.Finally, you can look at what failures are being reported by the monitoring Agent. El agente de supervisión escribe sus registros en maeventtable.tsf, que se encuentra en el almacén local de datos de diagnóstico.The monitoring agent writes its logs in maeventtable.tsf, which is located in the local store for diagnostics data. Siga las instrucciones de la sección Extracción de registros locales para abrir este archivo.Follow the instructions in the Local log extraction section for opening this file. A continuación, intente determinar si hay errors que indiquen la imposibilidad de leer archivos locales o de escribir en el almacenamiento.Then try to determine if there are errors that indicate failures reading to local files writing to storage.

Captura y archivo de registrosCapturing and archiving logs

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.If you are thinking about contacting support, the first thing they might ask you is to collect logs from your machine. Para ahorrar tiempo, hágalo usted mismo.You can save time by doing that yourself. Ejecute la utilidad CollectGuestLogs.exe en Ruta de acceso a la utilidad de recopilación de registros.Run the CollectGuestLogs.exe utility at Log collection utility path. Se creará un archivo .zip que contiene todos los registros relevantes de Azure en la misma carpeta.It generates a .zip file with all relevant Azure logs in the same folder.

Tablas de datos de diagnóstico no encontradasDiagnostics data tables not found

Las tablas de Azure Storage que contienen eventos de ETW se nombran mediante el código siguiente:The tables in Azure storage that hold ETW events are named by using the following code:

        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:Here is an example:

        <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:This code generates four tables:

EventoEvent Nombre de la tablaTable name
proveedor="prov1" <Id. de evento="1" />provider="prov1" <Event id="1" /> WADEvent+MD5("prov1")+"1"WADEvent+MD5("prov1")+"1"
proveedor ="prov1" <ID. de evento="2" eventDestination="dest1" />provider="prov1" <Event id="2" eventDestination="dest1" /> WADdest1WADdest1
proveedor="prov1" <DefaultEvents />provider="prov1" <DefaultEvents /> WADDefault+MD5("prov1")WADDefault+MD5("prov1")
proveedor="prov2" <DefaultEvents eventDestination="dest2" />provider="prov2" <DefaultEvents eventDestination="dest2" /> WADdest2WADdest2

ReferenciasReferences

Cómo comprobar la configuración de la extensión de DiagnosticsHow to check Diagnostics extension configuration

La manera más sencilla de comprobar la configuración de su extensión es ir a Azure Resource Explorer y desplazarse a la máquina virtual o al servicio en la nube en los que se encuentra la extensión de Azure Diagnostics (IaaSDiagnostics/PaaDiagnostics) en cuestión.The easiest way to check your extension configuration is to go to Azure Resource Explorer, and then go to the virtual machine or cloud service where the Azure Diagnostics extension (IaaSDiagnostics / PaaDiagnostics) is.

Como alternativa, puede conectarse a la máquina mediante Escritorio remoto y examinar el archivo de configuración de Azure Diagnostics que se describe en la sección Rutas de acceso de registro y artefacto.Alternatively, remote desktop into the machine and look at the Azure Diagnostics Configuration file that's described in the Log artifacts path section.

En cualquier caso, busque Microsoft.Azure.Diagnostics y, a continuación, el campo xmlCfg o WadCfg.In either case, search for Microsoft.Azure.Diagnostics, and then for the xmlCfg or WadCfg field.

Si está buscando en alguna máquina virtual y está presente el campo WadCfg, significa que la configuración está en formato JSON.If you're searching on a virtual machine and the WadCfg field is present, it means the config is in JSON format. Si el campo xmlCfg está presente, significa que la configuración se ha realizado en XML y está codificada en Base 64.If the xmlCfg field is present, it means the config is in XML and is base64-encoded. Debe descodificarlo para ver el XML que cargó Diagnostics.You need to decode it to see the XML that was loaded by Diagnostics.

En cuanto al rol de servicio en la nube, si elige la configuración del disco, los datos se codifican en Base64, por lo que deberá descodificarlos para ver el XML que se cargó mediante Diagnostics.For the cloud service role, if you pick the configuration from disk, the data is base64-encoded, so you need to decode it to see the XML that was loaded by Diagnostics.

Códigos de salida del complemento Azure DiagnosticsAzure Diagnostics plugin exit codes

El complemento devuelve los siguientes códigos de salida:The plugin returns the following exit codes:

Código de salidaExit code DescripciónDescription
00 Correcto.Success.
-1-1 Error genérico.Generic error.
-2-2 No se puede cargar el archivo rcf.Unable to load the rcf file.

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.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-3-3 No se puede cargar el archivo de configuración de Diagnósticos.Cannot load the Diagnostics configuration file.

Solución: Esto se debe a que un archivo de configuración no supera la validación del esquema.Solution: Caused by a configuration file not passing schema validation. La solución es proporcionar un archivo de configuración que cumpla el esquema.The solution is to provide a configuration file that complies with the schema.

-4-4 Ya hay otra instancia de Diagnósticos del agente de supervisión que usa el directorio de recursos local.Another instance of the monitoring agent Diagnostics is already using the local resource directory.

Solución: especifique un valor distinto para LocalResourceDirectory.Solution: Specify a different value for LocalResourceDirectory.

-6-6 El iniciador del complemento del agente invitado intentó iniciar Diagnósticos con una línea de comandos no válida.The guest agent plugin launcher attempted to launch Diagnostics with an invalid command line.

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.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-10-10 El complemento Diagnósticos se cerró con una excepción no controlada.The Diagnostics plugin exited with an unhandled exception.
-11-11 El agente invitado no pudo crear el proceso encargado de iniciar y supervisar al agente de supervisión.The guest agent was unable to create the process responsible for launching and monitoring the monitoring agent.

Solución: compruebe que hay disponibles recursos del sistema suficientes para iniciar nuevos procesos.Solution: Verify that sufficient system resources are available to launch new processes.

-101-101 Argumentos no válidos al llamar al complemento Diagnósticos.Invalid arguments when calling the Diagnostics plugin.

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.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-102-102 El proceso del complemento no se puede iniciar por sí mismo.The plugin process is unable to initialize itself.

Solución: compruebe que hay disponibles recursos del sistema suficientes para iniciar nuevos procesos.Solution: Verify that sufficient system resources are available to launch new processes.

-103-103 El proceso del complemento no se puede iniciar por sí mismo.The plugin process is unable to initialize itself. Concretamente, no puede crear el objeto del registrador.Specifically, it is unable to create the logger object.

Solución: compruebe que hay disponibles recursos del sistema suficientes para iniciar nuevos procesos.Solution: Verify that sufficient system resources are available to launch new processes.

-104-104 No se puede cargar el archivo rcf proporcionado por el agente invitado.Unable to load the rcf file provided by the guest agent.

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.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-105-105 El complemento Diagnósticos no puede abrir el archivo de configuración de Diagnósticos.The Diagnostics plugin cannot open the Diagnostics configuration file.

Este error interno solo debería ocurrir si el complemento de Diagnostics se invoca manualmente de forma incorrecta en la máquina virtual.This internal error should only happen if the Diagnostics plugin is manually invoked incorrectly on the VM.

-106-106 No se puede leer el archivo de configuración de Diagnósticos.Cannot read the Diagnostics configuration file.

Esto se debe a que un archivo de configuración no supera la validación del esquema.Caused by a configuration file not passing schema validation.

Solución: proporcione un archivo de configuración que cumpla el esquema.Solution: Provide a configuration file that complies with the schema. Para obtener más información, consulte Cómo comprobar la configuración de la extensión de Diagnostics.For more information, see How to check Diagnostics Extension Configuration.

-107-107 El directorio de recursos pasado al agente de supervisión no es válido.The resource directory pass to the monitoring agent is invalid.

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.This internal error should only happen if the monitoring agent is manually invoked incorrectly on the VM.

-108-108 No se puede convertir el archivo de configuración de Diagnósticos al archivo de configuración del agente de supervisión.Unable to convert the Diagnostics configuration file into the monitoring agent configuration file.

Este error interno solo debería ocurrir si el complemento Diagnósticos se invoca manualmente con un archivo de configuración no válido.This internal error should only happen if the Diagnostics plugin is manually invoked with an invalid configuration file.

-110-110 Error de configuración general de Diagnósticos.General Diagnostics configuration error.

Este error interno solo debería ocurrir si el complemento Diagnósticos se invoca manualmente con un archivo de configuración no válido.This internal error should only happen if the Diagnostics plugin is manually invoked with an invalid configuration file.

-111-111 No se puede iniciar el agente de supervisión.Unable to start the monitoring agent.

Solución: compruebe que hay suficientes recursos del sistema disponibles.Solution: Verify that sufficient system resources are available.

-112-112 Error generalGeneral error

Extracción de registros localesLocal log extraction

El agente de supervisión recopila registros y artefactos como archivos .tsf.The monitoring agent collects logs and artifacts as .tsf files. El archivo .tsf no se puede leer pero puede convertirlo a .csv de la manera siguiente:The .tsf file is not readable but you can convert it into a .csv as follows:

<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.A new file called <relevantLogFile>.csv is created in the same path as the corresponding .tsf file.

Nota

Solo debe ejecutar esta utilidad con el archivo .tsf principal (por ejemplo, PerformanceCountersTable.tsf).You only need to run this utility against the main .tsf file (for example, PerformanceCountersTable.tsf). Los archivos complementarios (por ejemplo, PerformanceCountersTables_**001.tsf, PerformanceCountersTables_**002.tsf etc.) se procesarán automáticamente.The accompanying files (for example, PerformanceCountersTables_**001.tsf, PerformanceCountersTables_**002.tsf, and so on) are automatically processed.

Más información sobre los registros de seguimiento que faltanMore about missing trace logs

Nota

La información que se ofrece a continuación, se aplica principalmente a Azure Cloud Services, a no ser que haya configurado la utilidad DiagnosticsMonitorTraceListener en una aplicación que se ejecute en la máquina virtual de IaaS.The following information applies mostly to Azure Cloud Services unless you have configured the DiagnosticsMonitorTraceListener on an application that's running on your IaaS VM.

  • Asegúrese de que DiagnosticMonitorTraceListener esté configurado en el archivo web.config o app.config. Esto se configura de forma predeterminada en los proyectos de servicios de nube.Make sure the DiagnosticMonitorTraceListener is configured in the web.config or app.config. This is configured by default in cloud service projects. Sin embargo, algunos clientes lo convierten en comentario, lo que hace que los diagnósticos no recopilen las instrucciones de seguimiento.However, some customers comment it out, which causes the trace statements to not be collected by diagnostics.

  • 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.If logs are not getting written from the OnStart or Run method, make sure the DiagnosticMonitorTraceListener is in the app.config. By default it is in the web.config, but that only applies to code running within w3wp.exe. Debido a ello, debe estar en app.config para que se capturen los seguimientos que se ejecutan en WaIISHost.exe.So you need it in app.config to capture traces that are running in WaIISHost.exe.

  • Asegúrese de que usa Diagnostics.Trace.TraceXXX en lugar de Diagnostics.Debug.WriteXXX.Make sure you are using Diagnostics.Trace.TraceXXX instead of Diagnostics.Debug.WriteXXX. Las instrucciones de depuración se quitarán de una compilación de versión.The Debug statements are removed from a release build.

  • Asegúrese de que el código compilado tenga realmente líneas de Diagnostics.Trace (use Reflector, ildasm o ILSpy para comprobarlo).Make sure the compiled code actually has the Diagnostics.Trace lines (use Reflector, ildasm, or ILSpy to verify). Los comandos Diagnostics.Trace se quitan del binario compilado a menos que se use el símbolo de compilación condicional TRACE.Diagnostics.Trace commands are removed from the compiled binary unless you use the TRACE conditional compilation symbol. Si usa msbuild para compilar el proyecto, este es un problema habitual con el que se encontrará.This is a common problem that occurs when you're using msbuild to build a project.

Problemas conocidos y mitigacionesKnown issues and mitigations

Esta es una lista de problemas conocidos con mitigaciones conocidas:Here is a list of known issues with known mitigations:

1. Dependencia de .NET 4.51. .NET 4.5 dependency

La extensión de Windows Azure Diagnostics tiene una dependencia de tiempo de ejecución en la plataforma .NET 4.5 o superior.Windows Azure Diagnostics Extension has a runtime dependency on .NET 4.5 framework or later. En el momento de escribir este artículo, todas las máquinas aprovisionadas de Azure Cloud Services y todas las imágenes de base oficiales de máquinas virtuales de Azure tienen instalado .NET 4.5 o una versión superior.At the time of writing, all machines that are provisioned for Azure Cloud Services, as well as all official images that are based on Azure virtual machines, have .NET 4.5 or later installed.

Aún así, es posible encontrarse en una situación en la que intente ejecutar Windows Azure Diagnostics en una máquina que no tenga .NET 4.5 o superior.It is still possible encounter a situation where you try to run Windows Azure Diagnostics Extension on a machine that doesn't have .NET 4.5 or later. Esto sucede cuando crea su máquina a partir de una imagen o instantánea anterior, o cuando trae su propio disco personalizado.This happens when you create your machine from an old image or snapshot, or when you bring your own custom disk.

Generalmente se manifiesta como un código de salida 255 al ejecutar DiagnosticsPluginLauncher.exe.This generally manifests as an exit code 255 when running DiagnosticsPluginLauncher.exe. El error se produce debido a la siguiente excepción no controlada:Failure happens due to the following unhandled exception:

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 una versión superior en la máquina.Mitigation: Install .NET 4.5 or later on your machine.

2. Los datos de los contadores de rendimiento están disponibles en el almacenamiento, pero no se muestran en el portal2. Performance counters data is available in storage but not showing in the portal

La experiencia del portal de las máquinas virtuales muestra de forma predeterminada determinados contadores de rendimiento.The portal experience in the virtual machines shows certain performance counters by default. Si no ve estos contadores de rendimiento y sabe que los datos se están generando porque están disponibles en el almacenamiento, consulte lo siguiente:If you don't see the performance counters, and you know that the data is getting generated because it is available in storage, check the following:

  • Si los datos del almacenamiento tienen nombres de contadores en inglés.Whether the data in storage has counter names in English. Si los nombres de los contadores no están en inglés, el gráfico de métricas del portal no podrá reconocerlos.If the counter names are not in English, the portal metric chart won't able to recognize it. Mitigación: cambie el idioma de la máquina a inglés en las cuentas del sistema.Mitigation: Change the machine's language to English for system accounts. Para ello, seleccione Panel de control > Región > Administración > Copiar configuración.To do this, select Control Panel > Region > Administrative > Copy Settings. A continuación, anule la selección de la opción Cuentas de sistema y de pantalla de bienvenida para que el lenguaje personalizado no se aplique a la cuenta del sistema.Next, deselect Welcome screen and system accounts so that the custom language is not applied to the system account.

  • Si usa caracteres comodín (*) en los nombres de los contadores de rendimiento, el portal no podrá correlacionar el contador de rendimiento configurado y el recopilado cuando estos se envíen al receptor de Azure Storage.If you are using wildcards (*) in your performance counter names, the portal won't able to correlate the configured and collected counter when the performance counters are sent to the Azure Storage sink. 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.Mitigation: To make sure you can use wildcards and have the portal expand the (*), route your performance counters to the Azure Monitor sink.