Logs de diagnóstico - Rede de Distribuição de Conteúdo do Microsoft Azure
Importante
A CDN do Azure Standard (clássica) será desativada em 30 de setembro de 2027. Para evitar qualquer interrupção de serviço, é importante migrar seus perfis da CDN do Azure Standard (clássica) para a camada Azure Front Door Standard ou Premium até 30 de setembro de 2027. Para obter mais informações, confira CDN do Azure Standard (clássica).
O CDN do Azure da Edgio será desativado em 15 de janeiro de 2025. Você deve migrar sua carga de trabalho para o Azure Front Door antes desta data para evitar interrupção do serviço.. Para obter mais informações, veja Perguntas frequentes sobre a aposentadoria do CDN do Azure da Edgeo.
Com os logs de diagnóstico do Azure, é possível exibir análises de núcleo e salvá-las em um ou mais destinos, incluindo:
- Conta de Armazenamento do Azure
- Espaço de trabalho do Log Analytics
- Hubs de eventos do Azure
Este recurso está disponível em pontos de extremidade da rede de distribuição de conteúdo para todos os tipos de preço.
Os logs de diagnóstico permitem que você exporte métricas de uso básicas do ponto de extremidade da rede de distribuição de conteúdo para uma variedade de origens para que possa consumi-las de forma personalizada. Por exemplo, você pode realizar os seguintes tipos de exportação de dados:
- Exportar os dados para o armazenamento de blobs, exportar para CSV e gerar grafos no Excel.
- Exportar dados para Hubs de Eventos e correlacionar com os dados de outros serviços do Azure.
- Exportar dados para logs do Azure Monitor e exibir dados em seu próprio workspace do Log Analytics
Um perfil da Rede de Distribuição de Conteúdo do Azure é necessário para as etapas a seguir. Consulte Criar um perfil e um ponto de extremidade da Rede de Distribuição de Conteúdo do Azure antes de continuar.
Ativar o registro em log com o portal do Azure
Siga estas etapas para habilitar o registro em log para o ponto de extremidade da Rede de Distribuição de Conteúdo do Azure:
Entre no portal do Azure.
No portal do Azure, navegue até Todos os recursos>your-cdn-profile.
Selecione o ponto de extremidade da rede de distribuição de conteúdo para o qual você deseja habilitar os logs de diagnóstico:
Selecione Logs de diagnóstico na seção Monitoramento:
Habilitar registro em log com o Armazenamento do Azure
Para usar uma conta de armazenamento para armazenar os logs, siga estas etapas:
Observação
Uma conta do Azure é necessária para concluir estas etapas. Consulte: Criar uma conta de Armazenamento do Microsoft Azure para obter mais informações.
Para Nome da configuração de diagnóstico, digite um nome para as configurações do log de diagnóstico.
Selecione arquivo para uma conta de armazenamento, em seguida, selecione CoreAnalytics.
Para retenção (dias), escolha o número de dias de retenção. Uma retenção de zero dias armazena os logs indefinidamente.
Selecione a assinatura e a conta de armazenamento para os logs.
Selecione Salvar.
Enviar para o Log Analytics
Para usar o Log Analytics para armazenar os logs, siga estas etapas:
Observação
Um workspace do Log Analytics é necessário para concluir estas etapas. Consulte: Criar um espaço de trabalho do Log Analytics no portal do Azure para obter mais informações.
Para Nome da configuração de diagnóstico, digite um nome para as configurações do log de diagnóstico.
Selecione Enviar para Log Analytics e, em seguida, selecione CoreAnalytics.
Selecione a assinatura e o workspace do Log Analytics.
Selecione Salvar.
Transmitir para um hub de eventos
Para usar um hub de eventos para os logs, siga estas etapas:
Observação
Um hub de eventos é necessário para concluir estas etapas. Consulte: Início Rápido: Criar um hub de eventos usando portal do Azure para obter mais informações.
Para Nome da configuração de diagnóstico, digite um nome para as configurações do log de diagnóstico.
Selecione Transmitir para um hub de eventos e, em seguida, selecione CoreAnalytics.
Selecione a assinatura e o namespace do hub de eventos para os logs.
Selecione Salvar.
Habilitar o registro em log com o PowerShell
O exemplo a seguir mostra como habilitar os Logs de Diagnóstico por meio dos Cmdlets do Azure PowerShell.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Habilitar os logs de diagnóstico em uma conta de armazenamento
Entre no Azure PowerShell:
Connect-AzAccount
Para ativar os Logs de Diagnóstico em uma conta de Armazenamento, insira os comandos. Substitua as variáveis com seus próprios 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 workspace do Log Analytics
Entre no Azure PowerShell:
Connect-AzAccount
Para habilitar os Logs de Diagnóstico para um workspace do Log Analytics, insira estes comandos. Substitua as variáveis com seus próprios 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 o namespace do hub de eventos
Entre no Azure PowerShell:
Connect-AzAccount
Para habilitar os Logs de Diagnóstico para um workspace do Log Analytics, insira estes comandos. Substitua as variáveis por seus próprios 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 logs de diagnóstico do Armazenamento do Azure
Esta seção descreve o esquema da análise de núcleo da rede de distribuição de conteúdo, a organização em uma conta de Armazenamento do Microsoft Azure e oferece um exemplo de código para baixar os logs em um arquivo CSV.
Usar 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 Microsoft Azure que foi configurada como um destino para os logs de diagnóstico da rede de distribuição de conteúdo.
- Abra o Gerenciador de Armazenamento do Microsoft Azure
- Localize a conta de armazenamento
- Expanda o nó Blob Containers sob esta conta de armazenamento.
- Selecione o contêiner denominado insights-logs-coreanalytics .
- 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, confira Formato de caminho de blob.
- Cada arquivo de blob PT1H.json representa os logs de análise por uma hora para um ponto de extremidade da rede de distribuição de conteúdo ou seu domínio personalizado.
- O esquema do conteúdo desse arquivo JSON é descrito na seção Esquema dos logs de análise de núcleo.
Formato de caminho de blob
Os logs de análise de núcleo são gerados a cada hora e os dados são coletados e armazenados dentro de um único blob do Azure como um payload JSON. A ferramenta Gerenciador de armazenamento interpreta '/' como um separador de diretório e mostra a hierarquia. O caminho para o blob do Azure é exibido como se houvesse uma estrutura hierárquica e representa o nome do blob. O nome do blob segue a convenção de nomenclatura abaixo:
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 | Descrição |
---|---|
ID da assinatura | ID da assinatura do Azure no formato GUID (identificador global exclusivo). |
Nome do Grupo de Recursos | Nome do grupo de recursos ao qual os recursos da rede de distribuição de conteúdo pertencem. |
Nome do Perfil | Nome do perfil da rede de distribuição de conteúdo |
Nome do Ponto de Extremidade | Nome do ponto de extremidade da rede de distribuição de conteúdo |
Year | Representação de quatro dígitos do ano, por exemplo, 2017 |
Mês | 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 em que os dados da análise são armazenados |
Exportando os dados de análise de núcleo para um arquivo CSV
Para acessar a análise de núcleo, o exemplo de código de uma ferramenta é fornecido. Esta ferramenta permite fazer o download do arquivos JSON em um formato de arquivo simples separado por vírgula, que pode ser usado para criar gráficos ou outras agregações.
Aqui está como você pode usar a ferramenta:
- Visite o GitHub: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
- Baixe o código.
- Siga as instruções a serem compiladas e configuradas.
- Execute a ferramenta.
- O arquivo CSV resultante mostra os dados de análise em uma hierarquia simples.
Atrasos em dados de log
A tabela a seguir mostra atrasos em dados de log para CDN Standard do Azure da Microsoft e CDN Standard/Premium do Azure do Edgio.
Atrasos em dados de log da Microsoft | Atrasos em dados de log da Edgio |
---|---|
Atrasado em 1 hora. | Atrasado em 1 hora e pode demorar até 2 horas para começar a aparecer após a conclusão da propagação do ponto de extremidade. |
Tipos de log de diagnóstico para análise de núcleo da rede de distribuição de conteúdo
Atualmente, a Microsoft oferece somente logs de análise de núcleo, que contém métricas que mostram estatísticas de respostas HTTP e estatísticas de saída, conforme vistas dos POPs/bordas da rede de distribuição de conteúdo.
Detalhes das métricas da análise de núcleo
A tabela a seguir mostra uma lista de métricas disponíveis nos logs de análise de núcleo para:
- CDN Standard do Azure da Microsoft
- CDN do Azure 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 mostra se uma determinada métrica está disponível de um provedor. As métricas estão disponíveis somente para os pontos de extremidade da rede que têm tráfego neles.
Métrica | Descrição | Microsoft | Edgio |
---|---|---|---|
RequestCountTotal | Número total de ocorrências de solicitação 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 |
RequestCountHttpStatusOthers | Contagem de todos os outros códigos HTTP (fora de 2xx a 5xx). | Sim | Sim |
RequestCountHttpStatus200 | Contagem de todas as solicitações que resultaram em um código de resposta HTTP 200. | Sim | Não |
RequestCountHttpStatus206 | Contagem de todas as solicitações que resultaram em um código de resposta HTTP 206. | Sim | Não |
RequestCountHttpStatus302 | Contagem de todas as solicitações que resultaram em um código de resposta HTTP 302. | Sim | Não |
RequestCountHttpStatus304 | Contagem de todas as solicitações que resultaram em um código de resposta HTTP 304. | Sim | Não |
RequestCountHttpStatus404 | Contagem de todas as solicitações que resultaram em um código de resposta HTTP 404. | Sim | Não |
RequestCountCacheHit | Contagem de todas as solicitações que resultaram em um hit do Cache. O ativo foi servido diretamente do POP para o cliente. | Sim | Yes |
RequestCountCacheMiss | Contagem de todas as solicitações que resultaram em uma Perda do Cache. Uma perda no cache significa que o recurso não foi encontrado no POP mais próximo do cliente e, portanto, foi recuperado da origem. | Sim | Yes |
RequestCountCacheNoCache | Contagem de todas as solicitações para um ativo que são impedidas de serem armazenadas em cache por causa de uma configuração do usuário na borda. | Sim | Yes |
RequestCountCacheUncacheable | Contagem de todas as solicitações para ativos que são impedidos de serem armazenados em cache pelos cabeçalhos de Controle de Cache e de Expiração do ativo. Essa contagem indica que não deve ser armazenado em cache em um POP ou pelo cliente HTTP. | Sim | Yes |
RequestCountCacheOthers | Contagem de todas as solicitações com o status de cache não cobertas por métricas listadas anteriormente. | No | Sim |
EgressTotal | Transferência de dados de saída em GB | Sim | Sim |
EgressHttpStatus2xx | Transferência de dados de saída* para respostas com códigos de status HTTP 2xx em GB. | Sim | Yes |
EgressHttpStatus3xx | Transferência de dados de saída para respostas com códigos de status HTTP 3xx em GB. | Sim | Yes |
EgressHttpStatus4xx | Transferência de dados de saída para respostas com códigos de status HTTP 4xx em GB. | Sim | Yes |
EgressHttpStatus5xx | Transferência de dados de saída para respostas com códigos de status HTTP 5xx em GB. | Sim | Yes |
EgressHttpStatusOthers | Transferência de dados de saída para respostas com outros códigos de status HTTP em GB. | Sim | Yes |
EgressCacheHit | Transferência de dados de saída para respostas distribuídas diretamente do cache da rede de distribuição de conteúdo nos POPs/Bordas da rede de distribuição de conteúdo. | Sim | Yes |
EgressCacheMiss. | Transferência de dados de saída de respostas que não foram encontradas no servidor POP mais próximo e foram recuperadas do servidor de origem. | Sim | Yes |
EgressCacheNoCache | Transferência de dados de saída para ativos que são impedidos de serem armazenados em cache devido a uma configuração do usuário na borda. | Sim | Yes |
EgressCacheUncacheable | Transferência de dados de saída para ativos que são impedidos de serem armazenados em cache pelos cabeçalhos de Controle de Cache e/ou de Expiração do ativo. Indica que não deve ser armazenado em cache em um POP ou pelo cliente HTTP. | Sim | Yes |
EgressCacheOthers | Transferências de dados de saída para outros cenários de cache. | Não | Sim |
*A transferência de dados de saída refere-se ao tráfego distribuído dos servidores POP da rede de distribuição de conteúdo para o cliente.
Esquema dos logs de análise de núcleo
Todos os logs são armazenados em formato JSON e cada entrada tem campos de cadeia de caracteres de acordo com o esquema a seguir:
"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,
}
}
]
}
Em que time representa a hora de início do limite da hora pela qual as estatísticas são relatadas. Uma métrica não compatível com um provedor da 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 isso é diferente de um valor de 0. Há 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
}