Freigeben über


Tutorial: Erfassen von Ereignissen aus Azure Event Hubs in Azure Monitor-Protokollen (Public Preview)

Azure Event Hubs ist eine Big Data-Streamingplattform, die Ereignisse aus mehreren Quellen sammelt, die von Azure und externen Diensten erfasst werden. In diesem Artikel wird erläutert, wie Sie Daten direkt aus einem Event Hub in einem Log Analytics-Arbeitsbereich erfassen.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen einer Zieltabelle für Event Hub-Daten in Ihrem Log Analytics-Arbeitsbereich
  • Erstellen eines Datensammlungsendpunkts
  • Erstellen einer Datensammlungsregel
  • Erteilen von Berechtigungen für die Datensammlungsregel für den Event Hub
  • Zuordnen der Datensammlungsregel zum Event Hub

Voraussetzungen

Um Ereignisse von Azure Event Hubs an Azure Monitor-Protokolle zu senden, benötigen Sie die folgenden Ressourcen:

Unterstützte Regionen

Azure Monitor unterstützt derzeit die Erfassung von Event Hubs in diesen Regionen:

Amerika Europa Naher Osten Afrika Asien-Pazifik
Brasilien Süd Frankreich, Mitte Vereinigte Arabische Emirate, Norden Südafrika, Norden Australien, Mitte
Brasilien, Südosten Nordeuropa Australien (Osten)
Kanada, Mitte Norwegen, Osten Australien, Südosten
Kanada, Osten Schweiz, Norden Indien, Mitte
East US Schweiz, Westen Asien, Osten
USA (Ost) 2 UK, Süden Japan, Osten
USA Süd Mitte UK, Westen Jio Indien, Westen
USA (Westen) Europa, Westen Korea, Mitte
USA, Westen 3 Asien, Südosten

Sie müssen Ihre Zuordnung zur Datensammlungsregel (Data Collection Rule Association, DCRA) in derselben Region wie Event Hub erstellen. Der Log Analytics-Arbeitsbereich kann sich in einer beliebigen Region befinden. Die Datensammlungsregel (Data Collection Rule, DCR) und der Datensammlungsendpunkt (Data Collection Endpoint, DCE) müssen sich jedoch in der gleichen Region befinden wie der Log Analytics-Arbeitsbereich.

Für minimale Latenz empfehlen wir, alle Ressourcen in derselben Region zu platzieren.

Erfassen der erforderlichen Informationen

In den folgenden Schritten benötigen Sie Ihre Abonnement-ID, den Ressourcennamen, den Arbeitsbereichsnamen, die Arbeitsbereichsressourcen-ID und die Event Hub-Instanzressourcen-ID:

  1. Navigieren Sie im Menü Log Analytics-Arbeitsbereiche zu Ihrem Arbeitsbereich, und wählen Sie Eigenschaften aus, und kopieren Sie Ihre Abonnement-ID, Ressourcengruppe und den Namen des Arbeitsbereichs. Sie benötigen diese Details, um Ressourcen in diesem Tutorial zu erstellen.

    Screenshot des Übersichtsbildschirms des Log Analytics-Arbeitsbereichs mit der Abonnement-ID, dem Ressourcengruppennamen und dem Namen des Arbeitsbereichs hervorgehoben.

  2. Wählen Sie JSON aus, um den Bildschirm Ressourcen-JSON zu öffnen und die Ressourcen-ID des Arbeitsbereichs zu kopieren. Sie benötigen die Ressourcen-ID des Arbeitsbereichs, um eine Datensammlungsregel zu erstellen.

    Screenshot des Bildschirms „Ressourcen-JSON“ mit hervorgehobener Ressourcen-ID des Arbeitsbereichs.

  3. Navigieren Sie zu Ihrer Event Hub-Instanz, wählen Sie JSON aus, um den Bildschirm Ressourcen-JSON zu öffnen, und kopieren Sie die Ressourcen-ID der Event Hub-Inst. Sie benötigen die Ressourcen-ID der Event Hub-Instanz, um die Datensammlungsregel dem Event Hub zuzuordnen.

    Screenshot des Bildschirms „Ressourcen-JSON“ mit hervorgehobener Ressourcen-ID des Event Hubs.

Erstellen einer Zieltabelle in Ihrem Log Analytics-Arbeitsbereich

