Registros de diagnóstico: Azure Content Delivery Network

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:

  1. Inicie sesión en Azure Portal.

  2. En Azure Portal, vaya a Todos los recursos>su-perfil-de-cdn.

  3. Seleccione el punto de conexión de red de entrega de contenido para el que desea habilitar los registros de diagnóstico:

    Captura de pantalla de la selección del punto de conexión de red de entrega de contenido.

  4. Seleccione Registros de diagnóstico en la sección Supervisión:

    Captura de pantalla del botón registros de diagnóstico en el menú de 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.

  1. En Diagnostic setting name (Nombre de la configuración de diagnóstico), escriba un nombre para la configuración del registro de diagnóstico.

  2. Seleccione Archivar en una cuenta de almacenamiento y luego seleccione CoreAnalytics.

  3. 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.

  4. Seleccione la suscripción y la cuenta de almacenamiento para los registros.

    Registros de diagnóstico: almacenamiento.

  5. 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.

  1. En Diagnostic setting name (Nombre de la configuración de diagnóstico), escriba un nombre para la configuración del registro de diagnóstico.

  2. Seleccione Enviar a Log Analytics y luego seleccione CoreAnalytics.

  3. Seleccione la suscripción y el área de trabajo de Log Analytics para los registros.

    Registros de diagnóstico: Log Analytics.

  4. 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.

  1. En Diagnostic setting name (Nombre de la configuración de diagnóstico), escriba un nombre para la configuración del registro de diagnóstico.

  2. Seleccione Transmitir a un centro de eventos y luego CoreAnalytics.

  3. Seleccione la suscripción y el espacio de nombres del centro de eventos para los registros.

    Registros de diagnóstico: centro de eventos

  4. 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. Consulte Instalación de Azure PowerShell para empezar. 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

  1. Inicie sesión en Azure PowerShell:

    Connect-AzAccount 
    
  2. 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

  1. Inicie sesión en Azure PowerShell:

    Connect-AzAccount 
    
  2. 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

  1. Inicie sesión en Azure PowerShell:

    Connect-AzAccount 
    
  2. 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.

  1. Abra el Explorador de Microsoft Azure Storage
  2. Busque la cuenta de almacenamiento.
  3. Expanda el nodo Contenedores de blob en esta cuenta de almacenamiento.
  4. Seleccione el contenedor llamado insights-logs-coreanalytics.
  5. 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.
  6. 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.
  7. 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:

  1. Visite el vínculo de GitHub: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
  2. Descargue el código.
  3. Siga las instrucciones para compilarlo y configurarlo.
  4. Ejecute la herramienta.
  5. 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.
RequestCountHttpStatus2xx Recuento de todas las solicitudes que dieron lugar a un código HTTP 2xx (por ejemplo, 200, 202).
RequestCountHttpStatus3xx Recuento de todas las solicitudes que dieron lugar a un código HTTP 3xx (por ejemplo, 300, 302).
RequestCountHttpStatus4xx Recuento de todas las solicitudes que dieron lugar a un código HTTP 4xx (por ejemplo, 400, 404).
RequestCountHttpStatus5xx Recuento de todas las solicitudes que dieron lugar a un código HTTP 5xx (por ejemplo, 500, 504).
RequestCountHttpStatusOthers Recuento de todos los demás códigos HTTP (fuera del intervalo 2xx-5xx).
RequestCountHttpStatus200 Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 200. No
RequestCountHttpStatus206 Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 206. No
RequestCountHttpStatus302 Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 302. No
RequestCountHttpStatus304 Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 304. No
RequestCountHttpStatus404 Recuento de todas las solicitudes que dieron lugar a una respuesta de código HTTP 404. 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.
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.
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.
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.
RequestCountCacheOthers Recuento de todas las solicitudes con un estado de caché no cubierto por las métricas indicadas anteriormente. No
EgressTotal Transferencia de datos salientes en GB
EgressHttpStatus2xx Transferencia de datos salientes* para respuestas con códigos de estado HTTP 2xx en GB.
EgressHttpStatus3xx Transferencia de datos salientes para respuestas con códigos de estado HTTP 3xx en GB.
EgressHttpStatus4xx Transferencia de datos de salida para respuestas con códigos de estado HTTP 4xx en GB.
EgressHttpStatus5xx Transferencia de datos de salida para respuestas con códigos de estado HTTP 5xx en GB.
EgressHttpStatusOthers Transferencia de datos de salida para respuestas con otros códigos de estado HTTP en GB.
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.
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.
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.
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.
EgressCacheOthers Transferencias de datos de salida para otros escenarios de caché. No

*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
}

Más recursos