Inviare dati dall'estensione diagnostica di Windows Azure a Hub eventi di Azure

L'estensione Diagnostica di Azure è un agente di Monitoraggio di Azure che raccoglie i dati di monitoraggio dal sistema operativo guest e i carichi di lavoro delle macchine virtuali di Azure e di altre risorse di calcolo. Questo articolo descrive come inviare dati dall'estensione Diagnostica di Windows Azure (WAD) a Hub eventi di Azure in modo da poter inoltrare a posizioni esterne ad Azure.

Dati supportati

I dati raccolti dal sistema operativo guest che possono essere inviati a Hub eventi includono quanto segue. Non è possibile inviare altre origini dati raccolte da WAD, inclusi i log IIS e i dump di arresto anomalo del sistema, a Hub eventi.

  • Tracciamento degli eventi di Windows (ETW)
  • Contatori delle prestazioni
  • Registri eventi di Windows, inclusi i log applicazioni nel registro eventi di Windows
  • Log dell'infrastruttura Diagnostica di Azure

Prerequisiti

Schema di configurazione

Per informazioni di riferimento sullo schema di configurazione, vedere Installare e configurare l'estensione diagnostica e configurare l'estensione diagnostica e Diagnostica di Azure schema di configurazione. Il resto di questo articolo descrive come usare questa configurazione per inviare dati a un hub eventi.

Diagnostica di Azure invia sempre log e metriche a un account di archiviazione di Azure. È possibile configurare uno o più sink di dati che inviano dati a posizioni aggiuntive. Ogni sink viene definito nell'elemento SinksConfig della configurazione pubblica con informazioni riservate nella configurazione privata. Questa configurazione per hub eventi usa i valori nella tabella seguente.

Proprietà Descrizione
Nome Nome descrittivo per il sink. Usato nella configurazione per specificare le origini dati da inviare al sink.
URL URL dell'hub eventi nel formato <event-hubs-namespace.servicebus.windows.net/>< event-hub-name>.
SharedAccessKeyName Nome di un criterio di accesso condiviso per l'hub eventi con almeno l'autorità di invio .
SharedAccessKey Chiave primaria o secondaria dai criteri di accesso condiviso per l'hub eventi.

Di seguito sono illustrate le configurazioni pubbliche e private di esempio. Si tratta di una configurazione minima con un singolo contatore delle prestazioni e un registro eventi per illustrare come configurare e usare il sink di dati dell'hub eventi. Per un esempio più complesso, vedere Diagnostica di Azure schema di configurazione.

Configurazione pubblica

{
    "WadCfg": {
        "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": 5120,
            "PerformanceCounters": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                "PerformanceCounterConfiguration": [
                    {
                        "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                        "sampleRate": "PT3M"
                    }
                ]
            },
            "WindowsEventLog": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                    "DataSource": [
                    {
                        "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
                    }
                ]
            }
        },
        "SinksConfig": {
            "Sink": [
                {
                    "name": "myEventHub",
                    "EventHub": {
                        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
                        "SharedAccessKeyName": "SendRule"
                    }
                }
            ]
        }
    },
    "StorageAccount": "mystorageaccount",
}

Configurazione privata

{
    "storageAccountName": "mystorageaccount",
    "storageAccountKey": "{base64 encoded key}",
    "storageAccountEndPoint": "https://core.windows.net",
    "EventHub": {
        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
        "SharedAccessKeyName": "SendRule",
        "SharedAccessKey": "{base64 encoded key}"
    }
}

Opzioni di configurazione

Per inviare dati a un sink di dati, specificare l'attributo sinks nel nodo dell'origine dati. Dove si posiziona l'attributo sinks determina l'ambito dell'assegnazione. Nell'esempio seguente l'attributo sinks viene definito nel nodo PerformanceCounters , che causerà l'invio di tutti i contatori delle prestazioni figlio all'hub eventi.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "sinks": "MyEventHub",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        }
    ]
}

Nell'esempio seguente l'attributo sinks viene applicato direttamente a tre contatori, in modo che solo i contatori delle prestazioni vengano inviati all'hub eventi.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Rejected",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Queued",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        }
    ]
}

Convalida della configurazione

È possibile usare diversi metodi per verificare che i dati vengano inviati all'hub eventi. Un metodo semplice consiste nell'usare l'acquisizione di Hub eventi come descritto in Acquisire eventi tramite Hub eventi di Azure in Archiviazione BLOB di Azure o Azure Data Lake Storage.

Risoluzione dei problemi relativi ai sink dell'Hub eventi

  • Esaminare la tabella di Archiviazione di Azure WADDiagnosticInfrastructureLogsTable che contiene log ed errori per Diagnostica di Azure stessa. Una possibilità consiste nell'usare uno strumento come Esplora archivi Azure per connettersi a questo account di archiviazione, visualizzare la tabella e aggiungere una query per il TimeStamp delle ultime 24 ore. È possibile utilizzare lo strumento per esportare un file .csv e aprirlo in un'applicazione come Microsoft Excel. Excel semplifica la ricerca di stringhe di presentazione come EventHubsper visualizzare l'errore segnalato.

  • Verificare che l'Hub eventi esegua correttamente il provisioning. Tutte le informazioni di connessione nella sezione PrivateConfig della configurazione devono corrispondere ai valori della risorsa, come illustrato nel portale. Assicurarsi di disporre di un criterio di firma di accesso condiviso definito (SendRule nell'esempio) nel portale e che venga concessa l'autorizzazione Invia .

Passaggi successivi