Log attività di Azure

Il log attività è un log della piattaforma presente in Azure che fornisce informazioni sugli eventi a livello di sottoscrizione. Tali dati includono le informazioni relative, ad esempio, alla modifica di una risorsa o all'avvio di una macchina virtuale. È possibile visualizzare il log attività nel portale di Azure o recuperarne le voci con PowerShell e l'interfaccia della riga di comando. Questo articolo fornisce informazioni dettagliate sulla visualizzazione del log attività e sull'invio a destinazioni diverse.

Per altre funzionalità, è necessario creare un'impostazione di diagnostica per inviare il log attività a uno o più di questi percorsi per i motivi seguenti:

  • per Monitoraggio di Azure log per query e avvisi più complessi e conservazione più lunga (fino a 2 anni)
  • per Hub eventi di Azure inoltrare all'esterno di Azure
  • per Archiviazione di Azure'archiviazione più economica e a lungo termine

Per informazioni dettagliate sulla creazione di un'impostazione di diagnostica, vedere Creare impostazioni di diagnostica per inviare log e metriche della piattaforma a destinazioni diverse.

Nota

Le voci nel log attività sono generate dal sistema e non possono essere modificate o eliminate.

Periodo di fidelizzazione

Gli eventi del log attività vengono conservati in Azure per 90 giorni e quindi eliminati. Durante questo periodo non vengono addebitati costi per le voci, indipendentemente dal volume. Per funzionalità aggiuntive, ad esempio una conservazione più lunga, è necessario creare un'impostazione di diagnostica e instradare gli interi in un'altra posizione in base alle esigenze. Vedere i criteri nella sezione precedente di questo articolo.

Visualizzare il log attività

È possibile accedere al log attività dalla maggior parte dei menu nel portale di Azure. Il menu da cui viene aperto ne determina il filtro iniziale. Se viene aperto dal menu Monitoraggio, l'unico filtro sarà nella sottoscrizione. Se la si apre dal menu di una risorsa, il filtro verrà impostato su tale risorsa. È sempre possibile modificare il filtro per visualizzare tutte le altre voci. Fare clic su Aggiungi filtro per aggiungere altre proprietà al filtro.

Visualizzare il log attività

Per una descrizione delle categorie di log attività, vedere Schema degli eventi del log attività di Azure.

Scaricare il log attività

Selezionare Scarica come CSV per scaricare gli eventi nella visualizzazione corrente.

Scaricare il log attività

Visualizzare la cronologia modifiche

Per alcuni eventi, è possibile visualizzare la cronologia delle modifiche, che mostra le modifiche che si sono verificate durante l'ora dell'evento. Selezionare un evento nel log attività di cui si desidera visualizzare maggiori dettagli. Selezionare la scheda Cronologia modifiche (anteprima) per visualizzare eventuali modifiche associate a tale evento.

Elenco di cronologia modifiche per un evento

Se sono presenti modifiche associate all'evento, viene visualizzato un elenco di modifiche che è possibile selezionare. Viene visualizzata la pagina Cronologia modifiche (anteprima) . In questa pagina sono elencate le modifiche apportate alla risorsa. Nell'esempio seguente è possibile vedere non solo che le dimensioni della macchina virtuale sono state modificate, ma anche le dimensioni precedenti della macchina virtuale prima della modifica e le dimensioni in cui è stata modificata. Per altre informazioni sulla cronologia delle modifiche, vedere Ottenere modifiche alle risorse.

Pagina della cronologia delle modifiche che mostra le differenze

Altri metodi per recuperare gli eventi del log attività

È anche possibile accedere agli eventi del log attività usando i metodi seguenti.

Inviare all'area di lavoro Log Analytics

Inviare il log attività a un'area di lavoro Log Analytics per abilitare le funzionalità di Monitoraggio di Azure log, tra cui:

  • Correlare i dati del log attività con altri dati di monitoraggio raccolti da Monitoraggio di Azure.
  • Consolidare le voci di log da più sottoscrizioni e tenant di Azure in un'unica posizione per l'analisi insieme.
  • Usare le query di log per eseguire analisi complesse e ottenere informazioni approfondite sulle voci del log attività.
  • Usare gli avvisi di log con voci di attività che consentono una logica di avviso più complessa.
  • Archiviare le voci del log attività per più tempo del periodo di conservazione del log attività.
  • Nessun addebito per l'inserimento di dati per i dati del log attività archiviati in un'area di lavoro Log Analytics.
  • Nessun addebito per la conservazione dei dati fino alla scadenza del periodo di conservazione del log attività per interi dati.