Bevor Sie Daten erfassen können, müssen Sie eine Zieltabelle einrichten. Sie können Daten in benutzerdefinierten Tabellen und unterstützten Azure-Tabellen erfassen.

So erstellen Sie eine benutzerdefinierte Tabelle, in der Ereignisse erfasst werden sollen, im Azure-Portal:

  1. Wählen Sie die Schaltfläche Cloud Shell aus, und achten Sie darauf, dass die Umgebung auf PowerShell festgelegt ist.

    Screenshot, der zeigt, wie Sie Cloud Shell öffnen.

  2. Führen Sie diesen PowerShell-Befehl aus, um die Tabelle zu erstellen, geben Sie den Tabellennamen (<table_name>) im JSON-Code an (ebenfalls mit Suffix _CL im Falle einer benutzerdefinierten Tabelle), und legen Sie die Werte <subscription_id>, <resource_group_name>, <workspace_name> und <table_name> im Befehl Invoke-AzRestMethod -Path fest:

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "<table_name>",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was ingested."
                    },
                    {
                        "name": "RawData",
                        "type": "string",
                        "description": "Body of the event."
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic",
                        "description": "Additional message properties."
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/microsoft.operationalinsights/workspaces/<workspace_name>/tables/<table_name>?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
    

Wichtig

  • Spaltennamen müssen mit einem Buchstaben beginnen und können aus bis zu 45 alphanumerischen Zeichen und Unterstrichen (_) bestehen.
  • _ResourceId, id, _ResourceId, _SubscriptionId, TenantId, Type, UniqueId und Title sind reservierte Spaltennamen.
  • Bei Spaltennamen wird die Groß-/Kleinschreibung beachtet. Stellen Sie sicher, dass Sie in Ihrer Datensammlungsregel den richtigen Fall verwenden.

Erstellen eines Datensammlungsendpunkts

Zum Sammeln von Daten mit einer Datensammlungsregel benötigen Sie einen Datensammlungsendpunkt:

  1. Erstelle einen Datensammlungsendpunkt.

    Wichtig

    Erstellen Sie den Datensammlungsendpunkt in derselben Region, in der sich auch Ihr Log Analytics-Arbeitsbereich befindet.

  2. Wählen Sie auf dem Bildschirm „Übersicht“ des Datensammlungsendpunkts die Option JSON-Ansicht aus.

    Screenshot des Bildschirms „Übersicht“ des Datensammlungsendpunkts.

  3. Kopieren Sie die Ressourcen-ID für die Datensammlungsregel. Sie benötigen diese Informationen im nächsten Schritt.

    Screenshot der JSON-Ansicht des Datensammlungsendpunkts.

Erstellen einer Datensammlungsregel

Azure Monitor verwendet Datensammlungsregeln, um zu definieren, welche Daten gesammelt werden, wie diese Daten transformiert werden und wohin die Daten gesendet werden sollen.

So erstellen Sie eine Datensammlungsregel im Azure-Portal:

  1. Geben Sie im Suchfeld des Portals Vorlage ein, und wählen Sie dann Eine benutzerdefinierte Vorlage bereitstellen aus.

    Der Screenshot zum Bereitstellen einer benutzerdefinierten Vorlage.

  2. Wählen Sie Eigene Vorlage im Editor erstellen.

    Screenshot: Erstellen einer Vorlage im Editor.

  3. Fügen Sie die unten aufgeführte Resource Manager-Vorlage in den Editor ein, und wählen Sie dann Speichern aus.

    Screenshot: Bearbeiten der Resource Manager-Vorlage.

    Beachten Sie die folgenden Details in der Datensammlungsregel unten:

    • identity – Definiert, welche Art von verwalteter Identität verwendet werden soll. In unserem Beispiel wird eine systemseitig zugewiesene Identität verwendet. Sie können auch ein benutzerseitig zugewiesene verwaltete Identitäten konfigurieren.

    • dataCollectionEndpointId – Ressourcen-ID des Datensammlungsendpunkts.

    • streamDeclarations – Definiert, welche Daten vom Event Hub erfasst werden sollen (eingehende Daten). Die Streamdeklaration kann nicht geändert werden.

      • TimeGenerated – Der Zeitpunkt, zu dem die Daten vom Event Hub in Azure Monitor-Protokollen erfasst wurden.
      • RawData – Der Text des Ereignisses. Weitere Informationen finden Sie unter Lesen von Ereignissen.
      • Properties – Benutzereigenschaften aus dem Ereignis. Weitere Informationen finden Sie unter Lesen von Ereignissen.
    • datasources – Gibt die Event Hub-Consumergruppe und den Stream an, in dem Sie die Daten erfassen.

    • destinations – Gibt alle Ziele an, an die die Daten gesendet werden. Sie können Daten in einem oder mehreren Log Analytics-Arbeitsbereichen erfassen.

    • dataFlows – Gleicht den Datenstrom mit dem Zielarbeitsbereich ab und gibt die Transformationsabfrage sowie die Zieltabelle an. In unserem Beispiel werden Daten in der benutzerdefinierten Tabelle, die wir zuvor erstellt haben, erfasst. Sie können auch in eine unterstützte Azure-Tabelle erfassen.

    • transformKql – Gibt eine Transformation an, die auf die eingehenden Daten (Streamdeklaration) angewendet werden soll, bevor diese an den Arbeitsbereich gesendet werden. In unserem Beispiel legen wir transformKql auf source fest, wodurch die Daten aus der Quelle in keiner Weise geändert werden, da wir eingehende Daten einer benutzerdefinierten Tabelle zuordnen, die wir speziell mit dem entsprechenden Schema erstellt haben. Wenn Sie Daten in einer Tabelle mit einem anderen Schema erfassen oder Daten vor der Erfassung filtern möchten, definieren Sie eine Datensammlungstransformation.

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionRuleName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the data collection Rule to create."
                }
            },
            "workspaceResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
                }
            },
            "endpointResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the data collection endpoint to use."
                }
            },
            "tableName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the table in the workspace."
                }
            },
            "consumerGroup": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the consumer group of event hub."
                },
                "defaultValue": "$Default"
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[resourceGroup().location]", 
                "apiVersion": "2022-06-01",
                "identity": {
                                 "type": "systemAssigned"
                  },
                "properties": {
                    "dataCollectionEndpointId": "[parameters('endpointResourceId')]",
                    "streamDeclarations": {
                        "Custom-MyEventHubStream": {
                            "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic"
                    }
                ]
                        }
                    },
                    "dataSources": {
                        "dataImports": {
                             "eventHub": {
                                        "consumerGroup": "[parameters('consumerGroup')]",
                                        "stream": "Custom-MyEventHubStream",
                                        "name": "myEventHubDataSource1"
                                                              }
                                               }
                   },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "MyDestination"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyEventHubStream"
                            ],
                            "destinations": [
                                "MyDestination"
                            ],
                            "transformKql": "source",
                            "outputStream": "[concat('Custom-', parameters('tableName'))]"
                        }
                    ]
                }
            }
        ]
    }
    
  4. Geben Sie auf dem Bildschirm Benutzerdefinierte Bereitstellung ein Abonnement und eine Ressourcengruppe zum Speichern der Datensammlungsregel an, und geben Sie dann für die Parameter in der Vorlage definierte Werte an, einschließlich:

    • Region – Region für die Datensammlungsregel. Wird basierend auf der ausgewählten Ressourcengruppe automatisch aufgefüllt.
    • Name der Datensammlungsregel – Geben Sie der Regel einen Namen.
    • Ressourcen-ID des Arbeitsbereichs – Siehe Sammeln erforderlicher Informationen.
    • Endpunktressourcen-ID – Wird beim Erstellen des Datensammlungsendpunkts generiert.
    • Tabellenname – Gibt den Namen der Zieltabelle an. In unserem Beispiel und wenn Sie eine benutzerdefinierte Tabelle verwenden, muss der Tabellenname auf das Suffix _CL enden. Wenn Sie Daten in einer Azure-Tabelle erfassen, geben Sie den Tabellennamen ( z. B. Syslog ) ohne das Suffix ein.
    • Consumergruppe – Standardmäßig ist die Consumergruppe auf $Default festgelegt. Ändern Sie bei Bedarf den Wert in eine andere Event Hub-Consumergruppe.

    Screenshot des Bildschirms „Bereitstellung einer benutzerdefinierten Vorlage“ mit den Bereitstellungswerten für die Einrichtung der Datensammlungsregel in diesem Tutorial.

  5. Wählen Sie Überprüfen und erstellen und dann Erstellen aus, nachdem Sie die Details überprüft haben.

  6. Erweitern Sie nach Abschluss der Bereitstellung das Feld Bereitstellungsdetails, und wählen Sie Ihre Datensammlungsregel aus, um ihre Details anzuzeigen. Wählen Sie JSON-Ansicht aus.

    Screenshot des Bildschirms „Übersicht zur Datensammlungsregel“.

  7. Kopieren Sie die Ressourcen-ID für die Datensammlungsregel. Sie benötigen diese Informationen im nächsten Schritt.

    Screenshot der JSON-Ansicht der Datensammlungsregel.

