Registro em log da análise de armazenamento do AzureAzure Storage analytics logging

A análise de armazenamento registra informações detalhadas sobre solicitações bem-sucedidas e com falha para um serviço de armazenamento.Storage Analytics logs detailed information about successful and failed requests to a storage service. Essas informações podem ser usadas para monitorar solicitações individuais e diagnosticar problemas com um serviço de armazenamento.This information can be used to monitor individual requests and to diagnose issues with a storage service. As solicitações são registradas em uma base de melhor esforço.Requests are logged on a best-effort basis.

O log de Análise de Armazenamento não é habilitado por padrão para sua conta de armazenamento.Storage Analytics logging is not enabled by default for your storage account. Você pode habilitá-la no portal do Azure; para obter detalhes, consulte Monitorar uma conta de armazenamento no portal do Azure.You can enable it in the Azure portal; for details, see Monitor a storage account in the Azure portal. Você também pode habilitar a análise de armazenamento programaticamente por meio da API REST ou da biblioteca de cliente.You can also enable Storage Analytics programmatically via the REST API or the client library. Use as operações obter propriedades do serviço blob, propriedades do serviço de filae obter propriedades do serviço tabela para habilitar o análise de armazenamento para cada serviço.Use the Get Blob Service Properties, Get Queue Service Properties, and Get Table Service Properties operations to enable Storage Analytics for each service.

As entradas de log são criadas somente se há solicitações feitas no ponto de extremidade de serviço.Log entries are created only if there are requests made against the service endpoint. Por exemplo, se uma conta de armazenamento tiver atividade em seu ponto de extremidade de BLOB, mas não em seus pontos de extremidades de tabela ou de fila, somente os logs pertencentes ao serviço blob serão criados.For example, if a storage account has activity in its Blob endpoint but not in its Table or Queue endpoints, only logs pertaining to the Blob service will be created.

Observação

No momento, o log de Análise de Armazenamento está disponível apenas para os serviços BLOB, fila e tabela.Storage Analytics logging is currently available only for the Blob, Queue, and Table services. No entanto, não há suporte para a conta de armazenamento Premium.However, premium storage account is not supported.

Observação

Os recursos descritos neste artigo agora estão disponíveis para contas que têm um namespace hierárquico.The features described in this article are now available to accounts that have a hierarchical namespace. Para examinar as limitações, confira o artigo Problemas conhecidos com o Azure Data Lake Storage Gen2.To review limitations, see the Known issues with Azure Data Lake Storage Gen2 article.

Solicitações registradas em logRequests logged in logging

Solicitações de registro em log autenticadasLogging authenticated requests

Os seguintes tipos de solicitações autenticadas são registrados:The following types of authenticated requests are logged:

  • Solicitações bem-sucedidasSuccessful requests

  • Solicitações com falha, incluindo tempo limite, limitação, rede, autorização e outros errosFailed requests, including timeout, throttling, network, authorization, and other errors

  • Solicitações que usam uma SAS (assinatura de acesso compartilhado) ou OAuth, incluindo solicitações com falha e bem-sucedidasRequests using a Shared Access Signature (SAS) or OAuth, including failed and successful requests

  • Solicitações de dados de análiseRequests to analytics data

    As solicitações feitas pela própria análise de armazenamento, como criação de log ou exclusão, não estão conectadas.Requests made by Storage Analytics itself, such as log creation or deletion, are not logged. 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).A full list of the logged data is documented in the Storage Analytics Logged Operations and Status Messages and Storage Analytics Log Format topics.

Registro em log de solicitações anônimasLogging anonymous requests

Os seguintes tipos de solicitações anônimas são registrados:The following types of anonymous requests are logged:

  • Solicitações bem-sucedidasSuccessful requests

  • Erros do servidorServer errors

  • Erros de tempo limite para o cliente e o servidorTimeout errors for both client and server

  • Solicitações GET com falha com o código de erro 304 (Não Modificado)Failed GET requests with error code 304 (Not Modified)

    Todas as outras solicitações anônimas com falha não estão conectadas.All other failed anonymous requests are not logged. 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).A full list of the logged data is documented in the Storage Analytics Logged Operations and Status Messages and Storage Analytics Log Format topics.

