Registros de diagnóstico: Azure Content Delivery Network
Importante
Azure CDN Estándar de Microsoft (clásico) se retirará el 30 de septiembre de 2027. Para evitar interrupciones del servicio, es importante que migre los perfiles de Azure CDN Estándar de Microsoft (clásico) a los nivel Estándar o Prémium de Azure Front Door antes del 30 de septiembre de 2027. Para más información, consulte Retirada de Azure CDN Estándar de Microsoft (clásico).
Azure CDN de Edgio se retirará el 15 de enero de 2025. Debe migrar la carga de trabajo a Azure Front Door antes de esta fecha para evitar interrupciones del servicio. Para más información, consulte Preguntas más frecuentes sobre la retirada de Azure CDN de Edgio..
Con los registros de Azure Diagnostics, puede ver análisis básicos y guardarlos en uno o varios destino, por ejemplo:
- Cuenta de Azure Storage
- Área de trabajo de Log Analytics
- Azure Event Hubs
Esta característica está disponible en los puntos de conexión de red de entrega de contenido para todos los planes de tarifa.
Los registros de diagnóstico permiten exportar métricas de uso básicas desde el punto de conexión de red de entrega de contenido a distintos orígenes de tipos para que pueda consumirlas de forma personalizada. Puede realizar los siguientes tipos de exportación de datos:
- Exportar datos a Blob Storage, exportar a CSV y generar gráficos en Excel.
- Exportar datos a Event Hubs y correlacionarlos con los datos de otros servicios de Azure.
- Exportar datos a los registros de Azure Monitor y verlos en su propia área de trabajo de Log Analytics
Se requiere un perfil de Azure Content Delivery Network para los pasos siguientes. Consulte Creación de un perfil y un punto de conexión de Azure Content Delivery Network antes de continuar.
Habilitar el registro con Azure Portal
Siga estos pasos para habilitar el registro para el punto de conexión de Azure Content Delivery Network:
Inicie sesión en Azure Portal.
En Azure Portal, vaya a Todos los recursos>su-perfil-de-cdn.
Seleccione el punto de conexión de red de entrega de contenido para el que desea habilitar los registros de diagnóstico:
Seleccione Registros de diagnóstico en la sección Supervisión:
Habilitación del registro con Azure Storage
Para usar una cuenta de almacenamiento y almacenar los registros, siga estos pasos:
Nota
Se necesita una cuenta de almacenamiento para completar estos pasos. Consulte Creación de una cuenta de Azure Storage para obtener más información.
En Diagnostic setting name (Nombre de la configuración de diagnóstico), escriba un nombre para la configuración del registro de diagnóstico.
Seleccione Archivar en una cuenta de almacenamiento y luego seleccione CoreAnalytics.
En Retención (días) , elija el número de días de retención. Con una retención de cero días, los registros se almacenan indefinidamente.
Seleccione la suscripción y la cuenta de almacenamiento para los registros.
Seleccione Guardar.
Enviar a Log Analytics
Para usar Log Analytics para los registros, siga estos pasos:
Nota
Se requiere un área de trabajo de Log Analytics para completar estos pasos. Consulte Creación de un área de trabajo de Log Analytics en Azure Portal para obtener más información.
En Diagnostic setting name (Nombre de la configuración de diagnóstico), escriba un nombre para la configuración del registro de diagnóstico.
Seleccione Enviar a Log Analytics y luego seleccione CoreAnalytics.
Seleccione la suscripción y el área de trabajo de Log Analytics para los registros.
Seleccione Guardar.
Transmitir a un centro de eventos
Para usar un centro de eventos para los registros, siga estos pasos:
Nota
Se necesita un centro de eventos para completar estos pasos. Consulte Guía de inicio rápido: Creación de un centro de eventos mediante Azure Portal para obtener más información.
En Diagnostic setting name (Nombre de la configuración de diagnóstico), escriba un nombre para la configuración del registro de diagnóstico.
Seleccione Transmitir a un centro de eventos y luego CoreAnalytics.
Seleccione la suscripción y el espacio de nombres del centro de eventos para los registros.
Seleccione Guardar.
Habilitación del registro con PowerShell
En los ejemplos siguientes se muestra cómo habilitar registros de diagnóstico mediante los cmdlets de Azure PowerShell.
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.
Habilitación de registros de diagnóstico en una cuenta de almacenamiento
Inicie sesión en Azure PowerShell:
Connect-AzAccount
Para habilitar los registros de diagnóstico en una cuenta de almacenamiento, escriba estos comandos. Reemplace las variables por sus valores:
$rsg = <your-resource-group-name> $cdnprofile = <your-cdn-profile-name> $cdnendpoint = <your-cdn-endpoint-name> $storageacct = <your-storage-account-name> $diagname = <your-diagnostic-setting-name> $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Categories CoreAnalytics
Habilitación de registros de diagnóstico en el área de trabajo de Log Analytics
Inicie sesión en Azure PowerShell:
Connect-AzAccount
Para habilitar los registros de diagnóstico en un área de trabajo de Log Analytics, escriba estos comandos. Reemplace las variables por sus valores:
$rsg = <your-resource-group-name> $cdnprofile = <your-cdn-profile-name> $cdnendpoint = <your-cdn-endpoint-name> $workspacename = <your-log-analytics-workspace-name> $diagname = <your-diagnostic-setting-name> $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rsg -Name $workspacename Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -WorkspaceId $workspace.ResourceId -Enabled $true -Categories CoreAnalytics
Habilitación de registros de diagnóstico en un espacio de nombres del centro de eventos
Inicie sesión en Azure PowerShell:
Connect-AzAccount
Para habilitar los registros de diagnóstico en un área de trabajo de Log Analytics, escriba estos comandos. Reemplace las variables por sus valores:
$rsg = <your-resource-group-name> $cdnprofile = <your-cdn-profile-name> $cdnendpoint = <your-cdn-endpoint-name> $eventhubname = <your-event-hub-namespace-name> $diagname = <your-diagnostic-setting-name> $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhubname -Enabled $true -Categories CoreAnalytics
Consumo de registros de diagnósticos desde Azure Storage
En esta sección se describe el esquema del análisis principal de red de entrega de contenido, la organización en una cuenta de Azure Storage y se proporciona código de ejemplo para descargar los registros en un archivo CSV.
Uso del Explorador de Microsoft Azure Storage
Para descargar la herramienta, consulte Explorador de Azure Storage. Después de descargar e instalar el software, configúrelo para usar la misma cuenta de Azure Storage que se configuró como destino para los registros de diagnóstico de la red de entrega de contenido.
- Abra el Explorador de Microsoft Azure Storage
- Busque la cuenta de almacenamiento.
- Expanda el nodo Contenedores de blob en esta cuenta de almacenamiento.
- Seleccione el contenedor llamado insights-logs-coreanalytics.
- Los resultados se muestran en el panel derecho, comenzando por el primer nivel, como resourceId= . Siga seleccionando cada nivel hasta encontrar el archivo PT1H.json. Para obtener una explicación de la ruta de acceso, consulte Formato de las rutas de acceso de blob.
- Cada blob PT1H.json archivo representa los registros de análisis durante una hora para un punto de conexión de red de entrega de contenido específico o su dominio personalizado.
- El esquema del contenido de este archivo JSON se describe en la sección de esquema de los registros de análisis básico.
Formato de las rutas de acceso de blob
Los registros de análisis básico se generan cada hora y los datos se recopilan y almacenan en un único blob de Azure como una carga JSON. La herramienta Explorador de almacenamiento interpreta "/" como un separador de directorio y muestra la jerarquía. La ruta de acceso a este blob de Azure aparece como si hubiera una estructura jerárquica y representa el nombre del blob. Este nombre del blob sigue la convención de nomenclatura siguiente:
resourceId=/SUBSCRIPTIONS/{Subscription Id}/RESOURCEGROUPS/{Resource Group Name}/PROVIDERS/MICROSOFT.CDN/PROFILES/{Profile Name}/ENDPOINTS/{Endpoint Name}/ y=/m=/d=/h=/m=/PT1H.json
Descripción de los campos:
Value | Descripción |
---|---|
Id. de suscripción | Identificador de la suscripción de Azure en formato de identificador único global (GUID). |
Nombre del grupo de recursos | Nombre del grupo de recursos al que pertenecen los recursos de red de entrega de contenido. |
Nombre del perfil | Nombre del perfil de red de entrega de contenido |
Nombre de extremo | Nombre del punto de conexión de red de entrega de contenido |
Year | Representación del año en formato de cuatro dígitos, por ejemplo, 2017 |
Month | Representación del mes en formato de dos dígitos. 01=enero ... 12=diciembre |
Día | Representación del día del mes en formato de dos dígitos |
PT1H.json | Archivo JSON real donde se almacenan los datos de análisis |
Exportación de los datos de análisis básico a un archivo CSV
Para acceder al análisis básico, se proporciona código de ejemplo para una herramienta. Esta herramienta permite descargar los archivos JSON en un formato de archivo plano separado por comas que se puede usar para crear gráficos y otras agregaciones.
A continuación, se muestra cómo puede usar la herramienta:
- Visite el vínculo de GitHub: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
- Descargue el código.
- Siga las instrucciones para compilarlo y configurarlo.
- Ejecute la herramienta.
- El archivo CSV resultante muestra los datos de análisis en una jerarquía sencilla plana.
Retrasos en el registro de datos
En la tabla siguiente se muestran retrasos en los datos de registro para Azure CDN Estándar de Microsofty Azure CDN Standard/Premium de Edgio.
Retrasos de datos de registro de Microsoft | Retrasos en el registro de datos de Edgio |
---|---|
Retraso de 1 hora. | Se retrasan 1 hora y pueden tardar hasta 2 horas en comenzar a aparecer tras la finalización de la propagación del punto de conexión. |
Tipos de registro de diagnóstico para el análisis principal de red de entrega de contenido
Microsoft actualmente solo ofrece registros de análisis principales, que contienen métricas que muestran estadísticas de respuesta HTTP y estadísticas de salida, tal como se ve en las POP o los bordes de la red de entrega de contenido.
Detalles de las métricas de análisis básico
En la tabla siguiente se muestra una lista de métricas disponibles en los registros de análisis básico para:
- Azure CDN Estándar de Microsoft
- Azure CDN Estándar/Premium de Edgio
No todas las métricas están disponibles en todos los proveedores, si bien tales diferencias son mínimas. En la tabla también se muestra si un proveedor dispone de una métrica determinada. Las métricas solo están disponibles para los puntos de conexión de red de entrega de contenido que tienen tráfico en ellos.
Métrica | Descripción | Microsoft | Edgio |
---|---|---|---|
RequestCountTotal | Número total de aciertos de solicitud durante este periodo. | Sí | Sí |
RequestCountHttpStatus2xx | Recuento de todas las solicitudes que dieron lugar a un código HTTP 2xx (por ejemplo, 200, 202). | Sí | Sí |
RequestCountHttpStatus3xx | Recuento de todas las solicitudes que dieron lugar a un código HTTP 3xx (por ejemplo, 300, 302). | Sí | Sí |
RequestCountHttpStatus4xx | Recuento de todas las solicitudes que dieron lugar a un código HTTP 4xx (por ejemplo, 400, 404). | Sí | Sí |
RequestCountHttpStatus5xx | Recuento de todas las solicitudes que dieron lugar a un código HTTP 5xx (por ejemplo, 500, 504). | Sí | Sí |
RequestCountHttpStatusOthers | Recuento de todos los demás códigos HTTP (fuera del intervalo 2xx-5xx). | Sí | Sí |
RequestCountHttpStatus200 | Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 200. | Sí | No |
RequestCountHttpStatus206 | Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 206. | Sí | No |
RequestCountHttpStatus302 | Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 302. | Sí | No |
RequestCountHttpStatus304 | Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 304. | Sí | No |
RequestCountHttpStatus404 | Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 404. | Sí | No |
RequestCountCacheHit | Recuento de todas las solicitudes que dieron lugar a un acierto de caché. El recurso se atendió directamente desde el servidor POP al cliente. | Sí | Sí |
RequestCountCacheMiss | Recuento de todas las solicitudes que dieron lugar a un error de caché. Un error de caché significa que el recurso no se encontró en el servidor POP más cercano al cliente y se recuperó del origen. | Sí | Sí |
RequestCountCacheNoCache | Recuento de todas las solicitudes a un recurso a las que se les impide almacenarse en caché debido a una configuración de usuario en el servidor perimetral. | Sí | Sí |
RequestCountCacheUncacheable | Recuento de todas las solicitudes a recursos cuyos encabezados Cache-Control y Expires impiden que se almacenen en caché. Este recuento indica que no se debería almacenar en caché en un servidor POP ni por el cliente HTTP. | Sí | Sí |
RequestCountCacheOthers | Recuento de todas las solicitudes con un estado de caché no cubierto por las métricas indicadas anteriormente. | No | Sí |
EgressTotal | Transferencia de datos salientes en GB | Sí | Sí |
EgressHttpStatus2xx | Transferencia de datos salientes* para respuestas con códigos de estado HTTP 2xx en GB. | Sí | Sí |
EgressHttpStatus3xx | Transferencia de datos salientes para respuestas con códigos de estado HTTP 3xx en GB. | Sí | Sí |
EgressHttpStatus4xx | Transferencia de datos de salida para respuestas con códigos de estado HTTP 4xx en GB. | Sí | Sí |
EgressHttpStatus5xx | Transferencia de datos de salida para respuestas con códigos de estado HTTP 5xx en GB. | Sí | Sí |
EgressHttpStatusOthers | Transferencia de datos de salida para respuestas con otros códigos de estado HTTP en GB. | Sí | Sí |
EgressCacheHit | Transferencia de datos salientes para las respuestas que se entregaron directamente desde la caché de red de entrega de contenido en las POP o Edges de la red de entrega de contenido. | Sí | Sí |
EgressCacheMiss. | Transferencia de datos de salida para respuestas que no se encontraron en el servidor POP más cercano y que se recuperaron del servidor de origen. | Sí | Sí |
EgressCacheNoCache | Transferencia de datos de salida para recursos a los que se les impide almacenarse en caché debido a una configuración de usuario en el servidor perimetral. | Sí | Sí |
EgressCacheUncacheable | Transferencia de datos de salida para recursos cuyos encabezados Cache-Control o Expires impiden que se almacenen en caché. Indica que no se debería almacenar en caché en un servidor POP ni por el cliente HTTP. | Sí | Sí |
EgressCacheOthers | Transferencias de datos de salida para otros escenarios de caché. | No | Sí |
*La transferencia de datos salientes hace referencia al tráfico entregado desde los servidores POP de la red de entrega de contenido al cliente.
Esquema de los registros de análisis básico
Todos los registros se almacenan en formato JSON y cada entrada tiene campos de cadena que siguen el siguiente esquema:
"records": [
{
"time": "2017-04-27T01:00:00",
"resourceId": "<ARM Resource Id of the CDN Endpoint>",
"operationName": "Microsoft.Cdn/profiles/endpoints/contentDelivery",
"category": "CoreAnalytics",
"properties": {
"DomainName": "<Name of the domain for which the statistics is reported>",
"RequestCountTotal": integer value,
"RequestCountHttpStatus2xx": integer value,
"RequestCountHttpStatus3xx": integer value,
"RequestCountHttpStatus4xx": integer value,
"RequestCountHttpStatus5xx": integer value,
"RequestCountHttpStatusOthers": integer value,
"RequestCountHttpStatus200": integer value,
"RequestCountHttpStatus206": integer value,
"RequestCountHttpStatus302": integer value,
"RequestCountHttpStatus304": integer value,
"RequestCountHttpStatus404": integer value,
"RequestCountCacheHit": integer value,
"RequestCountCacheMiss": integer value,
"RequestCountCacheNoCache": integer value,
"RequestCountCacheUncacheable": integer value,
"RequestCountCacheOthers": integer value,
"EgressTotal": double value,
"EgressHttpStatus2xx": double value,
"EgressHttpStatus3xx": double value,
"EgressHttpStatus4xx": double value,
"EgressHttpStatus5xx": double value,
"EgressHttpStatusOthers": double value,
"EgressCacheHit": double value,
"EgressCacheMiss": double value,
"EgressCacheNoCache": double value,
"EgressCacheUncacheable": double value,
"EgressCacheOthers": double value,
}
}
]
}
Donde time representa la hora de inicio del límite horario cuyas estadísticas se notifican. Una métrica no admitida por un proveedor de red de entrega de contenido, en lugar de un valor entero o doble, da como resultado un valor NULL. Este valor nulo indica la ausencia de una métrica, y esto es diferente de un valor de 0. Un conjunto de estas métricas por dominio se configura en el punto de conexión.
Propiedades de ejemplo:
{
"DomainName": "azurecdntest.azureedge.net",
"RequestCountTotal": 480,
"RequestCountHttpStatus2xx": 480,
"RequestCountHttpStatus3xx": 0,
"RequestCountHttpStatus4xx": 0,
"RequestCountHttpStatus5xx": 0,
"RequestCountHttpStatusOthers": 0,
"RequestCountHttpStatus200": 480,
"RequestCountHttpStatus206": 0,
"RequestCountHttpStatus302": 0,
"RequestCountHttpStatus304": 0,
"RequestCountHttpStatus404": 0,
"RequestCountCacheHit": null,
"RequestCountCacheMiss": null,
"RequestCountCacheNoCache": null,
"RequestCountCacheUncacheable": null,
"RequestCountCacheOthers": null,
"EgressTotal": 0.09,
"EgressHttpStatus2xx": null,
"EgressHttpStatus3xx": null,
"EgressHttpStatus4xx": null,
"EgressHttpStatus5xx": null,
"EgressHttpStatusOthers": null,
"EgressCacheHit": null,
"EgressCacheMiss": null,
"EgressCacheNoCache": null,
"EgressCacheUncacheable": null,
"EgressCacheOthers": null
}