Konfigurieren einer benutzerseitig zugewiesenen verwalteten Identität (optional)

Um Ihre Datensammlungsregel zur Unterstützung der benutzerseitig zugewiesenen Identität zu konfigurieren, ersetzen Sie im obigen Beispiel Folgendes:

    "identity": {
                        "type": "systemAssigned"
        },

Durch:

    "identity": {
            "type": "userAssigned",
            "userAssignedIdentities": {
                "<identity_resource_Id>": {
                }
            }
        },

Um den Wert „<identity_resource_Id>“ zu finden, navigieren Sie im Azure-Portal zu Ihrer benutzerseitig zugewiesenen verwalteten Identitätsressource, wählen Sie JSON aus, um den Bildschirm Ressourcen-JSON zu öffnen und die Ressourcen-ID der verwalteten Identität zu kopieren.

Screenshot des Bildschirms „Ressourcen-JSON“ mit hervorgehobener Ressourcen-ID der verwalteten Identität.

Erfassen von Protokolldaten in einer Azure-Tabelle (optional)

So erfassen Sie Daten in einer unterstützten Azure-Tabelle:

  1. Ändern Sie in der Datensammlungsregel outputStream:

    Von: "outputStream": "[concat('Custom-', parameters('tableName'))]"

    An: "outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"

  2. Definieren Sie in transformKql eine Transformation, die die erfassten Daten in die Zielspalten in der Azure-Zieltabelle sendet.

