Partilhar via


Registo de análise de 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 endpoint do serviço. Por exemplo, se uma conta de armazenamento tiver atividade no seu ponto de extremidade Blob, mas não nos 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 Blob, Fila e Tabela. O registo em log do Storage Analytics 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.

Pedidos registados no log

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 registados está documentada nos tópicos Operações Logadas 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. Isto pode incluir pedidos que apresentam uma Assinatura de Acesso Partilhada (SAS) mas falham a validação (por exemplo, uma incompatibilidade de assinatura SAS). Nestes casos, o serviço não consegue identificar de forma fiável o chamador, pelo que o pedido é tratado como anónimo para efeitos de registo. Além disso, como os dados de registo do Storage Analytics escritos no $logs contentor são faturados à conta de armazenamento, registar todos os pedidos inválidos/não autenticados pode permitir cenários de amplificação/abuso de custos (por exemplo, um cliente malicioso a gerar grandes volumes de pedidos inválidos para aumentar o volume de registo).

    Uma lista completa dos dados registados está documentada nos tópicos Operações Registadas e Mensagens de Estado do Storage Analytics e no Formato de Registo 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 contentor $logs, porque o serviço de armazenamento expulsa os gravadores de log com uma certa frequência. 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 tiveres um elevado volume de dados de registo com vários ficheiros para cada hora, podes usar os metadados do blob para determinar que dados o registo 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 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 registo

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 Descrição
<service-name> O nome do serviço de armazenamento. Por exemplo: blob, table, ou queue
YYYY O ano com quatro dígitos para o log. Por exemplo: 2011
MM O mês representado por dois dígitos para o registo. Por exemplo: 07
DD O dia com dois dígitos para o registo. 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 de início dos logs. Nota: Este valor não é suportado na versão atual do Storage Analytics e o seu valor será 00sempre .
<counter> Um contador de base zero com seis dígitos que indica o número de blobs de log gerados para o serviço de armazenamento num período de uma hora. Este contador começa em 000000. Por exemplo: 000001

A seguir está um exemplo de nome de log 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 Descrição
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 hora mais antiga 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 Blobs (com Data Lake Storage ativado)

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

Próximos passos