Senden von Daten aus Microsoft Azure Diagnoseerweiterung an Azure Event Hubs

Azure-Diagnoseerweiterung ist ein Agent in Azure Monitor, der Überwachungsdaten aus dem Gastbetriebssystem und Arbeitslasten von Azure-virtuellen Computern und anderen Computerressourcen sammelt. In diesem Artikel wird beschrieben, wie Sie Daten aus der Erweiterung Microsoft Azure Diagnostic (WAD) an Azure Event Hubs senden, damit Sie an Standorte außerhalb Azure weiterleiten können.

Von Bedeutung

Azure-Diagnose Erweiterung wurde am 31. März 2026 eingestellt und wird nicht mehr unterstützt. Neue Bereitstellungen der Erweiterung werden nicht empfohlen. Um die kontinuierliche Unterstützung und den Zugriff auf neue Features sicherzustellen, migrieren Sie zu den hier empfohlenen alternativen Lösungen.

Unterstützte Daten

Die vom Gastbetriebssystem gesammelten Daten, die an Event Hubs gesendet werden können, umfassen die nachfolgend genannten Datentypen. Andere von WAD gesammelte Datenquellen, einschließlich IIS-Protokollen (Internetinformationsdienste) und Absturzabbildern, können nicht an Event Hubs gesendet werden.

  • Ereignisverfolgung für Windows (ETW)-Ereignisse
  • Leistungsindikatoren
  • Ereignisprotokolle in Windows, einschließlich Anwendungsprotokollen im Windows-Ereignisprotokoll
  • Azure-Diagnoseinfrastrukturprotokolle

Voraussetzungen

Konfigurationsschema

Unter Installieren und konfigurieren Sie Microsoft Azure Diagnoseerweiterung (WAD) für verschiedene Optionen zum Aktivieren und Konfigurieren der Diagnoseerweiterung. Eine Referenz zum Konfigurationsschema finden Sie unter Azure-Diagnose Konfigurationsschema. Im restlichen Artikel wird beschrieben, wie Sie diese Konfiguration verwenden, um Daten an einen Event Hub zu senden.

Azure-Diagnose sendet immer Protokolle und Metriken an ein Azure Storage Konto. Sie können eine oder mehrere Datensenken konfigurieren, die Daten an andere Speicherorte senden. Die einzelnen Senken sind im SinksConfig-Element der öffentlichen Konfiguration mit sensiblen Informationen in der privaten Konfiguration definiert. Diese Konfiguration für Event Hubs verwendet die Werte in der folgenden Tabelle.

Eigenschaft BESCHREIBUNG
Name Beschreibender Name für die Senke. Wird in der Konfiguration verwendet, um die Datenquellen anzugeben, die an die Senke senden sollen.
url URL des Ereignishubs im Formular <event-hubs-namespace>.servicebus.windows.net/<event-hub-name>.
SharedAccessKeyName Name einer SAS-Richtlinie für den Event Hub, der mindestens über Senden-Autorität verfügt.
Gemeinsamer Zugriffsschlüssel Primärer oder sekundär Schlüssel aus der SAS-Richtlinie für den Event Hub.

Das folgende Beispiel zeigt öffentliche und private Konfigurationen. Es ist eine minimale Konfiguration mit einem einzelnen Leistungsindikator und Einem Ereignisprotokoll, um zu veranschaulichen, wie die Event Hub-Datensenke konfiguriert und verwendet wird. Ein komplexeres Beispiel finden Sie unter Azure-Diagnose Konfigurationsschema.

Öffentliche Konfiguration

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

Private Konfiguration

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

Konfigurationsoptionen

Um Daten an eine Datensenke zu senden, geben Sie das sinks-Attribut im Knoten der Datenquelle an. Die jeweilige Platzierung des sinks-Attributs bestimmt den Bereich der Zuweisung. Im folgenden Beispiel wird das Sinks-Attribut für den Knoten PerformanceCounters definiert. Dadurch werden alle untergeordneten Leistungszähler an den Event Hub gesendet.

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

Im folgenden Beispiel wird das Sinks-Attribut direkt auf drei Zähler angewendet. Dies bewirkt, dass nur diese Leistungsindikatoren an den Event Hub gesendet werden.

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

Überprüfen der Konfiguration

Sie können verschiedene Methoden verwenden, um zu überprüfen, ob Daten an den Event Hub gesendet werden. Eine einfache Methode ist die Verwendung der Ereignishubs-Erfassung, wie in der Anleitung 'Ereignisse erfassen durch Azure Event Hubs in Azure Blob Storage oder Azure Data Lake Storage' beschrieben.

Beheben von Problemen mit Event Hubs-Senken

  • Sehen Sie sich die Azure Storage Tabelle WADDiagnosticInfrastructureLogsTable an, die Protokolle und Fehler für Azure-Diagnose selbst enthält. Eine Möglichkeit besteht darin, ein Tool wie Azure Storage-Explorer zum Herstellen einer Verbindung mit diesem Speicherkonto zu verwenden, diese Tabelle anzuzeigen und eine Abfrage für TimeStamp in den letzten 24 Stunden hinzuzufügen. Sie können das Tool verwenden, um eine .csv Datei zu exportieren und in einer Anwendung wie Microsoft Excel zu öffnen. Excel erleichtert die Suche nach Anrufkartenzeichenfolgen wie EventHubs, um zu sehen, welcher Fehler gemeldet wird.

  • Überprüfen Sie, ob der Event Hub erfolgreich bereitgestellt wurde. Alle Verbindungsinformationen im Abschnitt PrivateConfig der Konfiguration müssen mit den Werten Ihrer Ressourcen übereinstimmen, wie sie im Portal angezeigt werden. Stellen Sie sicher, dass Sie eine SAS-Richtlinie im Portal definiert haben (im Beispiel SendRule) und die Berechtigung Senden gewährt wurde.

Nächste Schritte