Logs de diagnóstico - Rede de Entrega de Conteúdo do Azure

Com os logs de diagnóstico do Azure, você pode exibir as principais análises e salvá-las em um ou mais destinos, incluindo:

  • Conta de armazenamento do Azure
  • Área de trabalho do Log Analytics
  • Hubs de Eventos do Azure

Esse recurso está disponível em pontos de extremidade de rede de entrega de conteúdo para todos os níveis de preço.

Os logs de diagnóstico permitem exportar métricas básicas de uso do ponto de extremidade da rede de entrega de conteúdo para diferentes tipos de fontes, para que você possa consumi-las de forma personalizada. Você pode fazer os seguintes tipos de exportação de dados:

  • Exporte dados para armazenamento de blobs, exporte para CSV e gere gráficos no Excel.
  • Exporte dados para Hubs de Eventos e correlacione com dados de outros serviços do Azure.
  • Exportar dados para logs do Azure Monitor e exibir dados em seu próprio espaço de trabalho do Log Analytics

Um perfil da Rede de Entrega de Conteúdo do Azure é necessário para as etapas a seguir. Consulte Criar um perfil e um ponto de extremidade da Rede de Entrega de Conteúdo do Azure antes de continuar.

Ativar o registo com o portal do Azure

Siga estas etapas para habilitar o registro em log para seu ponto de extremidade da Rede de Entrega de Conteúdo do Azure:

  1. Inicie sessão no portal do Azure.

  2. No portal do Azure, navegue até Todos os recursos>seu-cdn-profile.

  3. Selecione o ponto de extremidade da rede de entrega de conteúdo para o qual você deseja habilitar os logs de diagnóstico:

    Captura de tela do ponto de extremidade da rede de distribuição de conteúdo selecionado.

  4. Selecione Logs de diagnóstico na seção Monitoramento :

    Captura de ecrã do botão de registos de diagnóstico no menu de monitorização.

Habilitar o registro em log com o Armazenamento do Azure

Para utilizar uma conta de armazenamento para armazenar os registos, siga estes passos:

Nota

É necessária uma conta de armazenamento para concluir estas etapas. Consulte: Criar uma conta de Armazenamento do Azure para obter mais informações.

  1. Em Nome da configuração de diagnóstico, insira um nome para as configurações de log de diagnóstico.

  2. Selecione Arquivar em uma conta de armazenamento e, em seguida, selecione CoreAnalytics.

  3. Em Retenção (dias), escolha o número de dias de retenção. Uma retenção de zero dias armazena os logs indefinidamente.

  4. Selecione a conta de assinatura e armazenamento para os logs.

    Logs de diagnóstico - Armazenamento.

  5. Selecione Guardar.

Enviar para o Log Analytics

Para usar o Log Analytics para os logs, siga estas etapas:

Nota

Um espaço de trabalho do Log Analytics é necessário para concluir essas etapas. Consulte: Criar um espaço de trabalho do Log Analytics no portal do Azure para obter mais informações.

  1. Em Nome da configuração de diagnóstico, insira um nome para as configurações de log de diagnóstico.

  2. Selecione Enviar para o Log Analytics e, em seguida, selecione CoreAnalytics.

  3. Selecione a assinatura e o espaço de trabalho do Log Analytics para os logs.

    Logs de diagnóstico - Log Analytics.

  4. Selecione Guardar.

Transmitir em fluxo para um hub de eventos

Para usar um hub de eventos para os logs, execute estas etapas:

Nota

Um hub de eventos é necessário para concluir essas etapas. Consulte Guia de início rápido: criar um hub de eventos usando o portal do Azure para obter mais informações.

  1. Em Nome da configuração de diagnóstico, insira um nome para as configurações de log de diagnóstico.

  2. Selecione Transmitir para um hub de eventos e, em seguida, selecione CoreAnalytics.

  3. Selecione o namespace de hub de eventos e assinatura para os logs.

    Logs de diagnóstico - Hub de eventos.

  4. Selecione Guardar.

Ativar o registo com o PowerShell

O exemplo a seguir mostra como habilitar logs de diagnóstico por meio dos cmdlets do Azure PowerShell.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Habilitar logs de diagnóstico em uma conta de armazenamento

  1. Entre no Azure PowerShell:

    Connect-AzAccount 
    
  2. Para habilitar os Logs de Diagnóstico em uma conta de armazenamento, insira estes comandos. Substitua as variáveis pelos seus 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
    

Habilitar logs de diagnóstico para o espaço de trabalho do Log Analytics

  1. Entre no Azure PowerShell:

    Connect-AzAccount 
    
  2. Para habilitar os Logs de Diagnóstico para um espaço de trabalho do Log Analytics, insira estes comandos. Substitua as variáveis pelos seus 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
    