Erteilen der Event Hub-Berechtigung für die Datensammlungsregel

Mit der verwalteten Identität können Sie jedem Event Hub oder Event Hubs-Namespace die Berechtigung zum Senden von Ereignissen an die von Ihnen erstellte Datensammlungsregel und den Datensammlungsendpunkt erteilen. Wenn Sie die Berechtigungen für den Event Hubs-Namespace erteilen, erben alle Event Hubs innerhalb des Namespaces die Berechtigungen.

  1. Wählen Sie im Event Hub- oder Event Hubs-Namespace im Azure-Portal Access Control (IAM)>Rollenzuweisung hinzufügen aus.

    Screenshot zeigt den Bildschirm „Access Control“ für die Datensammlungsregel.

  2. Wählen Sie Azure Event Hubs-Datenempfänger und dann Weiter aus.

    Screenshot des Bildschirms „Rollenzuweisung hinzufügen“ für den Event Hub mit hervorgehobener Rolle „Azure Event Hubs-Datenempfänger“.

  3. Wählen Sie Verwaltete Identität für Zugriff zuweisen zu aus, und klicken Sie auf Mitglieder auswählen. Wählen Sie Datensammlungsregel aus, suchen Sie dem Namen nach nach Ihrer Datensammlungsregel und klicken Sie auf Auswählen.

    Screenshot: Zuweisen des Zugriffs zu einer verwalteten Identität.

  4. Wählen Sie Überprüfen und zuweisen aus, und überprüfen Sie die Details, bevor Sie Ihre Rollenzuweisung speichern.

    Screenshot der Registerkarte „Überprüfen und zuweisen“ auf dem Bildschirm „Rollenzuweisung“.

Zuordnen der Datensammlungsregel zum Event Hub

Der letzte Schritt besteht darin, die Datensammlungsregel dem Event Hub zuzuordnen, von dem Sie Ereignisse sammeln möchten.

Sie können eine einzelne Datensammlungsregel mehreren Event Hubs zuordnen, die dieselbe Consumergruppe nutzen und Daten im selben Stream erfassen. Alternativ können Sie jedem Event Hub eine eindeutige Datensammlungsregel zuordnen.

Wichtig

