Enviar dados do log de atividades do Azure Monitor

O log de atividades do Azure Monitor é um log de plataforma que fornece insights sobre eventos no nível da assinatura. O log de atividades inclui informações sobre a alteração de um recurso ou a inicialização de uma máquina virtual. Veja o log de atividades no portal do Azure ou recupere as entradas com o PowerShell e a CLI do Azure. Este artigo fornece informações sobre como exibir o log de atividades e enviá-lo a diferentes destinos.

Para mais funcionalidades, crie uma configuração de diagnóstico para enviar o log de atividades para um ou mais desses locais pelos seguintes motivos:

Para obter detalhes sobre a criação de uma configuração de diagnóstico, consulte Criar configurações de diagnóstico para enviar logs e métricas de plataforma a diferentes destinos.

Observação

  • As entradas no log de atividades são geradas pelo sistema e não podem ser alteradas ou excluídas.
  • As entradas no log de atividades representam alterações de plano de controle, como a reinicialização de uma máquina virtual. Todas as entradas não relacionadas devem ser gravadas nos Logs de Recursos do Azure
  • As entradas no Log de Atividades normalmente resultam de alterações (operações de criação, atualização ou exclusão) ou do início de uma ação. As operações focadas na leitura de detalhes de um recurso normalmente não são capturadas.

Enviar para o workspace do Log Analytics

Envie o log de atividades para um workspace do Log Analytics, para habilitar o recurso de Logs do Azure Monitor, onde é possível:

  • Correlacionar dados do log de atividades com outros dados de monitoramento coletados pelo Azure Monitor.
  • Consolidar entradas de log de várias assinaturas e locatários do Azure em um único local para análise conjunta.
  • Usar consultas de log para executar uma análise complexa e obter informações aprofundadas sobre entradas do log de atividades.
  • Use alertas de pesquisa de log com entradas de atividade para uma lógica de alerta mais complexa.
  • Armazenar entradas do log de atividades por mais tempo do que o período de retenção do Log de Atividades.
  • Não há encargos de retenção nem de ingestão de dados para dados de Log de Atividades armazenados em um workspace do Log Analytics.
  • O período de retenção padrão do Log Analytics é de 90 dias

Selecione Exportar logs de atividades para enviar o log de atividades para um workspace do Log Analytics.

Screenshot that shows exporting activity logs.

Você pode enviar o log de atividades de qualquer assinatura única para até cinco espaços de trabalho.

Os dados do log de atividades em um espaço de trabalho do Log Analytics são armazenados em uma tabela chamada AzureActivity que pode ser recuperada com uma consulta de log no Log Analytics. A estrutura dessa tabela varia dependendo da categoria da entrada de log. Para obter uma descrição das propriedades da tabela, consulte a Referência de dados do Azure Monitor.

Por exemplo, para exibir uma contagem de registros do log de atividades para cada categoria, use a consulta a seguir:

AzureActivity
| summarize count() by CategoryValue

Para recuperar todos os registros na categoria administrativa, use a seguinte consulta:

AzureActivity
| where CategoryValue == "Administrative"

Importante

Em alguns cenários, é possível que os valores nos campos do AzureActivity tenham maiúsculas e minúsculas diferentes de valores equivalentes. Ao consultar dados no AzureActivity, tome cuidado para usar operadores que não diferenciam maiúsculas de minúsculas para comparações de cadeia de caracteres ou use uma função escalar para forçar um campo a usar maiúsculas e minúsculas iguais antes de qualquer comparação. Por exemplo, use a função tolower() em um campo para forçá-la a ser sempre minúscula ou o operador =~ ao realizar uma comparação de cadeia de caracteres.

Hubs de Eventos do Azure

Envie o log de atividades aos Hubs de Eventos do Azure para enviar entradas fora do Azure, por exemplo, para um SIEM de terceiros ou outras soluções de análise de logs. Os eventos do log de atividades de hubs de eventos são consumidos no formato JSON com um elemento records que contém os registros em cada carga. O esquema depende da categoria e é descrito em Esquema de eventos do log de atividades do Azure.

Os exemplos de dados de saída a seguir são de hubs de eventos para um log de atividades:

