Zelfstudie: Gebeurtenissen van Azure Event Hubs opnemen in Azure Monitor-logboeken (openbare preview)
Azure Event Hubs is een streamingplatform voor big data dat gebeurtenissen van meerdere bronnen verzamelt die moeten worden opgenomen door Azure en externe services. In dit artikel wordt uitgelegd hoe u gegevens rechtstreeks vanuit een Event Hub opneemt in een Log Analytics-werkruimte.
In deze zelfstudie leert u het volgende:
- Een doeltabel maken voor Event Hub-gegevens in uw Log Analytics-werkruimte
- Een eindpunt voor gegevensverzameling maken
- Een regel voor gegevensverzameling maken
- De regelmachtigingen voor gegevensverzameling verlenen aan de Event Hub
- De regel voor gegevensverzameling koppelen aan de Event Hub
Vereisten
Als u gebeurtenissen van Azure Event Hubs naar Azure Monitor-logboeken wilt verzenden, hebt u deze resources nodig, allemaal in dezelfde regio:
- Log Analytics-werkruimte met ten minste inzenderrechten.
- Uw Log Analytics-werkruimte moet worden gekoppeld aan een toegewezen cluster of een toezeggingslaag hebben.
- Event Hubs-naamruimte die openbare netwerktoegang toestaat. Private Link en netwerkbeveiligingsperimeter (NSP) worden momenteel niet ondersteund.
- Event Hub met gebeurtenissen. U kunt gebeurtenissen verzenden naar uw Event Hub door de stappen te volgen in de zelfstudies Voor verzenden en ontvangen van Gebeurtenissen in Azure Event Hubs of door de diagnostische instellingen van Azure-resources te configureren.
Ondersteunde regio’s
Azure Monitor biedt momenteel ondersteuning voor opname vanuit Event Hubs in deze regio's:
Noord- en Zuid-Amerika | Europa | Midden-Oosten | Afrika | Azië en Stille Oceaan |
---|---|---|---|---|
Brazilië - zuid | Frankrijk - centraal | VAE - noord | Zuid-Afrika - noord | Australië - centraal |
Brazilië - zuidoost | Europa - noord | Australië - oost | ||
Canada - midden | Noorwegen - oost | Australië - zuidoost | ||
Canada - oost | Zwitserland - noord | India - centraal | ||
VS - oost | Zwitserland - west | Azië - oost | ||
VS - oost 2 | Verenigd Koninkrijk Zuid | Japan East | ||
VS - zuid-centraal | Verenigd Koninkrijk West | Jio India West | ||
VS - west | Europa -west | Korea - centraal | ||
US - west 3 | Azië - zuidoost |
Vereiste gegevens verzamelen
In de volgende stappen hebt u uw abonnements-id, resourcegroepnaam, werkruimtenaam, resource-id van de werkruimte en resource-id van het Event Hub-exemplaar nodig:
Navigeer naar uw werkruimte in het menu Log Analytics-werkruimten en selecteer Eigenschappen en kopieer uw abonnements-id, resourcegroep en werkruimtenaam. U hebt deze gegevens nodig om resources te maken in deze zelfstudie.
Selecteer JSON om het scherm Resource JSON te openen en kopieer de resource-id van de werkruimte. U hebt de resource-id van de werkruimte nodig om een regel voor gegevensverzameling te maken.
Navigeer naar uw Event Hub-exemplaar, selecteer JSON om het scherm Resource JSON te openen en kopieer de resource-id van het Event Hub-exemplaar. U hebt de resource-id van het Event Hub-exemplaar nodig om de regel voor gegevensverzameling te koppelen aan de Event Hub.
Een doeltabel maken in uw Log Analytics-werkruimte
Voordat u gegevens kunt opnemen, moet u een doeltabel instellen. U kunt gegevens opnemen in aangepaste tabellen en ondersteunde Azure-tabellen.
Ga als volgende te werk om een aangepaste tabel te maken waarin gebeurtenissen moeten worden opgenomen:
Selecteer de knop Cloud Shell en zorg ervoor dat de omgeving is ingesteld op PowerShell.
Voer deze PowerShell-opdracht uit om de tabel te maken en geef de tabelnaam (
<table_name>
) op in de JSON (dat ook met achtervoegsel _CL in het geval van een aangepaste tabel) en stel de<subscription_id>
,<resource_group_name>
,<workspace_name>
en<table_name>
waarden in deInvoke-AzRestMethod -Path
opdracht in:$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
Belangrijk
- Kolomnamen moeten beginnen met een letter en kunnen bestaan uit maximaal 45 alfanumerieke tekens en onderstrepingstekens (
_
). _ResourceId
, ,_ResourceId
id
,_SubscriptionId
, ,TenantId
, ,Type
enTitle
UniqueId
zijn gereserveerde kolomnamen.- Kolomnamen zijn hoofdlettergevoelig. Zorg ervoor dat u het juiste geval gebruikt in de regel voor gegevensverzameling.
Een eindpunt voor gegevensverzameling maken
Als u gegevens wilt verzamelen met een regel voor gegevensverzameling, hebt u een eindpunt voor gegevensverzameling nodig:
Maak een eindpunt voor gegevensverzameling.
Belangrijk
Maak het eindpunt voor gegevensverzameling in dezelfde regio als uw Log Analytics-werkruimte.
Selecteer JSON-weergave in het scherm Overzicht van het eindpunt voor gegevensverzameling.
Kopieer de resource-id voor de regel voor gegevensverzameling. U gebruikt deze informatie in de volgende stap.
Een regel voor gegevensverzameling maken
Azure Monitor maakt gebruik van regels voor gegevensverzameling om te definiëren welke gegevens moeten worden verzameld, hoe deze gegevens moeten worden getransformeerd en waar de gegevens moeten worden verzonden.
Een regel voor gegevensverzameling maken in Azure Portal:
Typ in het zoekvak van de portal de sjabloon en selecteer vervolgens Een aangepaste sjabloon implementeren.
Selecteer Bouw uw eigen sjabloon in de editor.
Plak de Onderstaande Resource Manager-sjabloon in de editor en selecteer Opslaan.
Let op de volgende details in de onderstaande regel voor gegevensverzameling:
identity
- Definieert welk type beheerde identiteit moet worden gebruikt. In ons voorbeeld gebruiken we door het systeem toegewezen identiteit. U kunt ook door de gebruiker toegewezen beheerde identiteit configureren.dataCollectionEndpointId
- Resource-id van het eindpunt voor gegevensverzameling.streamDeclarations
- Definieert welke gegevens moeten worden opgenomen vanuit de Event Hub (binnenkomende gegevens). De stroomdeclaratie kan niet worden gewijzigd.TimeGenerated
- Het tijdstip waarop de gegevens zijn opgenomen van Event Hub naar Azure Monitor-logboeken.RawData
- Hoofdtekst van het evenement. Zie Gebeurtenissen lezen voor meer informatie.Properties
- Gebruikerseigenschappen van de gebeurtenis. Zie Gebeurtenissen lezen voor meer informatie.
datasources
- Hiermee geeft u de Event Hub-consumentengroep en de stroom op waarnaar u de gegevens opneemt.destinations
- Geeft alle bestemmingen op waar de gegevens worden verzonden. U kunt gegevens opnemen in een of meer Log Analytics-werkruimten.dataFlows
- Komt overeen met de stream met de doelwerkruimte en geeft de transformatiequery en de doeltabel op. In ons voorbeeld nemen we gegevens op in de aangepaste tabel die we eerder hebben gemaakt. U kunt ook opnemen in een ondersteunde Azure-tabel.transformKql
- Hiermee geeft u een transformatie op die moet worden toegepast op de binnenkomende gegevens (stroomdeclaratie) voordat deze naar de werkruimte wordt verzonden. In ons voorbeeld hebben we ingesteldtransformKql
source
op , waarmee de gegevens uit de bron op geen enkele manier worden gewijzigd, omdat we binnenkomende gegevens toewijzen aan een aangepaste tabel die we specifiek met het bijbehorende schema hebben gemaakt. Als u gegevens opneemt in een tabel met een ander schema of als u gegevens wilt filteren voordat u gegevens opneemt, definieert u een transformatie voor gegevensverzameling.
{ "$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'))]" } ] } } ] }
Geef in het scherm Aangepaste implementatie een abonnement en resourcegroep op om de regel voor gegevensverzameling op te slaan en geef vervolgens waarden op voor de parameters die zijn gedefinieerd in de sjabloon, waaronder:
- Regio : regio voor de regel voor gegevensverzameling. Automatisch ingevuld op basis van de resourcegroep die u selecteert.
- Naam van regel voor gegevensverzameling: geef de regel een naam.
- Werkruimteresource-id : zie Vereiste gegevens verzamelen.
- Eindpuntresource-id : gegenereerd wanneer u het eindpunt voor gegevensverzameling maakt.
- Tabelnaam : de naam van de doeltabel. In ons voorbeeld en wanneer u een aangepaste tabel gebruikt, moet de tabelnaam eindigen met het achtervoegsel _CL. Als u gegevens opneemt in een Azure-tabel, voert u de tabelnaam in,
Syslog
bijvoorbeeld zonder het achtervoegsel. - Consumentengroep : standaard is de consumentengroep ingesteld op
$Default
. Wijzig indien nodig de waarde in een andere Event Hub-consumentengroep.
Selecteer Beoordelen en maken en vervolgens Maken wanneer u de details bekijkt.
Wanneer de implementatie is voltooid, vouwt u het vak Implementatiedetails uit en selecteert u de regel voor gegevensverzameling om de details ervan weer te geven. Selecteer de JSON-weergave.
Kopieer de resource-id voor de regel voor gegevensverzameling. U gebruikt deze informatie in de volgende stap.
Door de gebruiker toegewezen beheerde identiteit configureren (optioneel)
Als u de regel voor gegevensverzameling wilt configureren ter ondersteuning van door de gebruiker toegewezen identiteit, vervangt u in het bovenstaande voorbeeld:
"identity": {
"type": "systemAssigned"
},
door:
"identity": {
"type": "userAssigned",
"userAssignedIdentities": {
"<identity_resource_Id>": {
}
}
},
Als u de <identity_resource_Id>
waarde wilt vinden, gaat u naar de door de gebruiker toegewezen beheerde identiteitsresource in Azure Portal, selecteert u JSON om het scherm Resource JSON te openen en kopieert u de resource-id van de beheerde identiteit.
Logboekgegevens opnemen in een Azure-tabel (optioneel)
Gegevens opnemen in een ondersteunde Azure-tabel:
Wijzig
outputStream
in de regel voor gegevensverzameling:Van:
"outputStream": "[concat('Custom-', parameters('tableName'))]"
Aan:
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"
Definieer een
transformKql
transformatie waarmee de opgenomen gegevens worden verzonden naar de doelkolommen in de Azure-doeltabel.
De Event Hub toestemming verlenen aan de regel voor het verzamelen van gegevens
Met een beheerde identiteit kunt u elke Event Hub- of Event Hubs-naamruimte machtigen om gebeurtenissen te verzenden naar de regel voor gegevensverzameling en het eindpunt voor gegevensverzameling dat u hebt gemaakt. Wanneer u de machtigingen aan de Event Hubs-naamruimte verleent, nemen alle Event Hubs binnen de naamruimte de machtigingen over.
Selecteer in de Event Hub of Event Hubs-naamruimte in Azure Portal toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Selecteer Azure Event Hubs-gegevensontvanger en selecteer Volgende.
Selecteer Beheerde identiteit voor Toegang toewijzen aan en klik op Leden selecteren. Selecteer de regel voor gegevensverzameling, zoek naar de regel voor gegevensverzameling op naam en klik op Selecteren.
Selecteer Beoordelen en toewijzen en controleer de details voordat u uw roltoewijzing opslaat.
De regel voor gegevensverzameling koppelen aan de Event Hub
De laatste stap is het koppelen van de regel voor gegevensverzameling aan de Event Hub waaruit u gebeurtenissen wilt verzamelen.
U kunt één regel voor gegevensverzameling koppelen aan meerdere Event Hubs die dezelfde consumentengroep delen en gegevens opnemen in dezelfde stroom. U kunt ook een unieke regel voor gegevensverzameling koppelen aan elke Event Hub.
Belangrijk
U moet ten minste één regel voor gegevensverzameling koppelen aan de Event Hub om gegevens op te nemen uit een Event Hub. Wanneer u alle koppelingen voor gegevensverzamelingsregels verwijdert die betrekking hebben op de Event Hub, stopt u met het opnemen van gegevens uit de Event Hub.
Een koppeling voor gegevensverzamelingsregels maken in Azure Portal:
Typ in het zoekvak van Azure Portal de sjabloon en selecteer vervolgens Een aangepaste sjabloon implementeren.
Selecteer Bouw uw eigen sjabloon in de editor.
Plak de Onderstaande Resource Manager-sjabloon in de editor en selecteer Opslaan.
{ "$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')]" } } ] }
Geef in het scherm Aangepaste implementatie een abonnement en resourcegroep op om de koppeling voor gegevensverzamelingsregels op te slaan en geef vervolgens waarden op voor de parameters die zijn gedefinieerd in de sjabloon, waaronder:
- Regio : automatisch ingevuld op basis van de resourcegroep die u selecteert.
- Resource-id van Event Hub-exemplaar: zie Vereiste gegevens verzamelen.
- Naam van koppeling: geef de koppeling een naam.
- Regel-id voor gegevensverzameling: gegenereerd wanneer u de regel voor gegevensverzameling maakt.
Selecteer Beoordelen en maken en vervolgens Maken wanneer u de details bekijkt.
Controleer de doeltabel op opgenomen gebeurtenissen
Nu u de regel voor gegevensverzameling aan uw Event Hub hebt gekoppeld, worden in Azure Monitor-logboeken alle bestaande gebeurtenissen opgenomen waarvan de bewaarperiode niet is verlopen en alle nieuwe gebeurtenissen.
Ga als volgende te werk om uw doeltabel te controleren op opgenomen gebeurtenissen:
Navigeer naar uw werkruimte en selecteer Logboeken.
Schrijf een eenvoudige query in de query-editor en selecteer Uitvoeren:
<table_name>
Als het goed is, ziet u gebeurtenissen uit uw Event Hub.
Resources opschonen
In deze zelfstudie hebt u de volgende resources gemaakt:
- Aangepaste tabel
- Eindpunt voor gegevensverzameling
- Regel voor gegevensverzameling
- Koppeling van regels voor gegevensverzameling
Evalueer of u deze resources nog steeds nodig hebt. Verwijder de resources die u niet afzonderlijk nodig hebt of verwijder al deze resources tegelijk door de resourcegroep te verwijderen. Resources die u verlaat, kunnen u geld kosten.
Als u wilt stoppen met het opnemen van gegevens uit de Event Hub, verwijdert u alle gegevensverzamelingsregelkoppelingen die betrekking hebben op de Event Hub of verwijdert u de regels voor gegevensverzameling zelf. Met deze acties worden ook controlepunten voor Event Hub opnieuw ingesteld.
Bekende problemen en beperkingen
- Als u een abonnement overbrengt tussen Microsoft Entra-mappen, moet u de stappen volgen die worden beschreven in Bekende problemen met beheerde identiteiten voor Azure-resources om gegevens op te nemen.
- U kunt berichten van maximaal 64 KB opnemen van Event Hubs naar Azure Monitor-logboeken.
Volgende stappen
Meer informatie over:
- Een aangepaste tabel maken.
- Maak een eindpunt voor gegevensverzameling.
- Een bestaande regel voor gegevensverzameling bijwerken.