Habilitar logs de diagnóstico para namespace do hub de eventos

  1. Entre no Azure PowerShell:

    Connect-AzAccount 
    
  2. Para habilitar os Logs de Diagnóstico para um espaço de trabalho do Log Analytics, insira estes comandos. Substitua as variáveis pelos seus 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
    

Consumir registos de diagnóstico do Armazenamento do Microsoft Azure

Esta seção descreve o esquema de análise principal da rede de entrega de conteúdo, a organização em uma conta de Armazenamento do Azure e fornece código de exemplo para baixar os logs em um arquivo CSV.

Usando o Gerenciador de Armazenamento do Microsoft Azure

Para baixar a ferramenta, consulte Gerenciador de Armazenamento do Azure. Depois de baixar e instalar o software, configure-o para usar a mesma conta de Armazenamento do Azure que foi configurada como um destino para os Logs de Diagnóstico da rede de entrega de conteúdo.

  1. Abra o Gerenciador de Armazenamento do Microsoft Azure
  2. Localize a conta de armazenamento
  3. Expanda o nó Contêineres de Blob nesta conta de armazenamento.
  4. Selecione o contêiner chamado insights-logs-coreanalytics.
  5. Os resultados aparecem no painel direito, começando com o primeiro nível, como resourceId=. Continue selecionando cada nível até encontrar o arquivo PT1H.json. Para obter uma explicação do caminho, consulte Formato do caminho de Blob.
  6. Cada arquivo de PT1H.json de blob representa os logs de análise por uma hora para um ponto de extremidade específico da rede de entrega de conteúdo ou seu domínio personalizado.
  7. O esquema do conteúdo desse arquivo JSON é descrito no esquema de seção dos logs de análise principais.

Formato de caminho de blob

Os logs de análise principais são gerados a cada hora e os dados são coletados e armazenados dentro de um único blob do Azure como uma carga JSON útil. A ferramenta Storage Explorer interpreta '/' como um separador de diretório e mostra a hierarquia. O caminho para o blob do Azure aparece como se houvesse uma estrutura hierárquica e representa o nome do blob. O nome do blob segue a seguinte convenção de nomenclatura:

resourceId=/SUBSCRIPTIONS/{Subscription Id}/RESOURCEGROUPS/{Resource Group Name}/PROVIDERS/MICROSOFT.CDN/PROFILES/{Profile Name}/ENDPOINTS/{Endpoint Name}/ y=/m=/d=/h=/m=/PT1H.json

Descrição dos campos:

valor Description
ID de Subscrição ID da assinatura do Azure no formato GUID (identificador global exclusivo).
Nome do Grupo de Recursos Nome do grupo de recursos ao qual pertencem os recursos da rede de distribuição de conteúdo.
Nome do Perfil Nome do perfil da rede de distribuição de conteúdo
Nome do ponto final Nome do ponto de extremidade da rede de distribuição de conteúdo
Anual Representação de quatro dígitos do ano, por exemplo, 2017
Month Representação de dois dígitos do número do mês. 01=janeiro ... 12=dezembro
Dia Representação de dois dígitos do dia do mês
PT1H.json Arquivo JSON real onde os dados de análise são armazenados

Exportando os principais dados de análise para um arquivo CSV

Para acessar a análise principal, o código de exemplo para uma ferramenta é fornecido. Esta ferramenta permite baixar os arquivos JSON em um formato de arquivo simples separado por vírgula, que pode ser usado para criar gráficos ou outras agregações.

Veja como você pode usar a ferramenta:

  1. Visite o link do GitHub: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
  2. Faça o download do código.
  3. Siga as instruções para compilar e configurar.
  4. Execute a ferramenta.
  5. O arquivo CSV resultante mostra os dados de análise em uma hierarquia simples e simples.

Atrasos nos dados de registo

A tabela a seguir mostra atrasos de dados de log para o Azure CDN Standard da Microsoft e o Azure CDN Standard/Premium do Edgio.

Atrasos nos dados de log da Microsoft Atrasos nos dados de log do Edgio
Atraso de 1 hora. Atrasado em 1 hora e pode levar até 2 horas para começar a aparecer após a conclusão da propagação do ponto final.

Tipos de log de diagnóstico para análise central da rede de entrega de conteúdo

Atualmente, a Microsoft oferece apenas logs de análise principais, que contêm métricas que mostram estatísticas de resposta HTTP e estatísticas de saída vistas dos POPs/bordas da rede de entrega de conteúdo.

Detalhes das principais métricas de análise

A tabela a seguir mostra uma lista de métricas disponíveis nos principais logs de análise para:

  • Azure CDN Standard da Microsoft
  • Azure CDN Standard/Premium da Edgio

Nem todas as métricas estão disponíveis de todos os provedores, embora essas diferenças sejam mínimas. A tabela também exibe se uma determinada métrica está disponível em um provedor. As métricas estão disponíveis apenas para os pontos de extremidade da rede de entrega de conteúdo que têm tráfego neles.