Como os logs são armazenadosHow logs are stored

Todos os logs são armazenados em blobs de blocos em um contêiner chamado $logs, que é criado automaticamente quando Análise de Armazenamento está habilitado para uma conta de armazenamento.All logs are stored in block blobs in a container named $logs, which is automatically created when Storage Analytics is enabled for a storage account. O contêiner de $logs está localizado no namespace de BLOB da conta de armazenamento, por exemplo: http://<accountname>.blob.core.windows.net/$logs.The $logs container is located in the blob namespace of the storage account, for example: 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.This container cannot be deleted once Storage Analytics has been enabled, though its contents can be deleted. Se você usar sua ferramenta de navegação de armazenamento para navegar diretamente até o contêiner, verá todos os blobs que contêm os dados de log.If you use your storage-browsing tool to navigate to the container directly, you will see all the blobs that contain your logging data.

Observação

O contêiner $logs não é exibido quando uma operação de listagem de contêiner é executada, como a operação listar contêineres.The $logs container is not displayed when a container listing operation is performed, such as the List Containers operation. Ele deve ser acessado diretamente.It must be accessed directly. Por exemplo, você pode usar a operação listar BLOBs para acessar os BLOBs no contêiner $logs.For example, you can use the List Blobs operation to access the blobs in the $logs container.

Como as solicitações são registradas, a análise de armazenamento carrega resultados intermediários como blocos.As requests are logged, Storage Analytics will upload intermediate results as blocks. Periodicamente, a análise de armazenamento confirmará esses blocos e os disponibilizará como um blob.Periodically, Storage Analytics will commit these blocks and make them available as a blob. Pode levar até uma hora para que os dados de log apareçam nos BLOBs no contêiner de $logs , pois a frequência em que o serviço de armazenamento libera os gravadores de log.It can take up to an hour for log data to appear in the blobs in the $logs container because the frequency at which the storage service flushes the log writers. Podem existir registros duplicados para os logs criados na mesma hora.Duplicate records may exist for logs created in the same hour. Você pode determinar se um registro é uma duplicata verificando RequestId e o número da Operação.You can determine if a record is a duplicate by checking the RequestId and Operation number.

Se você tiver um alto 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.If you have a high volume of log data with multiple files for each hour, then you can use the blob metadata to determine what data the log contains by examining the blob metadata fields. Isso também é útil porque, às vezes, pode haver um atraso enquanto os dados são gravados nos arquivos de log: os metadados de blob fornecem uma indicação mais precisa do conteúdo do blob do que o nome do blob.This is also useful because there can sometimes be a delay while data is written to the log files: the blob metadata gives a more accurate indication of the blob content than the blob name.

A maioria das ferramentas de procura de armazenamento permite que você exiba os metadados dos BLOBs; Você também pode ler essas informações usando o PowerShell ou programaticamente.Most storage browsing tools enable you to view the metadata of blobs; you can also read this information using PowerShell or programmatically. 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 .The following PowerShell snippet is an example of filtering the list of log blobs by name to specify a time, and by metadata to identify just those logs that contain write operations.

Get-AzureStorageBlob -Container '$logs' |  
Where-Object {  
    $_.Name -match 'table/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.For information about listing blobs programmatically, see Enumerating Blob Resources and Setting and Retrieving Properties and Metadata for Blob Resources.

Convenções de nomenclatura de logLog naming conventions

Cada log será gravado no seguinte formato:Each log will be written in the following format:

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

A tabela a seguir descreve cada atributo no nome do log:The following table describes each attribute in the log name:

AtributoAttribute DescriçãoDescription
<service-name> O nome do serviço de armazenamento.The name of the storage service. Por exemplo: blob, tableou queueFor example: blob, table, or queue
YYYY O ano de quatro dígitos do log.The four digit year for the log. Por exemplo: 2011For example: 2011
MM O mês de dois dígitos para o log.The two digit month for the log. Por exemplo: 07For example: 07
DD O dia de dois dígitos para o log.The two digit day for the log. Por exemplo: 31For example: 31
hh A hora de dois dígitos que indica a hora inicial dos logs, no formato UTC de 24 horas.The two digit hour that indicates the starting hour for the logs, in 24 hour UTC format. Por exemplo: 18For example: 18
mm O número de dois dígitos que indica o minuto inicial para os logs.The two digit number that indicates the starting minute for the logs. Observação: Esse valor não tem suporte na versão atual do Análise de Armazenamento, e seu valor sempre será 00.Note: This value is unsupported in the current version of Storage Analytics, and its value will always be 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.A zero-based counter with six digits that indicates the number of log blobs generated for the storage service in an hour time period. Este contador é iniciado na 000000.This counter starts at 000000. Por exemplo: 000001For example: 000001

Este é um nome de log de exemplo completo que combina os exemplos acima:The following is a complete sample log name that combines the above examples:

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

Veja a seguir um exemplo de URI que pode ser usado para acessar o log acima:The following is a sample URI that can be used to access the above log:

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.When a storage request is logged, the resulting log name correlates to the hour when the requested operation completed. Por exemplo, se uma solicitação getBlob tiver sido concluída em 6: às 16h30 em 7/31/2011, o log seria gravado com o seguinte prefixo: blob/2011/07/31/1800/For example, if a GetBlob request was completed at 6:30PM on 7/31/2011, the log would be written with the following prefix: blob/2011/07/31/1800/

Metadados de logLog metadata

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.All log blobs are stored with metadata that can be used to identify what logging data the blob contains. A tabela a seguir descreve cada atributo de metadados:The following table describes each metadata attribute:

AtributoAttribute DescriçãoDescription
LogType Descreve se o log contém informações referentes a operações de ler, gravar ou de exclusão.Describes whether the log contains information pertaining to read, write, or delete operations. Esse valor pode incluir um tipo ou uma combinação dos três, separados por vírgulas.This value can include one type or a combination of all three, separated by commas.

Exemplo 1: writeExample 1: write

Exemplo 2: read,writeExample 2: read,write

Exemplo 3: read,write,deleteExample 3: read,write,delete
StartTime A hora mais antiga de uma entrada no log, na forma de YYYY-MM-DDThh:mm:ssZ.The earliest time of an entry in the log, in the form of YYYY-MM-DDThh:mm:ssZ. Por exemplo: 2011-07-31T18:21:46ZFor example: 2011-07-31T18:21:46Z
EndTime A hora mais recente de uma entrada no log, na forma de YYYY-MM-DDThh:mm:ssZ.The latest time of an entry in the log, in the form of YYYY-MM-DDThh:mm:ssZ. Por exemplo: 2011-07-31T18:22:09ZFor example: 2011-07-31T18:22:09Z
LogVersion A versão do formato do log.The version of the log format.

A lista a seguir exibe os metadados de exemplo completos usando os exemplos acima:The following list displays complete sample metadata using the above examples:

  • LogType=write
  • StartTime=2011-07-31T18:21:46Z
  • EndTime=2011-07-31T18:22:09Z
  • LogVersion=1.0

Habilitar log de armazenamentoEnable Storage logging

Você pode habilitar o log de armazenamento com o portal do Azure, o PowerShell e os SDKs de armazenamento.You can enable Storage logging with Azure portal, PowerShell, and Storage SDKs.

Habilitar o log de armazenamento usando o portal do AzureEnable Storage logging using the Azure portal

No portal do Azure, use a folha configurações de diagnóstico (clássico) para controlar o log de armazenamento, acessível na seção monitoramento (clássico) da folha de menude uma conta de armazenamento.In the Azure portal, use the Diagnostics settings (classic) blade to control Storage Logging, accessible from the Monitoring (classic) section of a storage account's Menu blade.

Você pode especificar os serviços de armazenamento que deseja registrar em log e o período de retenção (em dias) para os dados registrados.You can specify the storage services that you want to log, and the retention period (in days) for the logged data.

Habilitar o log de armazenamento usando o PowerShellEnable Storage logging using PowerShell

Você pode usar o PowerShell em seu computador local para configurar o log de armazenamento em sua conta de armazenamento usando o cmdlet Azure PowerShell Get-AzureStorageServiceLoggingProperty para recuperar as configurações atuais e o cmdlet Set-AzureStorageServiceLoggingProperty para alterar as configurações atuais.You can use PowerShell on your local machine to configure Storage Logging in your storage account by using the Azure PowerShell cmdlet Get-AzureStorageServiceLoggingProperty to retrieve the current settings, and the cmdlet Set-AzureStorageServiceLoggingProperty to change the current settings.

Os cmdlets que controlam o log de armazenamento usam um parâmetro LoggingOperations que é uma cadeia de caracteres que contém uma lista separada por vírgulas de tipos de solicitação para registrar em log.The cmdlets that control Storage Logging use a LoggingOperations parameter that is a string containing a comma-separated list of request types to log. Os três tipos de solicitação possíveis são leitura, gravaçãoe exclusão.The three possible request types are read, write, and delete. Para desativar o registro em log, use o valor None para o parâmetro LoggingOperations .To switch off logging, use the value none for the LoggingOperations parameter.

O comando a seguir alterna o registro em log para solicitações de leitura, gravação e exclusão no serviço Fila em sua conta de armazenamento padrão com retenção definida como cinco dias:The following command switches on logging for read, write, and delete requests in the Queue service in your default storage account with retention set to five days:

Set-AzureStorageServiceLoggingProperty -ServiceType Queue -LoggingOperations read,write,delete -RetentionDays 5  

O comando a seguir desativa o registro em log para o serviço tabela em sua conta de armazenamento padrão:The following command switches off logging for the table service in your default storage account:

Set-AzureStorageServiceLoggingProperty -ServiceType Table -LoggingOperations none  

Para saber mais sobre como configurar os cmdlets do PowerShell do Azure para funcionar com sua assinatura do Azure e como selecionar a conta de armazenamento padrão para usar, consulte: Como instalar e configurar o PowerShell do Azure.For information about how to configure the Azure PowerShell cmdlets to work with your Azure subscription and how to select the default storage account to use, see: How to install and configure Azure PowerShell.

Habilitar o log de armazenamento de forma programáticaEnable Storage logging programmatically

Além de usar os cmdlets portal do Azure ou Azure PowerShell para controlar o log de armazenamento, você também pode usar uma das APIs de armazenamento do Azure.In addition to using the Azure portal or the Azure PowerShell cmdlets to control Storage Logging, you can also use one of the Azure Storage APIs. Por exemplo, se você estiver usando uma linguagem .NET, poderá usar a biblioteca de cliente de armazenamento.For example, if you are using a .NET language you can use the Storage Client Library.

As classes CloudBlobClient, CloudQueueCliente CloudTableClient têm métodos como setserviceproperties e SetServicePropertiesAsync que usam um objeto serviceproperties como um meter.The classes CloudBlobClient, CloudQueueClient, and CloudTableClient all have methods such as SetServiceProperties and SetServicePropertiesAsync that take a ServiceProperties object as a parameter. Você pode usar o objeto serviceproperties para configurar o log de armazenamento.You can use the ServiceProperties object to configure Storage Logging. Por exemplo, o trecho C# a seguir mostra como alterar o que é registrado e o período de retenção para o log de fila:For example, the following C# snippet shows how to change what is logged and the retention period for queue logging:

var storageAccount = CloudStorageAccount.Parse(connStr);  
var queueClient = storageAccount.CreateCloudQueueClient();  
var serviceProperties = queueClient.GetServiceProperties();  

serviceProperties.Logging.LoggingOperations = LoggingOperations.All;  
serviceProperties.Logging.RetentionDays = 2;  

queueClient.SetServiceProperties(serviceProperties);  

Para obter mais informações sobre como usar uma linguagem .NET para configurar o log de armazenamento, consulte referência da biblioteca do cliente de armazenamento.For more information about using a .NET language to configure Storage Logging, see Storage Client Library Reference.

Para obter informações gerais sobre como configurar o log de armazenamento usando a API REST, consulte Habilitando e Configurando análise de armazenamento.For general information about configuring Storage Logging using the REST API, see Enabling and Configuring Storage Analytics.

Baixar dados de log de log de armazenamentoDownload Storage logging log data

Para exibir e analisar os dados de log, baixe os blobs que contêm os dados de log em que você está interessado em um computador local.To view and analyze your log data, you should download the blobs that contain the log data you are interested in to a local machine. Muitas ferramentas de navegação de armazenamento permitem que você baixe blobs de sua conta de armazenamento; Você também pode usar a ferramenta de cópia do Azure de linha de comando fornecida pela equipe de armazenamento do Azure AzCopy para baixar seus dados de log.Many storage-browsing tools enable you to download blobs from your storage account; you can also use the Azure Storage team provided command-line Azure Copy Tool AzCopy to download your log data.

Para verificar se você baixou os dados de log nos quais está interessado e para evitar baixar os mesmos dados de log mais de uma vez:To make sure you download the log data you are interested in and to avoid downloading the same log data more than once:

  • Use a Convenção de nomenclatura de data e hora para BLOBs que contêm dados de log para controlar quais BLOBs você já baixou para análise para evitar baixar novamente os mesmos dados mais de uma vez.Use the date and time naming convention for blobs containing log data to track which blobs you have already downloaded for analysis to avoid re-downloading the same data more than once.

  • Use os metadados nos BLOBs que contêm dados de log para identificar o período específico para o qual o BLOB contém dados de log para identificar o blob exato que você precisa baixar.Use the metadata on the blobs containing log data to identify the specific period for which the blob holds log data to identify the exact blob you need to download.

Para começar a usar o AzCopy, consulte Introdução ao AzCopyTo get started with AzCopy, see Get started with AzCopy

O exemplo a seguir mostra como você pode baixar os dados de log para o serviço fila para as horas começando às 9h, às 12h, às 9h e às 11 de maio de 2014.The following example shows how you can download the log data for the queue service for the hours starting at 09 AM, 10 AM, and 11 AM on 20th May, 2014.

azcopy copy 'https://mystorageaccount.blob.core.windows.net/$logs/queue' 'C:\Logs\Storage' --include-path '2014/05/20/09;2014/05/20/10;2014/05/20/11' --recursive

Para saber mais sobre como baixar arquivos específicos, consulte baixar arquivos específicos.To learn more about how to download specific files, see Download specific files.

Depois de baixar os dados de log, você poderá exibir as entradas de log nos arquivos.When you have downloaded your log data, you can view the log entries in the files. Esses arquivos de log usam um formato de texto delimitado que muitas ferramentas de leitura de log podem analisar, incluindo o Microsoft Message Analyzer (para obter mais informações, consulte o guia monitoramento, diagnóstico e solução de problemas armazenamento do Microsoft Azure).These log files use a delimited text format that many log reading tools are able to parse, including Microsoft Message Analyzer (for more information, see the guide Monitoring, Diagnosing, and Troubleshooting Microsoft Azure Storage). Ferramentas diferentes têm recursos diferentes para formatação, filtragem, classificação, AD pesquisando o conteúdo dos arquivos de log.Different tools have different facilities for formatting, filtering, sorting, ad searching the contents of your log files. Para obter mais informações sobre o formato e o conteúdo do arquivo de log de log de armazenamento, consulte análise de armazenamento formato de log e análise de armazenamento as operações registradas e as mensagens de status.For more information about the Storage Logging log file format and content, see Storage Analytics Log Format and Storage Analytics Logged Operations and Status Messages.

Próximos passosNext steps