Log da Análise de Armazenamento do Azure
A análise de armazenamento registra informações detalhadas sobre solicitações bem-sucedidas e com falha para um serviço de armazenamento. Essas informações podem ser usadas para monitorar solicitações individuais e diagnosticar problemas com um serviço de armazenamento. As solicitações são registradas em uma base de melhor esforço. Isso significa que a maioria das solicitações gerará um registro em log, mas a integridade e a pontualidade dos logs da Análise de Armazenamento não são garantidas.
Observação
Recomendamos o uso de logs do Armazenamento do Azure no Azure Monitor, em vez dos logs da Análise de Armazenamento. Para saber mais, consulte um dos seguintes artigos:
O log da Análise de Armazenamento não está habilitado por padrão na conta de armazenamento. Você pode habilitá-lo no portal do Azure ou usando o PowerShell ou CLI do Azure. Para obter orientações passo a passo, confira Habilitar e gerenciar logs da Análise de Armazenamento do Azure (clássico).
Você também pode habilitar os logos da Análise de Armazenamento programaticamente por meio da API REST ou da biblioteca de cliente. Use as operações Obter Propriedades do Serviço Blob, Obter Propriedades do Serviço Fila e Obter Propriedades do Serviço Tabela para habilitar a Análise de Armazenamento para cada serviço. Para ver um exemplo de habilitação de logs da Análise de Armazenamento usando o .NET, confira Habilitar logs
As entradas de log são criadas somente se há solicitações feitas no ponto de extremidade de serviço. Por exemplo, se uma conta de armazenamento tiver atividades em seu ponto de extremidade Blob, mas não em seus pontos de extremidade Tabela ou Fila, somente os logs pertencentes ao serviço Blob são criados.
Observação
No momento, o log da Análise de Armazenamento está disponível apenas para os serviços de Blob, Fila e Tabela. O log de Análise de Armazenamento também está disponível para contas de BlockBlobStorage de desempenho premium. No entanto, ele não está disponível para contas v2 de uso geral com desempenho premium.
Solicitações registradas em log
Solicitações de registro em log autenticadas
Os seguintes tipos de solicitações autenticadas são registrados:
Solicitações bem-sucedidas
Solicitações com falha, incluindo tempo limite, limitação, rede, autorização e outros erros
Solicitações que usam uma Assinatura de Acesso Compartilhado (SAS) ou OAuth, incluindo solicitações bem-sucedidas e com falha
Solicitações de dados de análise
As solicitações feitas pela própria análise de armazenamento, como criação de log ou exclusão, não estão conectadas. Uma lista completa dos dados registrados está documentada nos tópicos Storage Analytics Logged Operations and Status Messages (Mensagens de operações e status registradas do Storage Analytics) e Storage Analytics Log Format (Formato do log do Storage Analytics).
Registro em log de solicitações anônimas
Os seguintes tipos de solicitações anônimas são registrados:
Solicitações bem-sucedidas
Erros do servidor
Erros de tempo limite para o cliente e o servidor
Solicitações GET com falha com o código de erro 304 (Não Modificado)
Todas as outras solicitações anônimas com falha não estão conectadas. Uma lista completa dos dados registrados está documentada nos tópicos Storage Analytics Logged Operations and Status Messages (Mensagens de operações e status registradas do Storage Analytics) e Storage Analytics Log Format (Formato do log do Storage Analytics).
Observação
A Análise de Armazenamento registra todas as chamadas internas do plano de dados. As chamadas do Provedor de Recursos do Armazenamento do Microsoft Azure também são registradas. Para identificar essas solicitações, procure a cadeia de caracteres de consulta <sk=system-1>
na URL da solicitação.
Como os logs são armazenados
Todos os logs são armazenados em blobs de blocos em um contêiner denominado $logs
, que é criado automaticamente quando a Análise de Armazenamento é habilitada para uma conta de armazenamento. O contêiner $logs
está localizado no namespace de blob da conta de armazenamento, por exemplo: http://<accountname>.blob.core.windows.net/$logs
. Este contêiner não pode ser excluído quando a análise de armazenamento tiver sido habilitada, embora seu conteúdo possa ser excluído. Se usar a ferramenta de navegação de armazenamento para navegar diretamente até o contêiner, você verá todos os blobs que contêm os dados de registro em log.
Observação
O contêiner $logs
não é exibido quando uma operação de listagem de contêiner é executada, como o método Listar Contêineres. Ele deve ser acessado diretamente. Por exemplo, use o método Listar Blobs para acessar os blobs no contêiner $logs
.
Como as solicitações são registradas, a análise de armazenamento carrega resultados intermediários como blocos. Periodicamente, a análise de armazenamento confirmará esses blocos e os disponibilizará como um blob. Pode levar até uma hora para que os dados de log sejam mostrados no contêiner $logs devido à frequência com que o serviço de armazenamento libera os gravadores de log. Podem existir registros duplicados para os logs criados na mesma hora. Você pode determinar se um registro é uma duplicata verificando RequestId e o número da Operação.
Se tiver um grande volume de dados de log com vários arquivos para cada hora, você poderá usar os metadados de blob para determinar quais dados o log contém examinando os campos de metadados do blob. Isso também é útil porque, às vezes, pode haver um atraso enquanto os dados são gravados nos arquivos de log: os metadados do blob fornecem uma indicação mais precisa do conteúdo do blob do que o nome do blob.
A maioria das ferramentas de navegação de armazenamento permite exibir os metadados de blobs. Além disso, você pode ler essas informações usando o PowerShell ou de forma programática. O seguinte snippet do PowerShell é um exemplo de filtragem da lista de blobs de log pelo nome, para especificar uma hora, e por metadados, para identificar apenas os logs que contêm operações de gravação.
Get-AzStorageBlob -Container '$logs' |
Where-Object {
$_.Name -match 'blob/2014/05/21/05' -and
$_.ICloudBlob.Metadata.LogType -match 'write'
} |
ForEach-Object {
"{0} {1} {2} {3}" -f $_.Name,
$_.ICloudBlob.Metadata.StartTime,
$_.ICloudBlob.Metadata.EndTime,
$_.ICloudBlob.Metadata.LogType
}
Para obter informações sobre como listar blobs de forma programática, consulte Enumeração de Recursos de Blob e Definição e Recuperação de Propriedades e Metadados para Recursos de Blob.
Convenções de nomenclatura de log
Cada log será gravado no formato a seguir:
<service-name>/YYYY/MM/DD/hhmm/<counter>.log
A tabela a seguir descreve cada atributo no nome do log:
Atributo | Descrição |
---|---|
<service-name> |
O nome do serviço de armazenamento. Por exemplo: blob , table ou queue |
YYYY |
O ano de quatro dígitos do log. Por exemplo: 2011 |
MM |
O mês de dois dígitos do log. Por exemplo: 07 |
DD |
O dia de dois dígitos do log. Por exemplo: 31 |
hh |
A hora de dois dígitos que indica a hora inicial dos logs, no formato de 24 horas UTC. Por exemplo: 18 |
mm |
O número de dois dígitos que indica o minuto inicial dos logs. Observação: esse valor não tem suporte na versão atual da Análise de Armazenamento e seu valor será sempre 00 . |
<counter> |
Um contador baseado em zero com seis dígitos que indica o número de blobs de log gerado para o serviço de armazenamento em um período de uma hora. Esse contador começa em 000000 . Por exemplo: 000001 |
O nome a seguir é um exemplo de nome de log completo, que combina os exemplos anteriores:
blob/2011/07/31/1800/000001.log
O URI a seguir é um exemplo de URI que pode ser usado para acessar o log anterior:
https://<accountname>.blob.core.windows.net/$logs/blob/2011/07/31/1800/000001.log
Quando uma solicitação de armazenamento estiver conectada, o nome do log resultante se correlaciona com a hora quando concluir a operação solicitada. Por exemplo, se uma solicitação GetBlob foi concluída às 18h30, em 31/07/2011, o log seria gravado com o seguinte prefixo: blob/2011/07/31/1800/
Metadados de log
Todos os blobs de log são armazenados com metadados que podem ser usados para identificar os dados de log que contém o blob. A tabela a seguir descreve cada atributo de metadados:
Atributo | Descrição |
---|---|
LogType |
Descreve se o log contém informações referentes a operações de ler, gravar ou de exclusão. Esse valor pode incluir um tipo ou uma combinação dos três, separados por vírgulas. Exemplo 1: write Exemplo 2: read,write Exemplo 3: read,write,delete |
StartTime |
A hora da entrada mais antiga do log, na forma de YYYY-MM-DDThh:mm:ssZ . Por exemplo: 2011-07-31T18:21:46Z |
EndTime |
A hora da entrada mais recente do log, na forma de YYYY-MM-DDThh:mm:ssZ . Por exemplo: 2011-07-31T18:22:09Z |
LogVersion |
A versão do formato do log. |
A lista a seguir exibe exemplos de metadados que usam os exemplos anteriores:
LogType=write
StartTime=2011-07-31T18:21:46Z
EndTime=2011-07-31T18:22:09Z
LogVersion=1.0
Entradas de log
As seções a seguir mostram uma entrada de log de exemplo para cada serviço com suporte do Armazenamento Azure.
Entrada de log de exemplo para Armazenamento de Blobs
2.0;2022-01-03T20:34:54.4617505Z;PutBlob;SASSuccess;201;7;7;sas;;logsamples;blob;https://logsamples.blob.core.windows.net/container1/1.txt?se=2022-02-02T20:34:54Z&sig=XXXXX&sp=rwl&sr=c&sv=2020-04-08&timeout=901;"/logsamples/container1/1.txt";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;172.16.0.0:53371;2019-12-12;654;13;337;0;13;"xxxxxxxxxxxxxxxxxxxxx==";"xxxxxxxxxxxxxxxxxxxxx==";""0x8D9CEF88004E296"";Monday, 03-Jan-22 20:34:54 GMT;;"Microsoft Azure Storage Explorer, 1.20.1, win32, azcopy-node, 2.0.0, win32, AzCopy/10.11.0 Azure-Storage/0.13 (go1.15; Windows_NT)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Entrada de log de exemplo para o Armazenamento de Blobs (Data Lake Storage habilitado)
2.0;2022-01-04T22:50:56.0000775Z;RenamePathFile;Success;201;49;49;authenticated;logsamples;logsamples;blob;"https://logsamples.dfs.core.windows.net/my-container/myfileorig.png?mode=legacy";"/logsamples/my-container/myfilerenamed.png";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;172.16.0.0;2020-04-08;591;0;224;0;0;;;;Friday, 11-Jun-21 17:58:15 GMT;;"Microsoft Azure Storage Explorer, 1.19.1, win32 azsdk-js-storagedatalake/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Entrada de log de exemplo para Armazenamento de Filas
2.0;2022-01-03T20:35:04.6097590Z;PeekMessages;Success;200;5;5;authenticated;logsamples;logsamples;queue;https://logsamples.queue.core.windows.net/queue1/messages?numofmessages=32&peekonly=true&timeout=30;"/logsamples/queue1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;172.16.0.0:53385;2020-04-08;536;0;232;62;0;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32 azsdk-js-storagequeue/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Entrada de log de exemplo para Armazenamento de Tabelas
1.0;2022-01-03T20:35:13.0719766Z;CreateTable;Success;204;30;30;authenticated;logsamples;logsamples;table;https://logsamples.table.core.windows.net/Tables;"/logsamples/Table1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;172.16.0.0:53389;2018-03-28;601;22;339;0;22;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32, Azure-Storage/2.10.3 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"