Métrico Description Microsoft Edgio
RequestCountTotal Número total de solicitações acertadas durante esse período. Sim Sim
RequestCountHttpStatus2xx Contagem de todas as solicitações que resultaram em um código HTTP 2xx (por exemplo, 200, 202). Sim Sim
RequestCountHttpStatus3xx Contagem de todas as solicitações que resultaram em um código HTTP 3xx (por exemplo, 300, 302). Sim Sim
RequestCountHttpStatus4xx Contagem de todas as solicitações que resultaram em um código HTTP 4xx (por exemplo, 400, 404). Sim Sim
RequestCountHttpStatus5xx Contagem de todas as solicitações que resultaram em um código HTTP 5xx (por exemplo, 500, 504). Sim Sim
RequestCountHttpStatusOutros Contagem de todos os outros códigos HTTP (fora de 2xx-5xx). Sim Sim
RequestCountHttpStatus200 Contagem de todas as solicitações que resultaram em uma resposta de código HTTP 200. Sim No
RequestCountHttpStatus206 Contagem de todas as solicitações que resultaram em uma resposta de código HTTP 206. Sim No
RequestCountHttpStatus302 Contagem de todas as solicitações que resultaram em uma resposta de código HTTP 302. Sim No
RequestCountHttpStatus304 Contagem de todas as solicitações que resultaram em uma resposta de código HTTP 304. Sim No
RequestCountHttpStatus404 Contagem de todas as solicitações que resultaram em uma resposta de código HTTP 404. Sim No
RequestCountCacheHit Contagem de todas as solicitações que resultaram em um acerto de cache. O ativo era servido diretamente do POP para o cliente. Sim Sim
RequestCountCacheMiss Contagem de todas as solicitações que resultaram em uma falha de cache. Uma falha de cache significa que o ativo não foi encontrado no POP mais próximo do cliente e foi recuperado da origem. Sim Sim
RequestCountCacheNoCache Contagem de todas as solicitações para um ativo que não podem ser armazenadas em cache devido a uma configuração de usuário na borda. Sim Sim
RequestCountCacheUncacheable Contagem de todas as solicitações para ativos que são impedidos de serem armazenados em cache pelos cabeçalhos Cache-Control e Expires do ativo. Essa contagem indica que ele não deve ser armazenado em cache em um POP ou pelo cliente HTTP. Sim Sim
RequestCountCacheOutros Contagem de todas as solicitações com status de cache não coberto pelas métricas listadas anteriormente. Não Sim
EgressoTotal Transferência de dados de saída em GB Sim Sim
EgressHttpStatus2xx Transferência de dados de saída* para respostas com 2xx códigos de status HTTP em GB. Sim Sim
EgressHttpStatus3xx Transferência de dados de saída para respostas com códigos de status HTTP 3xx em GB. Sim Sim
EgressHttpStatus4xx Transferência de dados de saída para respostas com códigos de status HTTP 4xx em GB. Sim Sim
EgressHttpStatus5xx Transferência de dados de saída para respostas com 5xx códigos de status HTTP em GB. Sim Sim
EgressHttpStatusOutros Transferência de dados de saída para respostas com outros códigos de status HTTP em GB. Sim Sim
EgressCacheHit Transferência de dados de saída para respostas que foram entregues diretamente do cache da rede de entrega de conteúdo nos POPs/Bordas da rede de entrega de conteúdo. Sim Sim
EgressCacheMiss. Transferência de dados de saída para respostas que não foram encontradas no servidor POP mais próximo e recuperadas do servidor de origem. Sim Sim
EgressCacheNoCache Transferência de dados de saída para ativos que não podem ser armazenados em cache devido a uma configuração de usuário na borda. Sim Sim
EgressCacheUncacheable Transferência de dados de saída para ativos que são impedidos de serem armazenados em cache pelos cabeçalhos Cache-Control e/ou Expira do ativo. Indica que ele não deve ser armazenado em cache em um POP ou pelo cliente HTTP. Sim Sim
EgressCacheOutros Transferências de dados de saída para outros cenários de cache. Não Sim

*Transferência de dados de saída refere-se ao tráfego entregue a partir de servidores POP da rede de entrega de conteúdo para o cliente.

Esquema dos principais logs de análise

Todos os logs são armazenados no formato JSON e cada entrada tem campos de cadeia de caracteres de acordo com o seguinte 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,
            }
        }

    ]
}

Onde a hora representa a hora de início do limite de hora para o qual as estatísticas são relatadas. Uma métrica não suportada por um provedor de rede de distribuição de conteúdo, em vez de um valor duplo ou inteiro, resulta em um valor nulo. Esse valor nulo indica a ausência de uma métrica e é diferente de um valor de 0. Um conjunto dessas métricas por domínio é configurado no ponto de extremidade.

Propriedades de exemplo:

{
     "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
}

Mais recursos