Partilhar via


Azure Storage analytics logging (Registo de análise do Armazenamento do Azure)

A Análise de Armazenamento regista informações detalhadas sobre os pedidos com êxito e com falha feitos a um serviço de armazenamento. Estas informações podem ser utilizadas para monitorizar os pedidos individuais e diagnosticar problemas num serviço de armazenamento. As solicitações são registradas com base no melhor esforço. Isso significa que a maioria das solicitações resultará em um registro de log, mas a integridade e a pontualidade dos logs do Storage Analytics não são garantidas.

Nota

Recomendamos que você use os logs do Armazenamento do Azure no Azure Monitor em vez dos logs da Análise de Armazenamento. Para saber mais, consulte qualquer um dos seguintes artigos:

O registo da Análise de Armazenamento não está ativado, por predefinição, na conta de armazenamento. Você pode habilitá-lo no portal do Azure ou usando o PowerShell ou a CLI do Azure. Para obter orientação passo a passo, consulte Habilitar e gerenciar logs do Azure Storage Analytics (clássico).

Você também pode habilitar os logs do Storage Analytics programaticamente por meio da API REST ou da biblioteca do cliente. Use as operações Obter Propriedades do Serviço de Blob, Obter Propriedades do Serviço de Fila e Obter Propriedades do Serviço de Tabela para habilitar a Análise de Armazenamento para cada serviço. Para ver um exemplo que habilita os logs do Storage Analytics usando o .NET, consulte Habilitar logs

As entradas de log são criadas somente se houver solicitações feitas no ponto de extremidade do serviço. Por exemplo, se uma conta de armazenamento tiver atividade 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 serão criados.

Nota

Atualmente, o registo da Análise de Armazenamento está disponível apenas para os serviços Blobs, Fila e Tabela. O registro em log do Storage Analytics também está disponível para contas BlockBlobStorage de desempenho premium. No entanto, ele não está disponível para contas v2 de uso geral com desempenho premium.

Pedidos com sessão iniciada no registo

Registrando solicitações autenticadas

São registados os seguintes tipos de pedidos autenticados:

  • Pedidos com êxito

  • Pedidos falhados, incluindo tempo limite, limitação, rede, autorização e outros erros

  • Pedidos que utilizam uma Assinatura de Acesso Partilhado (SAS) ou OAuth, incluindo pedidos falhados e com êxito

  • Pedidos de dados de análise

    As solicitações feitas pelo próprio Storage Analytics, como criação ou exclusão de logs, não são registradas. Uma lista completa dos dados registrados está documentada nos tópicos Operações registradas e mensagens de status do Storage Analytics e Formato de log do Storage Analytics.

Registo de pedidos anónimos

Os seguintes tipos de solicitações anônimas são registrados:

  • Pedidos com êxito

  • Erros de servidor

  • Erros de tempo limite para cliente e servidor

  • Pedidos GET falhados com código de erro 304 (Não Modificado)

    Todas as outras solicitações anônimas com falha não são registradas. Uma lista completa dos dados registrados está documentada nos tópicos Operações registradas e mensagens de status do Storage Analytics e Formato de log do Storage Analytics.

Nota

O Storage Analytics registra todas as chamadas internas para o plano de dados. As chamadas do Provedor de Recursos de Armazenamento do Azure também são registradas. Para identificar essas solicitações, procure a cadeia de caracteres <sk=system-1> de consulta na URL da solicitação.

Como os logs são armazenados

Todos os logs são armazenados em blobs de bloco em um contêiner chamado $logs, que é criado automaticamente quando o Storage Analytics está habilitado para uma conta de armazenamento. O $logs contêiner está localizado no namespace blob da conta de armazenamento, por exemplo: http://<accountname>.blob.core.windows.net/$logs. Esse contêiner não pode ser excluído depois que o Storage Analytics estiver habilitado, embora seu conteúdo possa ser excluído. Se você usar sua ferramenta de navegação de armazenamento para navegar diretamente até o contêiner, verá todos os blobs que contêm seus dados de registro.