{
    "records": [
        {
            "time": "2019-01-21T22:14:26.9792776Z",
            "resourceId": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
            "operationName": "microsoft.support/supporttickets/write",
            "category": "Write",
            "resultType": "Success",
            "resultSignature": "Succeeded.Created",
            "durationMs": 2826,
            "callerIpAddress": "111.111.111.11",
            "correlationId": "c776f9f4-36e5-4e0e-809b-c9b3c3fb62a8",
            "identity": {
                "authorization": {
                    "scope": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
                    "action": "microsoft.support/supporttickets/write",
                    "evidence": {
                        "role": "Subscription Admin"
                    }
                },
                "claims": {
                    "aud": "https://management.core.windows.net/",
                    "iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
                    "iat": "1421876371",
                    "nbf": "1421876371",
                    "exp": "1421880271",
                    "ver": "1.0",
                    "http://schemas.microsoft.com/identity/claims/tenantid": "00000000-0000-0000-0000-000000000000",
                    "http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
                    "http://schemas.microsoft.com/identity/claims/objectidentifier": "2468adf0-8211-44e3-95xq-85137af64708",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
                    "puid": "20030000801A118C",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "9vckmEGF7zDKk1YzIY8k0t1_EAPaXoeHyPRn6f413zM",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "John",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "Smith",
                    "name": "John Smith",
                    "groups": "cacfe77c-e058-4712-83qw-f9b08849fd60,7f71d11d-4c41-4b23-99d2-d32ce7aa621c,31522864-0578-4ea0-9gdc-e66cc564d18c",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
                    "appid": "c44b4083-3bq0-49c1-b47d-974e53cbdf3c",
                    "appidacr": "2",
                    "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
                    "http://schemas.microsoft.com/claims/authnclassreference": "1"
                }
            },
            "level": "Information",
            "location": "global",
            "properties": {
                "statusCode": "Created",
                "serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
            }
        }
    ]
}

Enviar ao Armazenamento do Azure

Envie o log de atividades para uma conta de Armazenamento do Microsoft Azure se desejar manter seus dados de log por mais de 90 dias para auditoria, análise estática ou backup. Caso seja necessário reter os eventos por 90 dias ou menos, não será preciso configurar o arquivamento para uma conta de armazenamento. Os eventos do log de atividades são retidos na plataforma do Azure por 90 dias.

Quando você envia o log de atividades para o Azure, é criado um contêiner de armazenamento na conta de armazenamento assim que um evento ocorre. Os blobs no contêiner usam esta convenção de nomenclatura:

insights-activity-logs/resourceId=/SUBSCRIPTIONS/{subscription ID}/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

Por exemplo, um blob específico pode ter um nome semelhante a:

insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/y=2020/m=06/d=08/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 acrescentados 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.

Cada evento é armazenado no arquivo PT1H.json neste formato. Esse formato usa um esquema de nível superior comum, mas, em outros casos, é exclusivo de cada categoria, conforme descrito em Esquema do log de atividades.

{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "0f0cb6b4-804b-4129-b893-70aeeb63997e", "operationName": "Microsoft.Resourcehealth/healthevent/Updated/action", "level": "Information", "resultType": "Updated", "category": "ResourceHealth", "properties": {"eventCategory":"ResourceHealth","eventProperties":{"title":"This virtual machine is starting as requested by an authorized user or process. It will be online shortly.","details":"VirtualMachineStartInitiatedByControlPlane","currentHealthStatus":"Unknown","previousHealthStatus":"Unknown","type":"Downtime","cause":"UserInitiated"}}}

Outros métodos para recuperar eventos do log de atividades

Você também pode acessar eventos do log de atividades usando os métodos a seguir:

Métodos de coleta de dados

Observação

  • A solução de logs de atividades do Azure foi usada para encaminhar logs de atividades para o Azure Log Analytics. Essa solução está sendo desativada no dia 15 de setembro de 2026 e será convertida automaticamente em Configurações de diagnóstico.

