Acessando os logs de diagnóstico do Azure Data Lake Analytics
Importante
O Azure Data Lake Analytics desativado em 29 de fevereiro de 2024. Saiba mais nesse comunicado.
Para análise de dados, sua organização pode usar o Azure Synapse Analytics ou o Microsoft Fabric.
O registro em log de diagnóstico permite que você colete as trilhas de auditoria de acesso a dados. Esses logs fornecem informações como:
- Uma lista de usuários que acessaram os dados.
- Com que frequência os dados são acessados.
- Quantos dados são armazenados na conta.
Habilitar o registro em log
Entre no Portal do Azure.
Abra sua conta do Data Lake Analytics e selecione Configurações de diagnóstico na seção Monitoramento. Em seguida, selecione + Adicionar configuração de diagnóstico.
Em Configuração de diagnóstico, insira um nome para essa configuração de registro em log e, em seguida, selecione as opções de registro de log.
Você pode escolher armazenar/processar os dados de duas maneiras diferentes.
Selecione 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. Se escolher esta opção, você deverá fornecer uma conta de armazenamento do Azure para salvar os logs.
Selecione Stream para um hub de eventos para transmitir dados de log para um Hubs de Eventos do Azure. Use essa opção se tiver um pipeline de processamento downstream que esteja analisando logs de entrada em tempo real. Se você selecionar essa opção, deverá fornecer os detalhes do Hubs de Eventos do Azure que deseja usar.
Selecione Enviar ao workspace do Log Analytics para enviar os dados ao serviço Azure Monitor. Use essa opção para utilizar os logs do Azure Monitor ao coletar e analisar logs.
Selecione enviar para a solução de parceiro se você quiser usar nossa integração de parceiros. Para obter mais informações, você pode seguir este link.
Especifique se deseja obter os logs de auditoria, os logs de solicitação ou ambos. Um log de solicitação captura todas as solicitações da API. Um log de auditoria registra todas as operações disparadas pela solicitação de API.
Para Arquivar para uma conta de armazenamento, especifique o número de dias a reter os dados.
Selecione Salvar.
Observação
Selecione Arquivar em uma conta de armazenamento, Transmitir para um Hub de Eventos ou Enviar para o workspace do Log Analytics ou Enviar para a solução do parceiro antes de selecionar o botão Salvar.
Use a conta de Armazenamento do Azure que contém dados de log
Para exibir os contêineres de blob que contêm dados de registro em log, abra a conta de Armazenamento do Microsoft Azure usada para Data Lake Analytics para registro em log e, em seguida, clique em Contêineres.
- 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.
Nesses contêineres, os logs são armazenados na estrutura a seguir:
resourceId=/ SUBSCRIPTIONS/ <<SUBSCRIPTION_ID>>/ RESOURCEGROUPS/ <<RESOURCE_GRP_NAME>>/ PROVIDERS/ MICROSOFT.DATALAKEANALYTICS/ ACCOUNTS/ <DATA_LAKE_ANALYTICS_NAME>>/ y=####/ m=##/ d=##/ h=##/ m=00/ PT1H.json
Observação
A folha
##
no caminho contêm o ano, o mês, o dia e a hora em que o log foi criado. O Data Lake Analytics cria um arquivo a cada hora e, portanto, om=
sempre conterá um valor00
.Como um 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.DATALAKEANALYTICS/ACCOUNTS/mydatalakeanalytics/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.DATALAKEANALYTICS/ACCOUNTS/mydatalakeanalytics/y=2016/m=07/d=18/h=14/m=00/PT1H.json
Processar os dados de log
O Azure Data Lake Analytics fornece um exemplo sobre como processar e analisar os dados do log. Você pode encontrar a política de exemplo em https://github.com/Azure/AzureDataLake/tree/master/Samples/AzureDiagnosticsSample.
Estrutura de log
Os logs de auditoria e solicitação estão em um formato JSON estruturado.
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.DATALAKEANALYTICS/ACCOUNTS/<data_lake_analytics_account_name>",
"category": "Requests",
"operationName": "GetAggregatedJobHistory",
"resultType": "200",
"callerIpAddress": "::ffff:1.1.1.1",
"correlationId": "4a11c709-05f5-417c-a98d-6e81b3e29c58",
"identity": "1808bd5f-62af-45f4-89d8-03c5e81bac30",
"properties": {
"HttpMethod":"POST",
"Path":"/JobAggregatedHistory",
"RequestContentLength":122,
"ClientRequestId":"3b7adbd9-3519-4f28-a61c-bd89506163b8",
"StartTime":"2016-07-07T21:02:52.472Z",
"EndTime":"2016-07-07T21:02:53.456Z"
}
}
,
. . . .
]
}
Esquema do log de solicitação
Nome | Tipo | Descrição |
---|---|---|
time | String | O carimbo de data/hora (em UTC) do log |
resourceId | String | O identificador 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, GetAggregatedJobHistory. |
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 | O identificador do log. Esse valor pode ser usado para agrupar um conjunto de entradas de log relacionadas. |
identidade | Objeto | A identidade que gerou o log |
properties | JSON | Veja a próxima seção (Esquema de propriedades do log de solicitação) para obter 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 | O identificador que identifica essa solicitação com exclusividade |
StartTime | String | A hora em que o servidor recebeu a solicitação |
EndTime | String | A hora em que o servidor enviou uma resposta |
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-28T19:15:16.245Z",
"resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKEANALYTICS/ACCOUNTS/<data_lake_ANALYTICS_account_name>",
"category": "Audit",
"operationName": "JobSubmitted",
"identity": "user@somewhere.com",
"properties": {
"JobId":"D74B928F-5194-4E6C-971F-C27026C290E6",
"JobName": "New Job",
"JobRuntimeName": "default",
"SubmitTime": "7/28/2016 7:14:57 PM"
}
}
]
}
Esquema do log de auditoria
Nome | Tipo | Descrição |
---|---|---|
time | String | O carimbo de data/hora (em UTC) do log |
resourceId | String | O identificador 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, JobSubmitted. |
resultType | String | Um substatus para o status do trabalho (operationName). |
resultSignature | String | Detalhes adicionais sobre o trabalho status (operationName). |
identidade | String | O usuário que solicitou a operação. Por exemplo, susan@contoso.com. |
properties | JSON | Veja a próxima seção (Esquema de propriedades do log de auditoria) para obter detalhes |
Observação
resultType e resultSignature fornecem informações sobre o resultado de uma operação e conter apenas um valor caso uma operação tenha sido concluída. Por exemplo, eles contêm um valor somente quando operationName contém um valor JobStarted ou JobEnded.
Esquema de propriedades do log de auditoria
Nome | Tipo | Descrição |
---|---|---|
JobId | String | A ID atribuída ao trabalho |
JobName | String | O nome fornecido para o trabalho |
JobRunTime | String | O runtime usado para processar o trabalho |
SubmitTime | String | A hora (em UTC) em que o trabalho foi enviado |
StartTime | String | A hora em que o trabalho começou a ser executado após o envio (em UTC) |
EndTime | String | A hora em que o trabalho foi concluído |
Paralelismo | String | O número de unidades do Data Lake Analytics solicitadas para esse trabalho durante o envio |
Observação
SubmitTime, StartTime, EndTime e Parallelism fornecem informações sobre uma operação. Essas entradas contêm um valor apenas se operação tiver sido iniciada ou concluída. Por exemplo, SubmitTime somente contém um valor após operationName ter o valor JobSubmitted.