Partilhar via


Enviar logs de recursos do Azure para espaços de trabalho do Log Analytics, Hubs de Eventos ou Armazenamento do Azure

Os logs de recursos do Azure são logs de plataforma que fornecem informações 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 Configurações de Diagnóstico ou usar regras de coleta de dados. Para obter mais informações sobre regras de coleta de dados, consulte Regras de coleta de dados no Azure Monitor. Este artigo descreve a configuração de diagnóstico necessária para cada recurso do Azure enviar seus logs de recursos para espaços de trabalho do Log Analytics, Hubs de Eventos ou Armazenamento do Azure.

Enviar para a área de trabalho do Log Analytics

Envie logs de recursos para um espaço de trabalho do Log Analytics para habilitar os recursos do Azure Monitor Logs, onde você pode:

  • Correlacione dados de log de recursos com outros dados de monitoramento coletados pelo Azure Monitor.
  • Consolide entradas de log de vários recursos, assinaturas e locatários do Azure em um único local para análise em conjunto.
  • Use consultas de log para executar análises complexas e obter insights profundos sobre os dados de log.
  • Use alertas de pesquisa de log com lógica de alerta complexa.

Crie uma configuração de diagnóstico para enviar logs de recursos para um espaço de trabalho do Log Analytics. Esses dados são armazenados em tabelas conforme descrito em Estrutura dos 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. Há dois tipos de modos de coleta para logs de recursos:

  • Diagnóstico do Azure: Todos os dados são gravados na tabela AzureDiagnostics.
  • Específico do recurso: os dados são gravados em tabelas individuais para cada categoria do recurso.

Recursos específicos

Para logs usando 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 em relação aos logs de diagnóstico do Azure:

  • Facilita o trabalho com os dados em consultas de log.
  • Fornece melhor capacidade de descoberta de esquemas e sua estrutura.
  • Melhora o desempenho na latência de ingestão e nos tempos de consulta.
  • Fornece a capacidade de conceder 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, consulte 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 herdado é usado atualmente por uma minoria de serviços do Azure. Como vários tipos de recursos enviam dados para a mesma tabela, seu esquema é o superconjunto dos esquemas de todos os diferentes tipos de dados 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, consulte Referência do 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.

Uma captura de tela mostrando a tabela AzureDiagnostics em um espaço de trabalho do Log Analytics.

Selecione o modo de recolha

A maioria dos recursos do Azure grava dados no espaço de trabalho no diagnóstico do Azure ou no modo específico do recurso sem dar a você uma escolha. Para obter mais informações, consulte Esquemas comuns e específicos do serviço para logs de recursos do Azure.

Todos os serviços do Azure eventualmente usarão o modo específico de 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, pois esse modo facilita o gerenciamento dos dados. Também pode ajudá-lo a evitar migrações complexas mais tarde.

Captura de tela que mostra o seletor de modo Configurações de diagnóstico.

Nota

Para obter um exemplo que define o modo de coleta usando um modelo do Azure Resource Manager, consulte Exemplos de modelo do Resource Manager para configurações de diagnóstico no Azure Monitor.

Você pode modificar uma configuração de diagnóstico existente para o modo específico do recurso. Nesse caso, os AzureDiagnostics dados que já foram coletados permanecem na tabela até que sejam removidos de acordo com sua configuração de retenção para o espaço de trabalho. Novos dados são coletados na tabela dedicada. Use o operador union para consultar dados em ambas as tabelas.

Continue a assistir ao blog Atualizações do Azure para ver anúncios sobre os serviços do Azure que oferecem suporte ao modo específico de recursos.

Enviar para o Hubs de Eventos do Azure

Envie logs de recursos para um hub de eventos para enviá-los 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 records elemento que contém os registros em cada carga útil. O esquema depende do tipo de recurso, conforme descrito em Esquema comum e específico do serviço para logs de recursos do Azure.

Os seguintes dados de saída de exemplo 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 para o Armazenamento do Azure

Envie logs de recursos para o Armazenamento do Azure para retê-los para arquivamento. Depois de criar a configuração de diagnóstico, um contêiner de armazenamento é criado na conta de armazenamento assim que ocorre um evento em uma das categorias de log habilitadas.

Nota

Uma alternativa ao arquivamento é enviar o log de recursos para uma tabela no espaço de trabalho do Log Analytics com retenção de baixo custo e longo prazo.

Os blobs dentro do contêiner usam a seguinte 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 que foram recebidos durante a hora especificada na URL do blob. Durante a hora presente, os eventos são anexados ao arquivo PT1H.json à medida que são recebidos, independentemente de quando foram gerados. O valor de minuto na URL m=00 é sempre 00 como blobs são criados por hora.

Dentro do arquivo PT1H.json, cada evento é armazenado no seguinte formato. Ele usa um esquema de nível superior comum, mas é exclusivo para cada serviço do Azure, conforme descrito em Esquema de logs de recursos.

Nota

Os logs são gravados em blobs com base na hora em que o log foi recebido, independentemente da hora em que 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, oferece suporte ao carregamento 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 os 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": "{aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e}","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 para soluções de parceiros totalmente integradas ao Azure. Para obter uma lista dessas soluções e detalhes sobre como configurá-las, consulte Integrações de parceiros do Azure Monitor.

Próximos passos