Enviar logs de recursos do Azure para espaços de trabalho do Log Analytics, Hubs de Eventos ou Armazenamento do Microsoft Azure
Os logs de recursos do Azure são logs de plataforma que fornecem insights sobre operações executadas em um recurso do Azure. O conteúdo dos logs de recursos é diferente para cada tipo de recurso. Os logs de recursos não são coletados por padrão. Para coletar logs de recursos, você deve habilitar e configurar as Configurações de diagnóstico ou usar regras de coleta de dados. Para obter mais informações sobre regras de coleta de dados, veja Regras de coleta de dados no Azure Monitor. Esse artigo descreve a configuração de diagnóstico necessária para que cada recurso do Azure envie seus logs de recursos para espaços de trabalho do Log Analytics, Hubs de Eventos ou Armazenamento do Microsoft Azure.
Enviar para o workspace do Log Analytics
Envie logs de recursos para um workspace do Log Analytics, para habilitar os recursos de Logs do Azure Monitor, nos quais é possível:
- Correlacionar dados do log de recursos com outros dados de monitoramento coletados pelo Azure Monitor.
- Consolidar entradas de log de várias assinaturas e locatários de recursos do Azure em um único local para análise conjunta.
- Use consultas de log para executar uma análise complexa e obter informações aprofundadas sobre dados de log.
- Use alertas de pesquisa de log com lógica de alerta complexa.
Crie uma configuração de diagnóstico para enviar os logs de recursos para um workspace do Log Analytics. Esses dados são armazenados em tabelas, conforme descrito na Estrutura de Logs do Azure Monitor. As tabelas usadas pelos logs de recursos dependem do tipo de recurso e do tipo de coleção que o recurso está usando. Existem dois tipos de modos de coleta para logs de recursos:
- Diagnóstico do Azure: todos os dados gravados estão na tabela AzureDiagnostics.
- Específico do recurso: os dados são gravados em tabelas individuais para cada categoria do recurso.
Específico de recursos
Para logs que usam o modo específico de recurso, tabelas individuais no espaço de trabalho selecionado são criadas para cada categoria de log selecionada na configuração de diagnóstico. Os logs específicos de recursos têm as seguintes vantagens sobre os logs de diagnóstico do Azure:
- Torna muito mais fácil trabalhar com os dados em consultas de log.
- Fornece uma melhor detectabilidade de esquemas e a respectiva estrutura.
- Melhora o desempenho entre a latência de ingestão e os tempos de consulta.
- Fornece a capacidade de conceder os direitos de controle de acesso baseados em função do Azure em uma tabela específica.
Para obter uma descrição de logs e tabelas específicos de recursos, veja Categorias de log de recursos com suporte para o Azure Monitor
Modo de diagnóstico do Azure
No modo de diagnóstico do Azure, todos os dados de qualquer configuração de diagnóstico são coletados na tabela AzureDiagnostics. Esse método legado é usado hoje por uma minoria de serviços do Azure. Como vários tipos de recursos enviam dados para a mesma tabela, o esquema dela é o superconjunto dos esquemas de todos os tipos de dados diferentes que estão sendo coletados. Para obter detalhes sobre a estrutura desta tabela e como ela funciona com esse número potencialmente grande de colunas, confira Referência de AzureDiagnostics.
A tabela AzureDiagnostics contém o resourceId do recurso que gerou o log, a categoria do log e a hora em que o log foi gerado, bem como propriedades específicas do recurso.
Selecione o modo de coleta
A maioria dos recursos do Azure grava dados no workspace no modo de diagnóstico do Azure ou específico do recurso, sem oferecer uma opção. Para obter mais informações, confira Esquemas comuns e específicos do serviço para os logs de recursos do Azure.
Todos os serviços do Azure eventualmente usarão o modo específico do recurso. Como parte dessa transição, alguns recursos permitem que você selecione um modo na configuração de diagnóstico. Especifique o modo específico do recurso para quaisquer novas configurações de diagnóstico porque esse modo facilita o gerenciamento dos dados. Ele também pode ajudar a evitar migrações complexas posteriormente.
Observação
Para obter um exemplo que define o modo de coleta usando um modelo do ARM, confira Exemplos de modelo do ARM para configurações de diagnóstico no Azure Monitor.
Você pode modificar uma configuração de diagnóstico existente para o modo específico de recursos. Nesse caso, os dados que já foram coletados permanecem na tabela AzureDiagnostics
até que sejam removidos de acordo com sua configuração de retenção para o workspace. Novos dados são coletados na tabela dedicada. Use o operador union para consultar dados em ambas as tabelas.
Continue a assistir ao blog de Atualizações do Azure para obter anúncios sobre os serviços do Azure que são compatíveis com o modo específico do recurso.
Hubs de Eventos do Azure
Envie os logs de recursos para um hub de eventos para enviá-los para fora do Azure. Por exemplo, os logs de recursos podem ser enviados para um SIEM de terceiros ou outras soluções de análise de log. Os logs de recursos de hubs de eventos são consumidos no formato JSON com um elemento records
que contém os registros em cada payload. O esquema depende do tipo de recurso, conforme descrito em Esquema comum e específico de serviço para logs de recursos do Azure.
Os dados de saída de exemplo a seguir são dos Hubs de Eventos do Azure para um log de recursos:
{
"records": [
{
"time": "2019-07-15T18:00:22.6235064Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330013509921957/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Error",
"operationName": "Microsoft.Logic/workflows/workflowActionCompleted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T17:58:55.048482Z",
"endTime": "2016-07-15T18:00:22.4109204Z",
"status": "Failed",
"code": "BadGateway",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "2222cccc-33dd-eeee-ff44-aaaaaa555555",
"workflowName": "JohnKemTestLA",
"runId": "08587330013509921957",
"location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "3333dddd-44ee-ffff-aa55-bbbbbbbb6666",
"clientTrackingId": "08587330013509921958"
}
}
},
{
"time": "2019-07-15T18:01:15.7532989Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330012106702630/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Information",
"operationName": "Microsoft.Logic/workflows/workflowActionStarted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T18:01:15.5828115Z",
"status": "Running",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"workflowName": "JohnKemTestLA",
"runId": "08587330012106702630",
"location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "ffff5555-aa66-7777-88bb-999999cccccc",
"clientTrackingId": "08587330012106702632"
}
}
}
]
}
Enviar ao Armazenamento do Azure
Envie os logs de recursos para o Armazenamento do Azure para mantê-los para arquivamento. Depois que você criar a configuração de diagnóstico, um contêiner de armazenamento será criado na conta de armazenamento assim que ocorrer um evento em uma das categorias de log habilitadas.
Observação
Uma alternativa à arquivamento é enviar o log de recursos para uma tabela no seu Workspace do Log Analytics com retenção de longo prazo e baixo custo.
Os blobs no contêiner usam esta convenção de nomenclatura:
insights-logs-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/RESOURCEGROUPS/{resource group name}/PROVIDERS/{resource provider name}/{resource type}/{resource name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
O blob de um grupo de segurança de rede pode ter um nome semelhante a este exemplo:
insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUP/TESTNSG/y=2016/m=08/d=22/h=18/m=00/PT1H.json
Cada blob PT1H.json contém um objeto JSON com eventos de arquivos de log recebidos durante a hora especificada na URL do blob. Durante a hora atual, os eventos são anexados ao arquivo PT1H.json conforme são recebidos, independentemente de quando foram gerados. O valor de minuto na URL, m=00
, é sempre 00
, pois os blobs são criados por hora.
No arquivo PT1H.json, cada evento é armazenado neste formato. Ele usa um esquema comum de nível superior, mas é exclusivo para cada serviço do Azure, conforme descrito em Esquema de logs de recursos.
Observação
Os logs são gravados em blobs com base na hora em que o log foi recebido, independentemente da hora em que ele foi gerado. Isso significa que um determinado blob pode conter dados de log que estão fora da hora especificada na URL do blob. Quando uma fonte de dados como o Application Insights dá suporte ao upload de telemetria obsoleta, um blob pode conter dados das 48 horas anteriores.
No início de uma nova hora, é possível que os logs existentes ainda estejam sendo gravados no blob da hora anterior enquanto novos logs são gravados no blob da nova hora.
{"time": "2016-07-01T00:00:37.2040000Z","systemId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/TESTNSG","operationName": "NetworkSecurityGroupCounters","properties": {"vnetResourceGuid": "{12345678-9012-3456-7890-123456789012}","subnetPrefix": "10.3.0.0/24","macAddress": "000123456789","ruleName": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/default-allow-rdp","direction": "In","type": "allow","matchedConnections": 1988}}
Integrações de parceiros do Azure Monitor
Os logs de recursos também podem ser enviados a soluções de parceiro totalmente integradas ao Azure. Para ver uma lista dessas soluções e os detalhes sobre como configurá-las, confira Integrações de parceiros do Azure Monitor.