Acessando os logs de diagnóstico do Azure Data Lake Storage Gen1

Saiba como habilitar o log de diagnósticos em sua conta do Azure Data Lake Storage Gen1 e como exibir os logs coletados em sua conta.

As organizações podem habilitar o log de diagnóstico para que as contas do Azure Data Lake Storage Gen1 coletem trilhas de auditoria de acesso a dados que forneçam informações, como a lista de usuários que acessam os dados, a frequência que os dados são acessados, a quantidade de dados armazenados na conta etc. Quando habilitado, o diagnóstico e/ou as solicitações são registrados do melhor modo possível. As entradas de log de Solicitações e Diagnóstico são criadas somente em caso de solicitações feitas no ponto de extremidade de serviço.

Pré-requisitos

Habilitar o log de diagnósticos em sua conta do Data Lake Storage Gen1

  1. Inscreva-se no novo portal do Azure.

  2. Abra sua conta Data Lake Storage Gen1 e, na folha da conta Data Lake Storage Gen1, clique em Configurações de Diagnóstico.

  3. Na folha Configurações de diagnóstico, clique em Ativar diagnóstico.

    Captura de tela da conta do Data Lake Storage Gen 1 com a opção de configuração Diagnóstico e a opção Ativar diagnóstico em destaque.

  4. Na folha Configurações de diagnóstico, faça as seguintes alterações para configurar o log de diagnósticos.

    Captura de tela da seção Configuração de diagnóstico com a caixa de texto Nome e a opção Salvar em destaque.

    • Para Nome, insira um valor para a configuração de log de diagnóstico.

    • Você pode optar por armazenar/processar os dados de maneiras diferentes.

      • Selecione a opção Arquivar em uma conta de armazenamento para armazenar os logs em uma conta de armazenamento do Azure. Use esta opção se quiser arquivar os dados que serão processados em lote em uma data posterior. Se escolher esta opção, você deverá fornecer uma conta de armazenamento do Azure para salvar os logs.

      • Selecione a opção Transmitir pra um hub de eventos para transmitir os dados de log para um Hub de Eventos do Azure. Provavelmente, você usará esta opção se tiver um pipeline de processamento de downstream para analisar os logs de entrada em tempo real. Se escolher esta opção, você deverá fornecer os detalhes no Hub de Eventos do Azure que deseja usar.

      • Selecione a opção para Enviar para Log Analytics para usar o serviço do Azure Monitor para analisar os dados de log gerados. Se você selecionar essa opção, deverá fornecer os detalhes para o espaço de trabalho do Log Analytics que seria utilizado para executar a análise de log. Veja Exibir ou analisar dados coletados com a pesquisa de logs do Azure Monitor para obter detalhes sobre como usar os logs do Azure Monitor.

    • Especifique se deseja obter os logs de auditoria, os logs de solicitação ou ambos.

    • Especifique o número de dias que os dados devem ser mantidos. Retenção só é aplicável se você estiver usando a conta de armazenamento do Azure para arquivar dados de log.

    • Clique em Salvar.

Depois de habilitar as configurações de diagnóstico, você poderá observar os logs na guia Logs de Diagnóstico .

Exibir logs de diagnóstico da sua conta do Data Lake Storage Gen1

Há duas maneiras de exibir os dados do log da sua conta do Data Lake Storage Gen1.

  • Na exibição de configurações da conta do Data Lake Storage Gen1
  • Na conta de Armazenamento do Azure onde os dados são armazenados

Usando a exibição de configurações do Data Lake Storage Gen1

  1. Na folha Configurações da conta Data Lake Storage Gen1, clique em Logs de Diagnóstico.

    Exibir logs de diagnóstico

  2. Na folha Logs de Diagnóstico, você deve ver os logs categorizados por Logs de Auditoria e Logs de Solicitação.

    • Os Logs de Solicitação capturam todas as solicitações de API feitas na conta do Data Lake Storage Gen1.
    • Os Logs de Auditoria são semelhantes aos Logs de Solicitação, mas fornecem uma análise mais detalhada das operações que estão sendo executadas na conta do Data Lake Storage Gen1. Por exemplo, uma única chamada à API de upload nos logs de solicitação poderá resultar em várias operações do tipo "Anexar" nos logs de auditoria.
  3. Para baixar os logs, clique no link Baixar de cada entrada de log.

Na conta de Armazenamento do Azure que contém dados de log

  1. Abra a folha Conta de Armazenamento do Azure associada ao Data Lake Storage Gen1 para registro em log e clique em Blobs. A folha serviço Blob lista dois contêineres.

    Captura de tela da folha Data Lake Storage Gen 1 com a opção Blobs selecionada e a folha Serviço de blob com os nomes dos dois serviços de blob em destaque.

    • O contêiner insights-logs-audit contém os logs de auditoria.
    • O contêiner insights-logs-requests contém os logs de solicitação.
  2. Dentro desses contêineres, os logs são armazenados na estrutura a seguir.

    Captura de tela da estrutura de log conforme armazenada no contêiner.

    Por exemplo, o caminho completo para um log de auditoria poderia ser https://adllogs.blob.core.windows.net/insights-logs-audit/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/mydatalakestorage/y=2016/m=07/d=18/h=04/m=00/PT1H.json

    De modo semelhante, o caminho completo para um log de solicitação poderia ser https://adllogs.blob.core.windows.net/insights-logs-requests/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/mydatalakestorage/y=2016/m=07/d=18/h=14/m=00/PT1H.json

Compreenda a estrutura dos dados de log

Os logs de auditoria e solicitação estão em formato JSON. Nesta seção, examinaremos a estrutura do JSON nos logs de solicitação e auditoria.

Logs de Solicitação

Aqui está um exemplo de entrada no log de solicitação formatado em JSON. Cada blob tem um objeto-raiz chamado registros que contém uma matriz de objetos do log.

{
"records": 
  [        
    . . . .
    ,
    {
        "time": "2016-07-07T21:02:53.456Z",
        "resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/<data_lake_storage_gen1_account_name>",
        "category": "Requests",
        "operationName": "GETCustomerIngressEgress",
        "resultType": "200",
        "callerIpAddress": "::ffff:1.1.1.1",
        "correlationId": "4a11c709-05f5-417c-a98d-6e81b3e29c58",
        "identity": "1808bd5f-62af-45f4-89d8-03c5e81bac30",
        "properties": {"HttpMethod":"GET","Path":"/webhdfs/v1/Samples/Outputs/Drivers.csv","RequestContentLength":0,"StoreIngressSize":0 ,"StoreEgressSize":4096,"ClientRequestId":"3b7adbd9-3519-4f28-a61c-bd89506163b8","StartTime":"2016-07-07T21:02:52.472Z","EndTime":"2016-07-07T21:02:53.456Z","QueryParameters":"api-version=<version>&op=<operationName>"}
    }
    ,
    . . . .
  ]
}

Esquema do log de solicitação

Nome Tipo Descrição
time String O carimbo de data/hora (em UTC) do log
resourceId String A ID do recurso em que a operação ocorreu
category String A categoria do log. Por exemplo, Solicitações.
operationName String Nome da operação que está registrada. Por exemplo, getfilestatus.
resultType String O status da operação, por exemplo, 200.
callerIpAddress String O endereço IP do cliente que está fazendo a solicitação
correlationId String A ID do log que pode ser usada para agrupar um conjunto de entradas de log relacionada
identidade Objeto A identidade que gerou o log
properties JSON Confira abaixo para obter os detalhes

Esquema de propriedades do log de solicitação

Nome Tipo Descrição
HttpMethod String O método HTTP usado para a operação. Por exemplo, GET.
Caminho String O caminho em que a operação foi executada
RequestContentLength INT O comprimento do conteúdo da solicitação HTTP
ClientRequestId String A ID que identifica esta solicitação exclusivamente
StartTime String A hora em que o servidor recebeu a solicitação
EndTime String A hora em que o servidor enviou uma resposta
StoreIngressSize long Tamanho em bytes de entrada no Data Lake Storage
StoreEgressSize long Tamanho em bytes de saída no Data Lake Storage
QueryParameters String Descrição: esses são os parâmetros de consulta http. Exemplo 1: api-version=2014-01-01&op=getfilestatus Exemplo 2: op=APPEND&append=true&syncFlag=DATA&filesessionid=bee3355a-4925-4435-bb4d-ceea52811aeb&leaseid=bee3355a-4925-4435-bb4d-ceea52811aeb&offset=28313319&api-version=2017-08-01

Logs de auditoria

Aqui está um exemplo de entrada no log de auditoria formatado em JSON. Cada blob tem um objeto-raiz chamado registros que contém uma matriz de objetos do log

{
"records": 
  [        
    . . . .
    ,
    {
        "time": "2016-07-08T19:08:59.359Z",
        "resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/<data_lake_storage_gen1_account_name>",
        "category": "Audit",
        "operationName": "SeOpenStream",
        "resultType": "0",
        "resultSignature": "0",
        "correlationId": "381110fc03534e1cb99ec52376ceebdf;Append_BrEKAmg;25.66.9.145",
        "identity": "A9DAFFAF-FFEE-4BB5-A4A0-1B6CBBF24355",
        "properties": {"StreamName":"adl://<data_lake_storage_gen1_account_name>.azuredatalakestore.net/logs.csv"}
    }
    ,
    . . . .
  ]
}

Esquema do log de auditoria

Nome Tipo Descrição
time String O carimbo de data/hora (em UTC) do log
resourceId String A ID do recurso em que a operação ocorreu
category String A categoria do log. Por exemplo, Auditoria.
operationName String Nome da operação que está registrada. Por exemplo, getfilestatus.
resultType String O status da operação, por exemplo, 200.
resultSignature String Detalhes adicionais sobre a operação.
correlationId String A ID do log que pode ser usada para agrupar um conjunto de entradas de log relacionada
identidade Objeto A identidade que gerou o log
properties JSON Confira abaixo para obter os detalhes

Esquema de propriedades do log de auditoria

Nome Tipo Descrição
StreamName String O caminho em que a operação foi executada

Exemplos para processar os dados do log

Ao enviar logs do Azure Data Lake Storage Gen1 para os logs do Azure Monitor (confira Exibir ou analisar os dados coletados com a pesquisa de logs do Azure Monitor para obter detalhes sobre o uso dos logs do Azure Monitor ), a consulta a seguir retornará uma tabela contendo uma lista de nomes de exibição de usuário, o horário dos eventos e o número de eventos para o horário do evento junto com um gráfico visual. Podem ser facilmente modificados para mostrar o GUID de usuário ou outros atributos:

search *
| where ( Type == "AzureDiagnostics" )
| summarize count(TimeGenerated) by identity_s, TimeGenerated

O Azure Data Lake Storage Gen1 fornece um exemplo sobre como processar e analisar os dados de log. Você pode encontrar a política de exemplo em https://github.com/Azure/AzureDataLake/tree/master/Samples/AzureDiagnosticsSample.

Confira também