Självstudie: Mata in händelser från Azure Event Hubs i Azure Monitor-loggar (offentlig förhandsversion)
Azure Event Hubs är en plattform för stordataströmning som samlar in händelser från flera källor som ska matas in av Azure och externa tjänster. Den här artikeln beskriver hur du matar in data direkt från en händelsehubb till en Log Analytics-arbetsyta.
I den här självstudien lär du dig att:
- Skapa en måltabell för händelsehubbdata på Log Analytics-arbetsytan
- Skapa en slutpunkt för datainsamling
- Skapa en datainsamlingsregel
- Bevilja behörigheter för datainsamlingsregeln till händelsehubben
- Associera datainsamlingsregeln med händelsehubben
Förutsättningar
Om du vill skicka händelser från Azure Event Hubs till Azure Monitor-loggar behöver du följande resurser:
Log Analytics-arbetsyta där du har minst deltagarbehörighet.
Din Log Analytics-arbetsyta måste vara länkad till ett dedikerat kluster eller ha en åtagandenivå.
Event Hubs-namnrymd som tillåter åtkomst till offentligt nätverk. Om åtkomsten till det offentliga nätverket är inaktiverad kontrollerar du att "Tillåt betrodda Microsoft-tjänster kringgå den här brandväggen" är inställt på "Ja".
Händelsehubb med händelser. Du kan skicka händelser till din händelsehubb genom att följa stegen i självstudierna Skicka och ta emot händelser i Azure Event Hubs eller genom att konfigurera diagnostikinställningarna för Azure-resurser.
Regioner som stöds
Azure Monitor stöder för närvarande inmatning från Event Hubs i följande regioner:
Nord- och Sydamerika | Europa | Mellanöstern | Afrika | Asien och stillahavsområdet |
---|---|---|---|---|
Brasilien, södra | Frankrike, centrala | Förenade Arabemiraten, norra | Sydafrika, norra | Australien, centrala |
Brasilien, sydöstra | Europa, norra | Australien, östra | ||
Kanada, centrala | Norge, östra | Sydöstra Australien | ||
Östra Kanada | Schweiz, norra | Indien, centrala | ||
East US | Schweiz, västra | Asien, östra | ||
USA, östra 2 | Södra Storbritannien | Japan, östra | ||
USA, södra centrala | Storbritannien, västra | Jio Västra Indien | ||
Västra USA | Västeuropa | Sydkorea, centrala | ||
USA, västra 3 | Sydostasien |
Du måste skapa din datainsamlingsregelassociation (DCRA) i samma region som händelsehubben. Log Analytics-arbetsytan kan finnas i vilken region som helst, men datainsamlingsregeln (DCR) och datainsamlingsslutpunkten (DCE) måste finnas i samma region som Log Analytics-arbetsytan.
För minsta svarstid rekommenderar vi att du placerar alla resurser i samma region.
Samla in nödvändig information
Du behöver ditt prenumerations-ID, resursgruppsnamn, arbetsytenamn, resurs-ID för arbetsyta och resurs-ID för händelsehubben i följande steg:
Gå till din arbetsyta på menyn Log Analytics-arbetsytor och välj Egenskaper och kopiera ditt prenumerations-ID, resursgrupp och arbetsytenamn. Du behöver den här informationen för att skapa resurser i den här självstudien.
Välj JSON för att öppna skärmen Resurs-JSON och kopiera arbetsytans resurs-ID. Du behöver arbetsytans resurs-ID för att skapa en datainsamlingsregel.
Gå till händelsehubbens instans, välj JSON för att öppna skärmen Resurs-JSON och kopiera händelsehubbens resurs-ID. Du behöver händelsehubbens resurs-ID för att associera datainsamlingsregeln med händelsehubben.
Skapa en måltabell på Log Analytics-arbetsytan
Innan du kan mata in data måste du konfigurera en måltabell. Du kan mata in data i anpassade tabeller och Azure-tabeller som stöds.
Om du vill skapa en anpassad tabell som händelser ska matas in i i Azure Portal:
Välj Cloud Shell-knappen och se till att miljön är inställd på PowerShell.
Kör det här PowerShell-kommandot för att skapa tabellen, ange tabellnamnet (
<table_name>
) i JSON (det med suffixet _CL i händelse av anpassad tabell) och ange<subscription_id>
värdena ,<resource_group_name>
,<workspace_name>
och<table_name>
iInvoke-AzRestMethod -Path
kommandot :$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
Viktigt!
- Kolumnnamn måste börja med en bokstav och kan bestå av upp till 45 alfanumeriska tecken och understreck (
_
). _ResourceId
,id
,_ResourceId
,_SubscriptionId
,TenantId
,Type
, ,UniqueId
ochTitle
är reserverade kolumnnamn.- Kolumnnamn är skiftlägeskänsliga. Se till att använda rätt fall i datainsamlingsregeln.
Skapa en slutpunkt för datainsamling
Om du vill samla in data med en datainsamlingsregel behöver du en slutpunkt för datainsamling:
Skapa en slutpunkt för datainsamling.
Viktigt!
Skapa datainsamlingens slutpunkt i samma region som din Log Analytics-arbetsyta.
På datainsamlingsslutpunktens översiktsskärm väljer du JSON-vy.
Kopiera resurs-ID:t för datainsamlingsregeln. Du använder den här informationen i nästa steg.
Skapa en datainsamlingsregel
Azure Monitor använder datainsamlingsregler för att definiera vilka data som ska samlas in, hur dessa data ska transformeras och var data ska skickas.
Så här skapar du en datainsamlingsregel i Azure Portal:
I portalens sökruta skriver du in mallen och väljer sedan Distribuera en anpassad mall.
Välj alternativet för att skapa din egen mall i redigeringsprogrammet.
Klistra in Resource Manager-mallen nedan i redigeraren och välj sedan Spara.
Observera följande information i datainsamlingsregeln nedan:
identity
– Definierar vilken typ av hanterad identitet som ska användas. I vårt exempel använder vi systemtilldelad identitet. Du kan också konfigurera användartilldelad hanterad identitet.dataCollectionEndpointId
– Resurs-ID för datainsamlingens slutpunkt.streamDeclarations
– Definierar vilka data som ska matas in från händelsehubben (inkommande data). Det går inte att ändra strömdeklarationen.TimeGenerated
– Den tid då data matades in från händelsehubben till Azure Monitor-loggar.RawData
- Händelsens brödtext. Mer information finns i Läsa händelser.Properties
– Användaregenskaper från händelsen. Mer information finns i Läsa händelser.
datasources
– Anger händelsehubbens konsumentgrupp och dataströmmen som du matar in data till.destinations
– Anger alla mål där data ska skickas. Du kan mata in data till en eller flera Log Analytics-arbetsytor.dataFlows
– Matchar strömmen med målarbetsytan och anger transformeringsfrågan och måltabellen. I vårt exempel matar vi in data till den anpassade tabell som vi skapade tidigare. Du kan också mata in i en Azure-tabell som stöds.transformKql
– Anger en transformering som ska tillämpas på inkommande data (strömdeklaration) innan den skickas till arbetsytan. I vårt exempel angertransformKql
vi tillsource
, som inte ändrar data från källan på något sätt, eftersom vi mappar inkommande data till en anpassad tabell som vi har skapat specifikt med motsvarande schema. Om du matar in data till en tabell med ett annat schema eller filtrerar data före inmatning definierar du en datainsamlingstransformering.
{ "$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'))]" } ] } } ] }
På skärmen Anpassad distribution anger du en prenumerations- och resursgrupp för att lagra datainsamlingsregeln och anger sedan värden för de parametrar som definierats i mallen, inklusive:
- Region – Region för datainsamlingsregeln. Fylls i automatiskt baserat på den resursgrupp som du väljer.
- Namn på datainsamlingsregel – Ge regeln ett namn.
- Resurs-ID för arbetsyta – se Samla in nödvändig information.
- Slutpunktsresurs-ID – Genereras när du skapar datainsamlingens slutpunkt.
- Tabellnamn – namnet på måltabellen. I vårt exempel och när du använder en anpassad tabell måste tabellnamnet sluta med suffixet _CL. Om du matar in data till en Azure-tabell anger du tabellnamnet – till exempel
Syslog
– utan suffixet. - Konsumentgrupp – Som standard är konsumentgruppen inställd på
$Default
. Om det behövs ändrar du värdet till en annan händelsehubbkonsumentgrupp.
Välj Granska + skapa och sedan Skapa när du granskar informationen.
När distributionen är klar expanderar du rutan Distributionsinformation och väljer din datainsamlingsregel för att visa dess information. Välj JSON-vy.
Kopiera resurs-ID:t för datainsamlingsregeln. Du använder den här informationen i nästa steg.
Konfigurera användartilldelad hanterad identitet (valfritt)
Om du vill konfigurera datainsamlingsregeln för att stödja användartilldelad identitet ersätter du i exemplet ovan:
"identity": {
"type": "systemAssigned"
},
med:
"identity": {
"type": "userAssigned",
"userAssignedIdentities": {
"<identity_resource_Id>": {
}
}
},
Du hittar <identity_resource_Id>
värdet genom att gå till den användartilldelade hanterade identitetsresursen i Azure Portal, välja JSON för att öppna skärmen Resurs-JSON och kopiera den hanterade identitetens resurs-ID.
Mata in loggdata i en Azure-tabell (valfritt)
Så här matar du in data i en Azure-tabell som stöds:
I datainsamlingsregeln ändrar du
outputStream
:Från:
"outputStream": "[concat('Custom-', parameters('tableName'))]"
Till:
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"
I
transformKql
definierar du en transformering som skickar inmatade data till målkolumnerna i Azure-måltabellen.
Ge händelsehubben behörighet till datainsamlingsregeln
Med hanterad identitet kan du ge valfri händelsehubb eller Event Hubs-namnrymd behörighet att skicka händelser till datainsamlingsregeln och slutpunkten för datainsamling som du skapade. När du beviljar behörigheterna till Event Hubs-namnområdet ärver alla händelsehubbar i namnområdet behörigheterna.
Från händelsehubben eller Event Hubs-namnområdet i Azure Portal väljer du Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
Välj Azure Event Hubs Data Receiver och välj Nästa.
Välj Hanterad identitet för Tilldela åtkomst till och klicka på Välj medlemmar. Välj Datainsamlingsregel, sök efter datainsamlingsregeln efter namn och klicka på Välj.
Välj Granska + tilldela och verifiera informationen innan du sparar rolltilldelningen.
Associera datainsamlingsregeln med händelsehubben
Det sista steget är att associera datainsamlingsregeln med den händelsehubb som du vill samla in händelser från.
Du kan associera en enskild datainsamlingsregel med flera händelsehubbar som delar samma konsumentgrupp och mata in data till samma dataström. Du kan också associera en unik datainsamlingsregel till varje händelsehubb.
Viktigt!
Du måste associera minst en datainsamlingsregel till händelsehubben för att mata in data från en händelsehubb. När du tar bort alla regelassociationer för datainsamling som är relaterade till händelsehubben slutar du mata in data från händelsehubben.
Så här skapar du en regelassociation för datainsamling i Azure Portal:
I sökrutan för Azure Portal skriver du in mallen och väljer sedan Distribuera en anpassad mall.
Välj alternativet för att skapa din egen mall i redigeringsprogrammet.
Klistra in Resource Manager-mallen nedan i redigeraren och välj sedan Spara.
{ "$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')]" } } ] }
På skärmen Anpassad distribution anger du en prenumerations- och resursgrupp för att lagra regelassociationen för datainsamling och anger sedan värden för de parametrar som definierats i mallen, inklusive:
- Region – Fylls i automatiskt baserat på den resursgrupp som du väljer.
- Resurs-ID för Event Hub-instans – Se Samla in nödvändig information.
- Associationsnamn – Ge associationen ett namn.
- Regel-ID för datainsamling – Genereras när du skapar datainsamlingsregeln.
Välj Granska + skapa och sedan Skapa när du granskar informationen.
Kontrollera måltabellen för inmatade händelser
Azure Monitor-loggar matar in alla händelser som finns i händelsehubben vid tidpunkten för DCRA-skapandet, förutsatt att deras kvarhållningsperiod inte har upphört att gälla och alla nya händelser.
Så här kontrollerar du måltabellen för inmatade händelser:
Gå till din arbetsyta och välj Loggar.
Skriv en enkel fråga i frågeredigeraren och välj Kör:
<table_name>
Du bör se händelser från händelsehubben.
Rensa resurser
I den här självstudien skapade du följande resurser:
- Anpassad tabell
- Slutpunkt för datainsamling
- Datainsamlingsregel
- Regelassociation för datainsamling
Utvärdera om du fortfarande behöver dessa resurser. Ta bort de resurser som du inte behöver individuellt eller ta bort alla dessa resurser samtidigt genom att ta bort resursgruppen. Resurser som du lämnar igång kan kosta pengar.
Om du vill sluta mata in data från händelsehubben tar du bort alla regelassociationer för datainsamling som är relaterade till händelsehubben eller tar bort själva reglerna för datainsamling. Dessa åtgärder återställer även kontrollpunkter för händelsehubben.
Kända problem och begränsningar
- Om du överför en prenumeration mellan Microsoft Entra-kataloger måste du följa stegen som beskrivs i Kända problem med hanterade identiteter för Azure-resurser för att fortsätta mata in data.
- Du kan mata in meddelanden på upp till 64 kB från Event Hubs till Azure Monitor-loggar.
Nästa steg
Läs mer om att:
- Skapa en anpassad tabell.
- Skapa en slutpunkt för datainsamling.
- Uppdatera en befintlig datainsamlingsregel.