Se você estiver coletando logs de atividades usando o método de coleta herdado, recomendamos exportar os logs de atividades para o workspace do Log Analytics e desabilitar a coleta herdada usando Fontes de Dados – Excluir API da seguinte maneira:

  1. Listar todas as fontes de dados conectadas ao workspace usando Fontes de Dados – Listar por API do Workspace e filtrar os logs de atividades definindo kind eq 'AzureActivityLog'.

    Screenshot showing the configuration of the Data Sources - List By Workspace API.

  2. Copie o nome da conexão que você deseja desabilitar da resposta da API.

    Screenshot showing the connection information you need to copy from the output of the Data Sources - List By Workspace API.

  3. Use as Fontes de Dados – Excluir API para interromper a coleta de logs de atividades para o recurso específico.

    Screenshot of the configuration of the Data Sources - Delete API.

Gerenciamento de perfis de log herdados

Perfis de log são o método herdado para enviar o log de atividades ao armazenamento ou a hubs de eventos. Se você estiver usando esses métodos, considere a transição para configurações de diagnóstico que ofereçam melhor funcionalidade e consistência com os logs de recursos.

Se já houver um perfil de log, você precisará removê-lo e depois criar outro.

  1. Use Get-AzLogProfile para identificar se já existe um perfil de log. Se houver um perfil de log, localize a propriedade Name.

  2. Use Remove-AzLogProfile para remover o perfil de log usando o valor da propriedade Name.

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. Use Add-AzLogProfile para criar um novo perfil de log:

    Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
    
    Propriedade Obrigatório Descrição
    Nome Sim Nome de seu perfil de log.
    StorageAccountId No ID de recursos da conta de armazenamento na qual o log de atividades deve ser salvo.
    serviceBusRuleId No ID da Regra de Barramento de Serviço para o namespace do Barramento de Serviço no qual você gostaria que os hubs de eventos fossem criados. Essa cadeia de caracteres tem o formato {service bus resource ID}/authorizationrules/{key name}.
    Location Sim Lista separada por vírgulas de regiões para as quais você deseja coletar eventos do log de atividades.
    RetentionInDays Yes Número de dias pelos quais os eventos devem ser mantidos na conta de armazenamento, entre 1 e 365. Um valor de zero armazena os logs indefinidamente.
    Categoria No Lista separada por vírgulas de categorias de eventos a serem coletados. Os valores possíveis são Gravação, Exclusão e Ação.

Script de exemplo

Este exemplo de script do PowerShell cria um perfil de log que grava o log de atividades em uma conta de armazenamento e no hub de eventos.

# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"

# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"

# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"

Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId  $storageAccountId -ServiceBusRuleId $serviceBusRuleId

Alterações da estrutura dos dados

A experiência de exportação de logs de atividades envia os mesmos dados que o método herdado usado para enviar o log de atividades, com algumas alterações na estrutura da tabela AzureActivity.

As colunas na tabela a seguir foram substituídas no esquema atualizado. Elas ainda existem no AzureActivity, mas não têm dados. As substituições dessas colunas não são novas, mas elas contêm os mesmos dados da coluna substituída. Elas estão em outro formato, portanto, talvez seja necessário modificar as consultas de log que as utilizam.

JSON do Log de atividades Nome da coluna do Log Analytics
(preterido mais antigo)
Novo nome da coluna do Log Analytics Observações
category Categoria CategoryValue
status

Os valores são êxito, início, aceitação, falha
ActivityStatus

Valores iguais aos JSON
ActivityStatusValue

Os valores são alterados para bem-sucedido, iniciado, aceito, com falha
Os valores válidos mudam conforme mostrado.
subStatus ActivitySubstatus ActivitySubstatusValue
operationName OperationName OperationNameValue A API REST localiza o valor do nome da operação. A interface do usuário do Log Analytics sempre aparece em inglês.
resourceProviderName ResourceProvider ResourceProviderValue

Importante

Em alguns casos, os valores nessas colunas podem estar em letras maiúsculas. Se você tiver uma consulta que inclua essas colunas, use o operador =~ para fazer uma comparação que não diferencia maiúsculas de minúsculas.

A seguinte coluna foi adicionada ao AzureActivity no esquema atualizado:

  • Authorization_d
  • Claims_d
  • Properties_d

Próximas etapas

Saiba mais sobre: