Partilhar via


Enviar dados do log de atividades do Azure Monitor

O log de atividades do Azure Monitor é um log de plataforma que fornece informações sobre eventos no nível de assinatura. O log de atividades inclui informações como quando um recurso é modificado ou quando ocorre um erro de implantação. Você pode exibir o log de atividades no portal do Azure ou recuperar entradas com o PowerShell e a CLI do Azure.

Este artigo apresenta informações sobre como ver o registo de atividades e enviá-lo para diferentes destinos.

Observação

  • As entradas no registo de atividades são geradas pelo sistema e não podem ser alteradas nem eliminadas.
  • As entradas no log de atividades estão representando alterações no plano de controle como uma reinicialização de máquina virtual, todas as entradas não relacionadas devem ser gravadas nos Logs de Recursos do Azure
  • As entradas no registo de atividades são normalmente o resultado de alterações (operações de criação, atualização ou eliminação) ou de uma ação que foi iniciada. As operações focadas na leitura de detalhes de um recurso normalmente não são capturadas.

Sugestão

Se você foi direcionado para este artigo a partir de um erro de operação de implantação, consulte Solucionar erros comuns de implantação do Azure.

Exportar logs de atividades

  1. Vá para o Azure Monitor>log de atividades e selecione Exportar logs de atividades.

    Captura de ecrã que mostra como aceder aos registos de atividades.

    Observação

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

  2. Adicione a configuração de diagnóstico para enviar logs de atividades para um ou mais destes locais:

    Captura de tela que mostra a adição de uma configuração de diagnóstico.

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

    Sugestão

    Envie dados de log de atividades para um espaço de trabalho do Log Analytics para obter os seguintes benefícios:

    • O envio de logs para um espaço de trabalho do Log Analytics é gratuito durante o período de retenção padrão.
    • Envie logs para um espaço de trabalho do Log Analytics para uma retenção mais longa, de até 12 anos.
    • Os logs exportados para um espaço de trabalho do Log Analytics podem ser mostrados no Power BI
    • As informações são fornecidas para logs de atividades exportados para o Log Analytics.

Enviar para um espaço de trabalho do Log Analytics

Envie o log de atividades para um espaço de trabalho do Log Analytics para habilitar o recurso Azure Monitor Logs , onde você:

  • Correlacione os dados do log de atividades com outros dados de monitoramento coletados pelo Azure Monitor.
  • Consolide entradas de log de várias 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 entradas de log de atividades.
  • Use alertas de pesquisa de log com entradas de atividade para uma lógica de alerta mais complexa.
  • Armazene as entradas do log de atividades por mais tempo do que o período de retenção do log de atividades.
  • Não incorra em nenhuma ingestão de dados ou taxas de retenção para dados de log de atividades armazenados em um espaço de trabalho do Log Analytics.
  • O período de retenção padrão no Log Analytics é de 90 dias.

Os dados do log de atividades em um espaço de trabalho do Log Analytics são armazenados em uma tabela chamada AzureActivity que você pode recuperar com uma consulta de log no Log Analytics. A estrutura desta 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 de log de atividades para cada categoria, use a seguinte consulta:

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 em campos de AzureActivity possam ter invólucros diferentes de valores equivalentes. Tenha cuidado ao consultar dados no AzureActivity 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 um invólucro uniforme antes de qualquer comparação. Por exemplo, use a função tolower() em um campo para forçá-lo a ser sempre minúsculo ou o operador =~ ao executar uma comparação de cadeia de caracteres.

Enviar para o Hubs de Eventos do Azure

Envie o log de atividades para os 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 log. Os eventos do log de atividades dos 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 da categoria e é descrito no esquema de eventos do log de atividades do Azure.

Os seguintes dados de saída de exemplo 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": "aaaa0000-bb11-2222-33cc-444444dddddd",
            "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": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
                    "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": "00001111-aaaa-2222-bbbb-3333cccc4444",
                    "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 para o Armazenamento do Azure

Envie o log de atividades para uma conta de Armazenamento do Azure se quiser reter seus dados de log por mais de 90 dias para auditoria, análise estática ou backup. Se for necessário reter seus eventos por 90 dias ou menos, não será necessário configurar o arquivamento em uma conta de armazenamento. Os eventos do log de atividades são mantidos na plataforma Azure por 90 dias.

Quando você envia o log de atividades para o Azure, um contêiner de armazenamento é criado na conta de armazenamento assim que ocorre um evento. Os blobs no contêiner usam a seguinte 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-activity-logs/resourceId=/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 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 porque os blobs são criados por hora.

Cada evento é armazenado no arquivo PT1H.json com o seguinte formato. Esse formato usa um esquema de nível superior comum, mas é exclusivo para cada categoria, conforme descrito no esquema do log de atividades.

{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee", "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"}}}

Exportar para CSV

Selecione Baixar como CSV para exportar o log de atividades para um arquivo CSV usando o portal do Azure.

Captura de tela que mostra a opção de exportar para CSV.

Importante

A exportação pode levar um tempo excessivo se você tiver um grande número de entradas de log. Para melhorar o desempenho, reduza o intervalo de tempo da exportação. No portal do Azure, isso é definido com a configuração Timespan .

Você também pode exportar o log de atividades para um arquivo CSV usando o PowerShell ou a CLI do Azure, como nos exemplos a seguir.

az monitor activity-log list --start-time "2024-03-01T00:00:00Z" --end-time "2024-03-15T23:59:59Z" --max-items 1000 > activitylog.json
Get-AzActivityLog -StartTime 2021-12-01T10:30 -EndTime 2022-01-14T11:30 | Export-csv operations_logs.csv

O exemplo de script PowerShell a seguir exporta o log de atividades para arquivos CSV em intervalos de uma hora, cada um sendo salvo em um arquivo separado.

# Parameters
$subscriptionId = "Subscription ID here"  # Replace with your subscription ID
$startTime = [datetime]"2025-05-08T00:00:00" # Adjust as needed
$endTime = [datetime]"2025-05-08T12:00:00"  # Adjust as needed
$outputFolder = "\Logs"    # Change path as needed
 
# Ensure output folder exists
if (-not (Test-Path $outputFolder)) {
    New-Item -Path $outputFolder -ItemType Directory
}
 
# Set subscription context
Set-AzContext -SubscriptionId $subscriptionId
 
# Loop through 1-hour intervals
$currentStart = $startTime
while ($currentStart -lt $endTime) {
    $currentEnd = $currentStart.AddHours(1)
    $timestamp = $currentStart.ToString("yyyyMMdd-HHmm")
    $csvFile = Join-Path $outputFolder "ActivityLog_$timestamp.csv"
 
    Write-Host "Fetching logs from $currentStart to $currentEnd..."
    Get-AzActivityLog -StartTime $currentStart -EndTime $currentEnd |
        Export-Csv -Path $csvFile -NoTypeInformation
 
    $currentStart = $currentEnd
}
 
Write-Host "Export completed. Files saved to $outputFolder."

Outros métodos para recuperar eventos de log de atividades

Você também pode acessar eventos de log de atividades usando os seguintes métodos:

Métodos de coleta herdados

Observação

A solução Azure Activity Log foi usada para encaminhar logs de atividades para o Log Analytics. Esta solução será desativada no dia 15 de setembro de 2026 e será automaticamente convertida para as configurações de diagnóstico.

Se você estiver coletando logs de atividades usando o método de coleta herdado, recomendamos exportar logs de atividades para o espaço de trabalho do Log Analytics e desabilitar a coleção herdada usando a API Data Sources - Delete da seguinte maneira:

  1. Liste todas as fontes de dados conectadas ao espaço de trabalho usando a API Fontes de Dados - Listar por Espaço de Trabalho e filtre os logs de atividades definindo kind eq 'AzureActivityLog'.

    Captura de tela mostrando a configuração da API Data Sources - List By Workspace.

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

    Captura de tela mostrando as informações de conexão que você precisa copiar da saída da API Data Sources - List By Workspace.

  3. Use a API Data Sources - Delete para parar de recolher logs de atividade para o recurso específico.

    Captura de tela da configuração da API Data Sources - Delete.

Gerenciando perfis de log herdados (desativação)

Observação

  • Os Perfis de Registos foram usados para encaminhar logs de atividades para contas de armazenamento e Hubs de Eventos. Este método será desativado no dia 15 de setembro de 2026.
  • Se você estiver usando esse método, faça a transição para Configurações de diagnóstico antes de 15 de setembro de 2025, quando deixaremos de permitir novas criações de perfis de log.

Os perfis de log são o método herdado para enviar o log de atividades para hubs de armazenamento ou eventos. Se você estiver usando esse método, faça a transição para as Configurações de Diagnóstico, que fornecem melhor funcionalidade e consistência com os logs de recursos.

Se já existir um perfil de log, primeiro você deve remover o perfil de log existente e, em seguida, criar um novo.

  1. Use Get-AzLogProfile para identificar se existe um perfil de log. Se existir um perfil de log, anote a Name propriedade.

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

    # 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 do seu perfil de registo.
    IdDeContaDeArmazenamento Não ID do recurso da conta de armazenamento onde o log de atividades deve ser salvo.
    serviceBusRuleId Não ID da Regra do Barramento de Serviço para o namespace do Barramento de Serviço onde você deseja que os hubs de eventos sejam criados. Esta cadeia de caracteres tem o formato {service bus resource ID}/authorizationrules/{key name}.
    Localização Sim Lista separada por vírgulas de regiões para as quais você deseja coletar eventos de log de atividades.
    RetentionInDays Sim Número de dias durante os quais os eventos devem ser retidos na conta de armazenamento, de 1 a 365. Um valor zero armazena os logs indefinidamente.
    Categoria Não Lista separada por vírgulas das categorias de eventos a serem coletadas. Os valores possíveis são Write, Delete e Action.

Exemplo de script

Este script PowerShell de exemplo cria um perfil de log que grava o log de atividades em uma conta de armazenamento e em um 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>"
$storageAccountName = "<Storage Account name>"

# 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 à estrutura de dados

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

As colunas na tabela a seguir foram preteridas no esquema atualizado. Eles ainda existem no AzureActivity, mas não têm dados. As substituições dessas colunas não são novas, mas contêm os mesmos dados que a coluna preterida. Eles estão em um formato diferente, portanto, talvez seja necessário modificar as consultas de log que os usam.

Log de atividades JSON Nome da coluna antiga do Log Analytics
(preterido)
Novo nome da coluna do Log Analytics Observações
categoria Categoria ValorCategoria
Situação

Os valores são success, start, accept, failure
Status da atividade

Valores iguais a JSON
Valor de Estado de Atividade

Os valores mudam para succeeded, started, accepted, failed
Os valores válidos mudam conforme mostrado.
subEstado Substatus da Atividade Valor do Substatus da Atividade
nomeDaOperação Nome da operação NomeDaOperaçãoValor A API REST localiza o valor do nome da operação. A interface do usuário do Log Analytics sempre mostra inglês.
nomeDoFornecedorDeRecursos Fornecedor de Recursos ValorDoProvedorDeRecursos

Importante

Em alguns casos, os valores nessas colunas podem ser todos maiúsculos. Caso tenha uma consulta que inclua estas colunas, utilize o operador =~ para efetuar uma comparação insensível a maiúsculas e minúsculas.

As seguintes colunas foram adicionadas ao AzureActivity esquema atualizado:

  • Authorization_d
  • Claims_d
  • Properties_d

Próximos passos

Saiba mais sobre: