Enviar dados de log de recursos do Azure

Os logs de recursos do Azure são logs de plataforma que fornecem informações sobre operações que foram executadas em um recurso do Azure. O conteúdo dos logs de recursos varia de acordo com o serviço do Azure e o tipo de recurso. Os logs de recursos não são coletados por padrão. Este artigo descreve a configuração de diagnóstico necessária para cada recurso do Azure enviar seus logs de recursos para destinos diferentes.

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 coleção que o recurso está usando:

  • 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

Nesse modo, tabelas individuais no espaço de trabalho selecionado são criadas para cada categoria selecionada na configuração de diagnóstico. Recomendamos este método porque:

  • 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.

Todos os serviços do Azure acabarão migrando para o modo específico do recurso.

O exemplo abaixo cria três tabelas:

  • Tabela Service1AuditLogs

    Fornecedor de recursos Categoria A B C
    Serviço 1 AuditLogs x1 y1 z1
    Serviço 1 AuditLogs x5 y5 z5
    ...
  • Tabela Service1ErrorLogs

    Fornecedor de recursos Categoria D E F
    Serviço 1 Registos de Erros q1 w1 e1
    Serviço 1 Registos de Erros q2 w2 e2
    ...
  • Tabela Service2AuditLogs

    Fornecedor de recursos Categoria G H I
    Serviço 2 AuditLogs J1 k1 l1
    Serviço 2 AuditLogs J3 k3 l3
    ...

Modo de diagnóstico do Azure

Nesse modo, todos os dados de qualquer configuração de diagnóstico são coletados na tabela AzureDiagnostics . Esse método herdado é usado atualmente pela maioria dos 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.

Considere um exemplo em que as configurações de diagnóstico são coletadas no mesmo espaço de trabalho para os seguintes tipos de dados:

  • Os logs de auditoria do serviço 1 têm um esquema que consiste nas colunas A, B e C
  • Os logs de erro do serviço 1 têm um esquema que consiste nas colunas D, E e F
  • Os logs de auditoria do serviço 2 têm um esquema que consiste nas colunas G, H e I

A AzureDiagnostics tabela se parece com este exemplo:

ResourceProvider Categoria A B C D E F G H I
Microsoft.Service1 AuditLogs x1 y1 z1
Microsoft.Service1 Registos de Erros q1 w1 e1
Microsoft.Service2 AuditLogs J1 k1 l1
Microsoft.Service1 Registos de Erros q2 w2 e2
Microsoft.Service2 AuditLogs J3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5
...

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.

Screenshot that shows the Diagnostics settings mode selector.

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/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/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": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330013509921957",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "29a9862f-969b-4c70-90c4-dfbdc814e413",
                    "clientTrackingId": "08587330013509921958"
                }
            }
        },
        {
            "time": "2019-07-15T18:01:15.7532989Z",
            "workflowId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/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": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330012106702630",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "042fb72c-7bd4-439e-89eb-3cf4409d429e",
                    "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 estratégia alternativa para arquivamento é enviar o log de recursos para um espaço de trabalho do Log Analytics com uma política de arquivamento.

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/00000000-0000-0000-0000-000000000000/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": "46cdbb41-cb9c-4f3d-a5b4-1d458d827ff1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/s1id1234-5679-0123-4567-890123456789/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/ s1id1234-5679-0123-4567-890123456789/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