Nota

O $logs contêiner não é exibido quando uma operação de listagem de contêineres é executada, como a operação Listar Contêineres. Deve ser acedido diretamente. Por exemplo, você pode usar a operação Listar Blobs para acessar os blobs no $logs contêiner.

À medida que as solicitações são registradas, o Storage Analytics carrega resultados intermediários como blocos. Periodicamente, o Storage Analytics confirmará esses blocos e os disponibilizará como um blob. Pode levar até uma hora para que os dados de log apareçam nos blobs no contêiner $logs porque a frequência com que o serviço de armazenamento libera os gravadores de log. Registros duplicados podem existir para logs criados na mesma hora. Você pode determinar se um registro é duplicado verificando o número RequestId e Operation.

Se você tiver um grande volume de dados de log com vários arquivos para cada hora, poderá usar os metadados de blob para determinar quais dados o log contém examinando os campos de metadados de 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 visualizar os metadados de blobs; você também pode ler essas informações usando o PowerShell ou programaticamente. O trecho do PowerShell a seguir é um exemplo de filtragem da lista de blobs de log por 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 programaticamente, consulte Enumerando recursos de Blob e Definindo e recuperando propriedades e metadados para recursos de Blob.

Convenções de nomenclatura de log

Cada log será escrito no seguinte formato:

<service-name>/YYYY/MM/DD/hhmm/<counter>.log

A tabela a seguir descreve cada atributo no nome do log:

Atributo Description
<service-name> O nome do serviço de armazenamento. Por exemplo: blob, table, ou queue
YYYY O ano de quatro dígitos para o log. Por exemplo: 2011
MM O mês de dois dígitos para o log. Por exemplo: 07
DD O dia de dois dígitos para o log. Por exemplo: 31
hh A hora de dois dígitos que indica a hora inicial para os logs, no formato UTC de 24 horas. Por exemplo: 18
mm O número de dois dígitos que indica o minuto inicial para os logs. Nota: Este valor não é suportado na versão atual do Storage Analytics e o seu valor será 00sempre .
<counter> Um contador baseado em zero com seis dígitos que indica o número de blobs de log gerados para o serviço de armazenamento em um período de tempo de hora. Este contador começa em 000000. Por exemplo: 000001

A seguir está um nome de log de exemplo completo que combina os exemplos acima:

blob/2011/07/31/1800/000001.log

A seguir está um URI de exemplo que pode ser usado para acessar o log acima:

https://<accountname>.blob.core.windows.net/$logs/blob/2011/07/31/1800/000001.log

Quando uma solicitação de armazenamento é registrada, o nome do log resultante é correlacionado à hora em que a operação solicitada foi concluída. Por exemplo, se uma solicitação GetBlob foi concluída às 18h30 de 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 quais dados de log o blob contém. A tabela a seguir descreve cada atributo de metadados:

Atributo Description
LogType Descreve se o log contém informações referentes a operações de leitura, gravação ou 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 primeira hora de uma entrada no log, na forma de YYYY-MM-DDThh:mm:ssZ. Por exemplo: 2011-07-31T18:21:46Z
EndTime A última hora de uma entrada no log, na forma de YYYY-MM-DDThh:mm:ssZ. Por exemplo: 2011-07-31T18:22:09Z
LogVersion A versão do formato de log.

A lista a seguir exibe metadados de exemplo completos usando os exemplos acima:

  • 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 de Armazenamento do Azure com suporte.

Exemplo de entrada de log para armazenamento de Blob

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&amp;sig=XXXXX&amp;sp=rwl&amp;sr=c&amp;sv=2020-04-08&amp;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==";"&quot;0x8D9CEF88004E296&quot;";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";;;;;;;;

Exemplo de entrada de log para armazenamento de Blob (armazenamento Data Lake 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";;;;;;;;

Exemplo de entrada de log para armazenamento em fila

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&amp;peekonly=true&amp;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";;;;;;;;

Exemplo de entrada de log para Armazenamento de Tabela

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"

Próximos passos