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:
Log Analytics-Arbeitsbereich, in dem Sie mindestens über die Berechtigung „Mitwirkender“ verfügen.
Ihr Log Analytics-Arbeitsbereich muss mit einem dedizierten Cluster verknüpft sein oder über eine Mindestabnahme verfügen.
Event Hubs-Namespace, der den Zugriff auf öffentliche Netzwerke zulässt. Wenn der Zugriff über öffentliche Netzwerke deaktiviert ist, stellen Sie sicher, dass „Vertrauenswürdigen Microsoft-Diensten erlauben, diese Firewall zu umgehen“ auf „Ja“ festgelegt ist.
Event Hub mit Ereignissen. Sie können Ereignisse an Ihren Event Hub senden, indem Sie die Schritte unter Senden und Empfangen von Ereignissen in Azure Event Hubs-Tutorials ausführen oder die Diagnoseeinstellungen von Azure-Ressourcen konfigurieren.
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:
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.
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.
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.
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:
Wählen Sie die Schaltfläche Cloud Shell aus, und achten Sie darauf, dass die Umgebung auf PowerShell festgelegt ist.
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 BefehlInvoke-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
undTitle
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:
Erstelle einen Datensammlungsendpunkt.
Wichtig
Erstellen Sie den Datensammlungsendpunkt in derselben Region, in der sich auch Ihr Log Analytics-Arbeitsbereich befindet.
Wählen Sie auf dem Bildschirm „Übersicht“ des Datensammlungsendpunkts die Option JSON-Ansicht aus.
Kopieren Sie die Ressourcen-ID für die Datensammlungsregel. Sie benötigen diese Informationen im nächsten Schritt.
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:
Geben Sie im Suchfeld des Portals Vorlage ein, und wählen Sie dann Eine benutzerdefinierte Vorlage bereitstellen aus.
Wählen Sie Eigene Vorlage im Editor erstellen.
Fügen Sie die unten aufgeführte Resource Manager-Vorlage in den Editor ein, und wählen Sie dann Speichern aus.
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 wirtransformKql
aufsource
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'))]" } ] } } ] }
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.
Wählen Sie Überprüfen und erstellen und dann Erstellen aus, nachdem Sie die Details überprüft haben.
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.
Kopieren Sie die Ressourcen-ID für die Datensammlungsregel. Sie benötigen diese Informationen im nächsten Schritt.
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.
Erfassen von Protokolldaten in einer Azure-Tabelle (optional)
So erfassen Sie Daten in einer unterstützten Azure-Tabelle:
Ändern Sie in der Datensammlungsregel
outputStream
:Von:
"outputStream": "[concat('Custom-', parameters('tableName'))]"
An:
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"
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.
Wählen Sie im Event Hub- oder Event Hubs-Namespace im Azure-Portal Access Control (IAM)>Rollenzuweisung hinzufügen aus.
Wählen Sie Azure Event Hubs-Datenempfänger und dann Weiter aus.
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.
Wählen Sie Überprüfen und zuweisen aus, und überprüfen Sie die Details, bevor Sie Ihre Rollenzuweisung speichern.
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:
Geben Sie im Suchfeld des Azure-Portals Vorlage ein, und wählen Sie dann Benutzerdefinierte Vorlage bereitstellen aus.
Wählen Sie Eigene Vorlage im Editor erstellen.
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')]" } } ] }
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:
- Region – Wird basierend auf der ausgewählten Ressourcengruppe automatisch aufgefüllt.
- Ressourcen-ID der Event Hub-Instanz – Siehe Sammeln erforderlicher Informationen.
- Zuordnungsname – Geben Sie der Zuordnung einen Namen.
- Datensammlungsregel-ID – Wird beim Erstellen der Datensammlungsregel generiert.
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:
Navigieren Sie zu Ihrem Arbeitsbereich, und wählen Sie Protokolle aus.
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.
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
- Wenn Sie ein Abonnement zwischen Microsoft Entra-Verzeichnissen übertragen, müssen Sie die unter Bekannte Probleme mit verwalteten Identitäten für Azure-Ressourcen beschriebenen Schritte ausführen, um die Datenerfassung fortzusetzen.
- Sie können Nachrichten von bis zu 64 KB von Event Hubs in Azure Monitor-Protokolle erfassen.
Nächste Schritte
Weitere Informationen zu: