Envío de métricas de SO invitado a la base de datos de métricas de Azure Monitor para una máquina virtual Windows (clásica)
Nota:
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
La extensión Diagnostics de Azure Monitor (conocida como "WAD" o "Diagnostics") le permite recopilar métricas y registros del sistema operativo invitado (SO invitado) que se ejecuta como parte de un clúster de Service Fabric, un servicio en la nube o una máquina virtual. La extensión puede enviar datos de telemetría a muchas ubicaciones diferentes.
En este artículo se describe el proceso de envío de métricas de rendimiento del SO invitado para una máquina virtual Windows (clásica) a la base de datos de métricas de Azure Monitor. A partir de Diagnostics versión 1.11, puede escribir las métricas directamente en el almacén de métricas de Azure Monitor, donde ya se recopilan métricas de la plataforma estándar.
Almacenarlas en esta ubicación permite acceder a las mismas acciones disponibles para las métricas de la plataforma. Las acciones incluyen la generación de alertas casi en tiempo real, la creación de gráficos, el enrutamiento, el acceso desde una API REST y mucho más. Anteriormente, la extensión Diagnostics se escribía en Azure Storage, pero no en el almacén de datos de Azure Monitor.
El proceso descrito en este artículo solo funciona para máquinas virtuales clásicas que ejecutan el sistema operativo Windows.
Requisitos previos
Debe ser administrador de servicios o administrador en su suscripción de Azure.
La suscripción debe estar registrada en Microsoft.Insights.
Debe tener instalado Azure PowerShell o Azure Cloud Shell.
Creación de una máquina virtual clásica y una cuenta de almacenamiento
Al crear esta máquina virtual, elija la opción para crear una nueva cuenta de almacenamiento clásica. Usaremos esta cuenta de almacenamiento en pasos posteriores.
En Azure Portal, vaya al panel de recursos Cuentas de almacenamiento. Seleccione Claves y anote el nombre y la clave de la cuenta de almacenamiento. Necesitará esta información en pasos posteriores.
Creación de una entidad de servicio
Cree una entidad de servicio en el inquilino de Microsoft Entra según las instrucciones que encontrará en Creación de una entidad de servicio. Tenga en cuenta lo siguiente al realizar este proceso:
- Cree un nuevo secreto de cliente para esta aplicación.
- Guarde la clave y el identificador de cliente para usarlos en pasos posteriores.
Asigne a esta aplicación permisos "Supervisión del publicador de métricas" para el recurso para el cual quiere emitir métricas. Puede usar un grupo de recursos o una suscripción completa.
Nota
La extensión Diagnostics usa la entidad de servicio para autenticarse en Azure Monitor y emitir métricas para la máquina virtual clásica.
Creación de la configuración de la extensión Diagnostics
Prepare el archivo de configuración de la extensión Diagnostics. Este archivo determina qué registros y contadores de rendimiento debe recopilar la extensión Diagnostics para la máquina virtual clásica. El siguiente es un ejemplo:
<?xml version="1.0" encoding="utf-8"?> <DiagnosticsConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> <WadCfg> <DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="applicationInsights.errors"> <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error" /> <Directories scheduledTransferPeriod="PT1M"> <IISLogs containerName="wad-iis-logfiles" /> <FailedRequestLogs containerName="wad-failedrequestlogs" /> </Directories> <PerformanceCounters scheduledTransferPeriod="PT1M"> <PerformanceCounterConfiguration counterSpecifier="\Processor(*)\% Processor Time" sampleRate="PT15S" /> <PerformanceCounterConfiguration counterSpecifier="\Memory\Available Bytes" sampleRate="PT15S" /> <PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT15S" /> <PerformanceCounterConfiguration counterSpecifier="\Memory\% Committed Bytes" sampleRate="PT15S" /> <PerformanceCounterConfiguration counterSpecifier="\LogicalDisk(*)\Disk Read Bytes/sec" sampleRate="PT15S" /> </PerformanceCounters> <WindowsEventLog scheduledTransferPeriod="PT1M"> <DataSource name="Application!*[System[(Level=1 or Level=2 or Level=3)]]" /> <DataSource name="Windows Azure!*[System[(Level=1 or Level=2 or Level=3 or Level=4)]]" /> </WindowsEventLog> <CrashDumps> <CrashDumpConfiguration processName="WaIISHost.exe" /> <CrashDumpConfiguration processName="WaWorkerHost.exe" /> <CrashDumpConfiguration processName="w3wp.exe" /> </CrashDumps> <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Error" /> <Metrics resourceId="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ClassicCompute/virtualMachines/MyClassicVM"> <MetricAggregation scheduledTransferPeriod="PT1M" /> <MetricAggregation scheduledTransferPeriod="PT1H" /> </Metrics> </DiagnosticMonitorConfiguration> <SinksConfig> </SinksConfig> </WadCfg> <StorageAccount /> </PublicConfig> <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> <StorageAccount name="" endpoint="" /> </PrivateConfig> <IsEnabled>true</IsEnabled> </DiagnosticsConfiguration>
En la sección "SinksConfig" del archivo de diagnóstico, defina un nuevo receptor de Azure Monitor, de la forma siguiente:
<SinksConfig> <Sink name="AzMonSink"> <AzureMonitor> <ResourceId>Provide the resource ID of your classic VM </ResourceId> <Region>The region your VM is deployed in</Region> </AzureMonitor> </Sink> </SinksConfig>
En la sección del archivo de configuración donde se enumera la lista de contadores de rendimiento que se van a recopilar, enrute los contadores de rendimiento al receptor de Azure Monitor "AzMonSink".
<PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink"> <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" /> ... </PerformanceCounters>
En la configuración privada, defina la cuenta de Azure Monitor. A continuación, agregue la información de la entidad de servicio que se usará para emitir métricas.
<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> <StorageAccount name="" endpoint="" /> <AzureMonitorAccount> <ServicePrincipalMeta> <PrincipalId>clientId for your service principal</PrincipalId> <Secret>client secret of your service principal</Secret> </ServicePrincipalMeta> </AzureMonitorAccount> </PrivateConfig>
Guarde este archivo localmente.
Implementación de la extensión Diagnostics en el servicio en la nube
Inicie PowerShell e inicie sesión.
Login-AzAccount
Empiece por establecer el contexto en la máquina virtual clásica.
$VM = Get-AzureVM -ServiceName <VM’s Service_Name> -Name <VM Name>
Establezca el contexto de la cuenta de almacenamiento clásica que se creó con la VM.
$StorageContext = New-AzStorageContext -StorageAccountName <name of your storage account from earlier steps> -storageaccountkey "<storage account key from earlier steps>"
Establezca la ruta de acceso del archivo de Diagnostics en una variable mediante el comando siguiente:
$diagconfig = “<path of the diagnostics configuration file with the Azure Monitor sink configured>”
Prepare la actualización de la máquina virtual clásica con el archivo de diagnóstico que tenga configurado el receptor de Azure Monitor.
$VM_Update = Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath $diagconfig -VM $VM -StorageContext $Storage_Context
Implemente la actualización en la máquina virtual; para ello, ejecute el comando siguiente:
Update-AzureVM -ServiceName "ClassicVMWAD7216" -Name "ClassicVMWAD" -VM $VM_Update.VM
Nota
Sigue siendo obligatorio proporcionar una cuenta de almacenamiento como parte de la instalación de la extensión Diagnostics. Todos los registros o contadores de rendimiento especificados en el archivo de configuración de Diagnostics se escribirán en la cuenta de almacenamiento especificada.
Trazado de métricas en Azure Portal
Vaya a Azure Portal.
En el menú de la izquierda, seleccione Monitor.
En el panel Supervisión de la izquierda, seleccione Métricas.
En la lista desplegable de recursos, seleccione la máquina virtual clásica.
En el menú desplegable de espacios de nombres, seleccione azure.vm.windows.guest.
En el menú desplegable de métricas, seleccione Memory\Committed Bytes in Use (Memoria\bytes confirmados en uso).
Pasos siguientes
- Más información acerca de las métricas personalizadas.