Sie müssen dem Event Hub mindestens eine Datensammlungsregel zuordnen, um Daten aus einem Event Hub zu erfassen. Wenn Sie alle Zuordnungen von Datensammlungsregeln im Zusammenhang mit dem Event Hub löschen, wird die Erfassung von Daten aus dem Event Hub beendet.

So erstellen Sie eine Zuordnung einer Datensammlungsregel im Azure-Portal:

  1. Geben Sie im Suchfeld des Azure-Portals Vorlage ein, und wählen Sie dann Benutzerdefinierte Vorlage bereitstellen aus.

  2. Wählen Sie Eigene Vorlage im Editor erstellen.

  3. Fügen Sie die unten aufgeführte Resource Manager-Vorlage in den Editor ein, und wählen Sie dann Speichern aus.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "eventHubResourceID": {
          "type": "string",
          "metadata": {
            "description": "Specifies the Azure resource ID of the event hub to use."
          }
        },
        "associationName": {
          "type": "string",
          "metadata": {
            "description": "The name of the association."
          }
        },
        "dataCollectionRuleID": {
          "type": "string",
          "metadata": {
            "description": "The resource ID of the data collection rule."
          }
        }
      },
      "resources": [
        {
          "type": "Microsoft.Insights/dataCollectionRuleAssociations",
          "apiVersion": "2021-09-01-preview",
          "scope": "[parameters('eventHubResourceId')]",
          "name": "[parameters('associationName')]",
          "properties": {
            "description": "Association of data collection rule. Deleting this association will break the data collection for this event hub.",
            "dataCollectionRuleId": "[parameters('dataCollectionRuleId')]"
          }
        }
      ]
    }
    
  4. Geben Sie auf dem Bildschirm Benutzerdefinierte Bereitstellung ein Abonnement und eine Ressourcengruppe zum Speichern der Zuordnung der Datensammlungsregel an, und geben Sie dann für die Parameter in der Vorlage definierte Werte an, einschließlich:

    Screenshot des Bildschirms „Bereitstellung einer benutzerdefinierten Vorlage“ mit den Bereitstellungswerten für die Einrichtung der Zuordnung der Datensammlungsregel in diesem Tutorial.

  5. Wählen Sie Überprüfen und erstellen und dann Erstellen aus, nachdem Sie die Details überprüft haben.

Überprüfen der Zieltabelle auf erfasste Ereignisse

Azure Monitor-Protokolle erfassen alle Ereignisse, die zum Zeitpunkt der DCRA-Erstellung in Event Hub vorhanden sind, vorausgesetzt, der Aufbewahrungszeitraum ist nicht abgelaufen. Außerdem werden alle neuen Ereignisse erfasst.

So überprüfen Sie Ihre Zieltabelle auf erfasste Ereignisse:

  1. Navigieren Sie zu Ihrem Arbeitsbereich, und wählen Sie Protokolle aus.

  2. Schreiben Sie eine einfache Abfrage im Abfrage-Editor, und wählen Sie Ausführen aus:

    <table_name>
    

    Sie sollten Ereignisse aus Ihrem Event Hub sehen.

Screenshot der Ereignisse der einfachen Abfrage einer benutzerdefinierten Tabelle. Die Ergebnisse bestehen aus Ereignissen, die aus einem Event Hub erfasst wurden.

Bereinigen von Ressourcen

In diesem Tutorial haben Sie die folgenden Ressourcen erstellt:

  • Benutzerdefinierte Tabelle
  • Datensammlungsendpunkt
  • Datensammlungsregel
  • Zuordnung zu Datensammlungsregel

Bewerten Sie, ob Sie diese Ressourcen noch benötigen. Löschen Sie die Ressourcen, die Sie nicht benötigen, einzeln, oder löschen Sie alle diese Ressourcen gleichzeitig, indem Sie die Ressourcengruppe löschen. Ressourcen, die Sie weiterhin ausführen, können Sie Geld kosten.

Um die Erfassung von Daten aus dem Event Hub zu beenden, löschen Sie alle Zuordnungen von Datensammlungsregeln im Zusammenhang mit dem Event Hub, oder löschen Sie die Datensammlungsregeln selbst. Diese Aktionen setzen auch die Event Hub-Prüfpunkte zurück.

Bekannte Probleme und Einschränkungen

Nächste Schritte

Weitere Informationen zu: