Log delle risorse di Azure

I log delle risorse di Azure sono log della piattaforma che forniscono informazioni dettagliate sulle operazioni eseguite all'interno di una risorsa di Azure. Il contenuto dei log delle risorse varia in base al servizio di Azure e al tipo di risorsa. I log delle risorse non vengono raccolti per impostazione predefinita. È necessario creare un'impostazione di diagnostica per ogni risorsa di Azure per inviare i log delle risorse a un'area di lavoro Log Analytics da usare con i log di Monitoraggio di Azure, Hub eventi di Azure per inoltrare all'esterno di Azure o per Archiviazione di Azure per l'archiviazione.

Vedere Creare impostazioni di diagnostica per inviare log e metriche della piattaforma a destinazioni diverse per informazioni dettagliate sulla creazione di un'impostazione di diagnostica e distribuire Monitoraggio di Azure su larga scala usando Criteri di Azure per informazioni dettagliate sull'uso di Criteri di Azure per creare automaticamente un'impostazione di diagnostica per ogni risorsa di Azure creata.

Inviare all'area di lavoro Log Analytics

Inviare i log delle risorse a un'area di lavoro Log Analytics per abilitare le funzionalità dei log di Monitoraggio di Azure che includono quanto segue:

  • Correlare i dati del log delle risorse con altri dati di monitoraggio raccolti da Monitoraggio di Azure.
  • Consolidare le voci di log da più risorse, sottoscrizioni e tenant di Azure in una posizione per l'analisi insieme.
  • Usare le query di log per eseguire analisi complesse e ottenere informazioni dettagliate sui dati di log.
  • Usare gli avvisi di log con logica di avviso complessa.

Creare un'impostazione di diagnostica per inviare i log delle risorse a un'area di lavoro Log Analytics. Questi dati vengono archiviati nelle tabelle, come descritto in Struttura dei log di Monitoraggio di Azure. Le tabelle usate dai log delle risorse dipendono dal tipo di raccolta in cui viene usata la risorsa:

  • Diagnostica di Azure: tutti i dati scritti sono nella tabella AzureDiagnostics .
  • Specifica della risorsa: i dati sono scritti in singole tabelle per ogni categoria della risorsa.

Modalità diagnostica di Azure

In questa modalità tutti i dati di qualsiasi impostazione di diagnostica verranno raccolti nella tabella AzureDiagnostics . Questo è il metodo legacy usato oggi dalla maggior parte dei servizi di Azure. Poiché più tipi di risorse inviano dati alla stessa tabella, lo schema è il superset degli schemi di tutti i diversi tipi di dati raccolti. Per informazioni dettagliate sulla struttura di questa tabella, vedere Informazioni di riferimento su AzureDiagnostics e su come funziona con questo numero potenzialmente elevato di colonne.

Si consideri l'esempio seguente in cui vengono raccolte le impostazioni di diagnostica nella stessa area di lavoro per i tipi di dati seguenti:

  • Log di controllo del servizio 1 (con uno schema costituito da colonne A, B e C)
  • Log degli errori del servizio 1 (con uno schema costituito da colonne D, E e F)
  • Log di controllo del servizio 2 (con uno schema costituito da colonne G, H e I)

La tabella AzureDiagnostics sarà simile alla seguente:

ResourceProvider Category A B C D E F G H I
Microsoft.Service1 AuditLogs x1 y1 Z1
Microsoft.Service1 ErrorLogs q1 w1 e1
Microsoft.Service2 AuditLogs j1 k1 l1
Microsoft.Service1 ErrorLogs q2 w2 e2
Microsoft.Service2 AuditLogs j3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5
...

Specifica della risorsa

In questa modalità vengono create singole tabelle nell'area di lavoro selezionata per ogni categoria selezionata nell'impostazione di diagnostica. Questo metodo è consigliato poiché rende molto più semplice usare i dati nelle query di log, offre una migliore individuabilità degli schemi e della relativa struttura, migliora le prestazioni in tempi di latenza di inserimento e query e la possibilità di concedere diritti di controllo degli accessi in base al ruolo di Azure in una tabella specifica. Tutti i servizi di Azure verranno infine migrati alla modalità Resource-Specific.

L'esempio precedente comporta la creazione di tre tabelle:

  • Table Service1AuditLogs come segue:

    Provider di risorse Category A B C
    Service1 AuditLogs x1 y1 Z1
    Service1 AuditLogs x5 y5 z5
    ...
  • Table Service1ErrorLogs come indicato di seguito:

    Provider di risorse Category D E F
    Service1 ErrorLogs q1 w1 e1
    Service1 ErrorLogs q2 w2 e2
    ...
  • Servizio tabelle2AuditLogs come indicato di seguito:

    Provider di risorse Category G H I
    Service2 AuditLogs j1 k1 l1
    Service2 AuditLogs j3 k3 l3
    ...

Selezionare la modalità raccolta

La maggior parte delle risorse di Azure scriverà i dati nell'area di lavoro in modalità Diagnostica di Azure o Specifica risorsa senza scegliere. Per informazioni dettagliate sulla modalità usata da ogni servizio, vedere la documentazione relativa a ogni servizio . Tutti i servizi di Azure useranno infine la modalità Resource-Specific. Come parte di questa transizione, alcune risorse consentiranno di selezionare una modalità nell'impostazione di diagnostica. Specificare la modalità specifica della risorsa per le nuove impostazioni di diagnostica, in quanto ciò semplifica la gestione dei dati e può essere utile per evitare migrazioni complesse in un secondo momento.

Diagnostic Settings mode selector

Nota

Per un esempio di impostazione della modalità raccolta usando un modello di Resource Manager, vedere Resource Manager esempi di modelli per le impostazioni di diagnostica in Monitoraggio di Azure.

È possibile modificare un'impostazione di diagnostica esistente in modalità specifica della risorsa. In questo caso, i dati già raccolti rimarranno nella tabella AzureDiagnostics fino a quando non vengono rimossi in base all'impostazione di conservazione per l'area di lavoro. I nuovi dati verranno raccolti nella tabella dedicata. Usare l'operatore union per eseguire query sui dati in entrambe le tabelle.

Continuare a guardare il blog degli aggiornamenti di Azure per gli annunci sui servizi di Azure che supportano la modalità di Resource-Specific.

Invia a Hub eventi di Azure

Inviare i log delle risorse a un hub eventi per inviarli all'esterno di Azure, ad esempio a una soluzione SIEM di terze parti o ad altre soluzioni di log analytics. I log delle risorse degli hub eventi vengono utilizzati in formato JSON con un records elemento contenente i record in ogni payload. Lo schema dipende dal tipo di risorsa, come descritto in Schema comune e specifico del servizio per i log delle risorse di Azure.

Di seguito sono riportati i dati di output di esempio di Hub eventi per un log delle risorse:

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

Inviare ad Archiviazione di Azure

Inviare i log delle risorse ad Archiviazione di Azure per conservarlo per l'archiviazione. Dopo aver creato l'impostazione di diagnostica, viene creato un contenitore di archiviazione nell'account di archiviazione non appena si verifica un evento in una delle categorie di log abilitate. I BLOB all'interno del contenitore usano la convenzione di denominazione seguente:

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

Ad esempio, il BLOB per un gruppo di sicurezza di rete potrebbe avere un nome simile al seguente:

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

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 del minuto (m=00) è sempre 00, poiché gli eventi del log delle risorse vengono suddivisi in singoli BLOB all'ora.

All'interno del file PT1H.json, ogni evento viene archiviato con il formato seguente. Verrà usato uno schema di primo livello comune, ma sarà univoco per ogni servizio di Azure, come descritto in Schema dei log delle risorse.

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

Passaggi successivi