Creare un'impostazione di diagnostica per inviare il log attività a un'area di lavoro Log Analytics. È possibile inviare il log attività da qualsiasi sottoscrizione a un massimo di cinque aree di lavoro.

I dati del log attività in un'area di lavoro Log Analytics vengono archiviati in una tabella denominata AzureActivity che è possibile recuperare con una query di log in Log Analytics. La struttura di questa tabella varia a seconda della categoria della voce di log. Per una descrizione delle proprietà della tabella, vedere le informazioni di Monitoraggio di Azure riferimento ai dati.

Ad esempio, per visualizzare un conteggio dei record del log attività per ogni categoria, usare la query seguente.

AzureActivity
| summarize count() by CategoryValue

Per recuperare tutti i record nella categoria amministrativa, usare la query seguente.

AzureActivity
| where CategoryValue == "Administrative"

Inviare a Hub eventi di Azure

Inviare il log attività Hub eventi di Azure per inviare voci all'esterno di Azure, ad esempio a un SIEM di terze parti o ad altre soluzioni di log analytics. Gli eventi del log attività degli hub eventi vengono utilizzati in formato JSON con un records elemento contenente i record in ogni payload. Lo schema dipende dalla categoria ed è descritto in Schema dall'account di archiviazione e dagli hub eventi.

Di seguito sono riportati dati di output di esempio da Hub eventi per un log attività:

{
    "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"
            }
        }
    ]
}

Inviare ad Archiviazione di Azure

Inviare il log attività a un account Archiviazione di Azure per il controllo, l'analisi statica o il backup se si vogliono conservare i dati di log più a lungo del periodo di conservazione del log attività. Non è necessario configurare Archiviazione di Azure a meno che non sia necessario mantenere le voci per uno di questi motivi.

Quando si invia il log attività ad Azure, viene creato un contenitore di archiviazione nell'account di archiviazione non appena si verifica un evento. I BLOB nel contenitore usano la convenzione di denominazione seguente:

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

Ad esempio, un BLOB specifico potrebbe avere un nome simile al seguente:

insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/y=2020/m=06/d=08/h=18/m=00/PT1H.json

Ogni BLOB PT1H.json contiene un BLOB JSON di eventi che si sono verificati nell'ora specificata nell'URL BLOB (ad esempio, h=12). Durante l'ora attuale, gli eventi vengono aggiunti al file PT1H.json man mano che si verificano. Il valore dei minuti (m=00) è sempre 00, perché gli eventi del log delle risorse vengono suddivisi in singoli BLOB all'ora.

Ogni evento viene archiviato nel file PT1H.json con il formato seguente che usa uno schema di primo livello comune, ma è altrimenti univoco per ogni categoria, come descritto in Schema del log attività.

{ "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"}}}

Metodi di raccolta legacy

Questa sezione descrive i metodi legacy per la raccolta del log attività usato prima delle impostazioni di diagnostica. Se si usano questi metodi, è consigliabile passare alle impostazioni di diagnostica che offrono funzionalità migliori e coerenza con i log delle risorse.

Profili dei log

I profili di log sono il metodo legacy per inviare il log attività all'archiviazione di Azure o agli hub eventi. Usare la procedura seguente per continuare a usare un profilo di log o per disabilitarlo in preparazione della migrazione a un'impostazione di diagnostica.

  1. Nel menu Monitoraggio di Azure nella portale di Azure selezionare Log attività.

  2. Fare clic su Impostazioni di diagnostica.

    Impostazioni di diagnostica

  3. Fare clic sul banner viola per l'esperienza legacy.

    Esperienza legacy

Configurare il profilo di log con PowerShell

