Inviare dati dell'estensione Diagnostica di Microsoft Azure all'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 spiega come inviare i dati dall'estensione Diagnostica di Windows Azure (WAD) all'Hub eventi di Azure per l'inoltro a posizioni esterne ad Azure.

Dati supportati

I dati raccolti dal sistema operativo guest che si possono inviare all'Hub eventi includono. Non è possibile inviare all'Hub eventi altre origini dati raccolte da WAD, come i log IIS e i dump di arresto anomalo del sistema.

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

Prerequisiti

Schema di configurazione

Consultare la sezione Installare e configurare l'estensione Diagnostica di Azure per Windows (WAD) per altre opzioni di abilitazione e configurazione dell'estensione diagnostica e la sezione Schema di configurazione di Diagnostica di Azure per un riferimento dello schema di configurazione. Il resto di questo articolo spiega come utilizzare questa configurazione per inviare dati a un hub eventi.

Per impostazione predefinita Diagnostica di Azure invia sempre i log e le metriche a un account di Archiviazione di Azure. È possibile configurare uno o più sink di dati che inviano dati a ulteriori posizioni. Ogni sink è definito nell'elemento SinksConfig della configurazione pubblica con le informazioni riservate nella configurazione privata. Questa configurazione per gli hub eventi utilizzano i valori riportati nella tabella seguente.

Proprietà Descrizione
Name Nome descrittivo per il sink. Si usa 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 principale o secondaria dei criteri di accesso condiviso per l'Hub eventi.

Di seguito sono riportate delle configurazioni pubbliche e private di esempio. È la una configurazione minima con un singolo contatore delle prestazioni e un log degli eventi per spiegare come configurare e usare il sink di dati dell'Hub eventi. Per un esempio più articolato, consultare la sezione Schema di configurazione di Diagnostica di Azure.

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 nel nodo dell'origine dati l'attributo sinks. Il punto in cui si posiziona l'attributo sinks determina l'ambito dell'assegnazione. Nel seguente esempio l'attributo sinks è definito nel nodo PerformanceCounters, determinando l'invio dei dati di ogni elemento figlio di tutti i contatori delle prestazioni 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"
        }
    ]
}

Nel seguente esempio l'attributo sinks è applicato direttamente a tre contatori, determinando solo l'invio dei dati di quei contatori delle prestazioni 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

Si possono usare diversi metodi per convalidare l'invio dei dati all'Hub eventi. Un semplice metodo consiste nell'usare l'acquisizione di Hub eventi come descritto nella sezione 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

  • Consultare la tabella di Archiviazione di Azure denominata WADDiagnosticInfrastructureLogsTable, che contiene log ed errori per Diagnostica di Azure. 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. Verificare di aver definito un criterio SAS (SendRule nell'esempio) nel portale e che sia stata concessa l'autorizzazione Invio.

Passaggi successivi