Se esiste già un profilo di log, è prima necessario rimuovere il profilo di log esistente e quindi crearne uno nuovo.

  1. Usare Get-AzLogProfile per determinare se esiste già un profilo di log. Se esiste un profilo di log, prendere nota della proprietà name.

  2. Usare Remove-AzLogProfile per rimuovere il profilo di log usando il valore della proprietà name.

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. Usare Add-AzLogProfile per creare un nuovo profilo di 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
    
    Proprietà Obbligatoria Descrizione
    Nome Nome del profilo di log.
    StorageAccountId No ID risorsa dell'account Archiviazione in cui salvare il log attività.
    serviceBusRuleId No ID regola del bus di servizio per lo spazio dei nomi del bus di servizio in cui creare gli hub eventi. Si tratta di una stringa nel formato: {service bus resource ID}/authorizationrules/{key name} .
    Posizione Elenco delimitato da virgole di aree per cui raccogliere eventi del log attività.
    RetentionInDays Numero di giorni per cui gli eventi devono essere conservati nell'account di archiviazione, compreso tra 1 e 365. Se il valore è zero, i log vengono conservati all'infinito.
    Category No Elenco delimitato da virgole di categorie di eventi che devono essere raccolti. I valori possibili sono Write, Delete e Action.

Script di esempio

Di seguito è riportato uno script di PowerShell di esempio per creare un profilo di log che scrive il log attività sia in un account di archiviazione che in un hub eventi.

# 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

Configurare il profilo di log usando l'interfaccia della riga di comando di Azure

Se esiste già un profilo di log, è innanzitutto necessario rimuovere il profilo di log esistente e quindi crearne uno nuovo.

  1. Usare az monitor log-profiles list per determinare se esiste già un profilo di log.

  2. Usare az monitor log-profiles delete --name "<log profile name> per rimuovere il profilo di log usando il valore della proprietà name.

  3. Usare az monitor log-profiles create per creare un nuovo profilo di log:

    az monitor log-profiles create --name "default" --location null --locations "global" "eastus" "westus" --categories "Delete" "Write" "Action"  --enabled false --days 0 --service-bus-rule-id "/subscriptions/<YOUR SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<EVENT HUB NAME SPACE>/authorizationrules/RootManageSharedAccessKey"
    
    Proprietà Obbligatoria Descrizione
    name Nome del profilo di log.
    storage-account-id ID risorsa dell'account di archiviazione in cui salvare i log attività.
    locations Elenco delimitato da spazi di aree per cui raccogliere eventi del log attività. È possibile visualizzare un elenco di tutte le aree per la sottoscrizione tramite az account list-locations --query [].name.
    days Numero di giorni per cui devono essere conservati gli eventi, compresi tra 1 e 365. Se il valore è zero, i log vengono archiviati per un periodo illimitato. Se è zero, il parametro enabled deve essere impostato su false.
    Enabled Vero o falso. Consente di abilitare o disabilitare i criteri di conservazione. Se True, il parametro days deve essere un valore maggiore di 0.
    Categorie Elenco delimitato da spazi di categorie di eventi che devono essere raccolti. I valori possibili sono Write, Delete e Action.

Area di lavoro Log Analytics

Il metodo legacy per inviare il log attività in un'area di lavoro Log Analytics è la connessione del log nella configurazione dell'area di lavoro.

  1. Nel menu Aree di lavoro Log Analytics nel portale di Azure selezionare l'area di lavoro per raccogliere il log attività.

  2. Nella sezione Origini dati dell'area di lavoro del menu dell'area di lavoro selezionare Log attività di Azure.

  3. Fare clic sulla sottoscrizione da connettere.

    Screenshot che mostra l'area di lavoro Log Analytics con un log attività di Azure selezionato.

  4. Fare Connessione per connettere il log attività nella sottoscrizione all'area di lavoro selezionata. Se la sottoscrizione è già connessa a un'altra area di lavoro, fare clic su Disconnetti per prima cosa per disconnetterla.

    Connessione Aree

Per disabilitare l'impostazione, eseguire la stessa procedura e fare clic su Disconnetti per rimuovere la sottoscrizione dall'area di lavoro.

Modifiche alla struttura dei dati

Le impostazioni di diagnostica inviano gli stessi dati del metodo legacy usato per inviare il log attività con alcune modifiche alla struttura della tabella AzureActivity.

Le colonne nella tabella seguente sono state deprecate nello schema aggiornato. Esistono ancora in AzureActivity, ma non avranno dati. La sostituzione di queste colonne non è nuova, ma contiene gli stessi dati della colonna deprecata. Sono in un formato diverso, quindi potrebbe essere necessario modificare le query di log che le usano.

Colonna deprecata Colonna di sostituzione
ActivityStatus ActivityStatusValue
ActivitySubstatus ActivitySubstatusValue
Category CategoryValue
OperationName OperationNameValue
ResourceProvider ResourceProviderValue

Importante

In alcuni casi i valori in queste colonne saranno tutti in maiuscolo. In presenza di una query che include queste colonne, è necessario usare l'operatore =~ per eseguire un confronto senza distinzione tra maiuscole e minuscole.

La colonna seguente è stata aggiunta ad AzureActivity nello schema aggiornato:

  • Authorization_d
  • Claims_d
  • Properties_d

Analisi log attività di monitoraggio

La soluzione di monitoraggio di Azure Log Analytics verrà presto deprecata e sostituita da una cartella di lavoro usando lo schema aggiornato nell'area di lavoro Log Analytics. È comunque possibile usare la soluzione se è già abilitata, ma può essere usata solo se si raccoglie il log attività usando le impostazioni legacy.

Usare la soluzione

Le soluzioni di monitoraggio sono accessibili dal menu Monitoraggio nella portale di Azure. Selezionare Altro nella sezione Insights per aprire la pagina Panoramica con i riquadri della soluzione. Il riquadro Log attività di Azure visualizza un conteggio del numero di record AzureActivity nell'area di lavoro.

Riquadro Log attività di Azure

Fare clic sul riquadro Log attività di Azure per aprire la visualizzazione Log attività di Azure. La vista include le parti della visualizzazione nella tabella seguente. Ogni parte elenca fino a 10 elementi corrispondenti ai criteri di tale parte per l'intervallo di tempo specificato. È possibile eseguire una query di log che restituisce tutti i record corrispondenti facendo clic su Visualizza tutto nella parte inferiore della parte.

Dashboard Log attività di Azure

Abilitare la soluzione per le nuove sottoscrizioni

A breve non sarà più possibile aggiungere la soluzione Analisi log attività alla sottoscrizione usando il portale di Azure. È possibile aggiungerlo usando la procedura seguente con un Resource Manager modello.

  1. Copiare il codice JSON seguente in un file denominato ActivityLogTemplate.json.

    {
    "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "workspaceName": {
            "type": "String",
            "defaultValue": "my-workspace",
            "metadata": {
              "description": "Specifies the name of the workspace."
            }
        },
        "location": {
            "type": "String",
            "allowedValues": [
              "east us",
              "west us",
              "australia central",
              "west europe"
            ],
            "defaultValue": "australia central",
            "metadata": {
              "description": "Specifies the location in which to create the workspace."
            }
        }
      },
        "resources": [
        {
            "type": "Microsoft.OperationalInsights/workspaces",
            "name": "[parameters('workspaceName')]",
            "apiVersion": "2015-11-01-preview",
            "location": "[parameters('location')]",
            "properties": {
                "features": {
                    "searchVersion": 2
                }
            }
        },
        {
            "type": "Microsoft.OperationsManagement/solutions",
            "apiVersion": "2015-11-01-preview",
            "name": "[concat('AzureActivity(', parameters('workspaceName'),')')]",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspaceName'))]"
            ],
            "plan": {
                "name": "[concat('AzureActivity(', parameters('workspaceName'),')')]",
                "promotionCode": "",
                "product": "OMSGallery/AzureActivity",
                "publisher": "Microsoft"
            },
            "properties": {
                "workspaceResourceId": "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspaceName'))]",
                "containedResources": [
                    "[concat(resourceId('microsoft.operationalinsights/workspaces', parameters('workspaceName')), '/views/AzureActivity(',parameters('workspaceName'))]"
                ]
            }
        },
        {
          "type": "Microsoft.OperationalInsights/workspaces/datasources",
          "kind": "AzureActivityLog",
          "name": "[concat(parameters('workspaceName'), '/', subscription().subscriptionId)]",
          "apiVersion": "2015-11-01-preview",
          "location": "[parameters('location')]",
          "dependsOn": [
              "[parameters('WorkspaceName')]"
          ],
          "properties": {
              "linkedResourceId": "[concat(subscription().Id, '/providers/microsoft.insights/eventTypes/management')]"
          }
        }
      ]
    }    
    
  2. Distribuire il modello usando i comandi di PowerShell seguenti:

    Connect-AzAccount
    Select-AzSubscription <SubscriptionName>
    New-AzResourceGroupDeployment -Name activitysolution -ResourceGroupName <ResourceGroup> -TemplateFile <Path to template file>
    

Passaggi successivi