Dela via


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:

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:

  1. 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.

    Skärmbild som visar översiktsskärmen för Log Analytics-arbetsytan med prenumerations-ID, resursgruppsnamn och arbetsytenamn markerat.

  2. 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.

    Skärmbild som visar skärmen Resurs-JSON med arbetsytans resurs-ID markerat.

  3. 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.

    Skärmbild som visar skärmen Resurs-JSON med händelsehubbens resurs-ID markerat.

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:

  1. Välj Cloud Shell-knappen och se till att miljön är inställd på PowerShell.

    Skärmbild som visar hur du öppnar Cloud Shell.

  2. 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> i Invoke-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, , UniqueIdoch Title ä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:

  1. Skapa en slutpunkt för datainsamling.

    Viktigt!

    Skapa datainsamlingens slutpunkt i samma region som din Log Analytics-arbetsyta.

  2. På datainsamlingsslutpunktens översiktsskärm väljer du JSON-vy.

    Skärmbild som visar skärmen Översikt över datainsamlingens slutpunkt.

  3. Kopiera resurs-ID:t för datainsamlingsregeln. Du använder den här informationen i nästa steg.

    Skärmbild som visar JSON-vyn för datainsamlingens slutpunkt.

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:

  1. I portalens sökruta skriver du in mallen och väljer sedan Distribuera en anpassad mall.

    Skärmbild för att distribuera en anpassad mall.

  2. Välj alternativet för att skapa din egen mall i redigeringsprogrammet.

    Skärmbild för att skapa mallen i redigeraren.

  3. Klistra in Resource Manager-mallen nedan i redigeraren och välj sedan Spara.

    Skärmbild för att redigera Resource Manager-mallen.

    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 anger transformKql vi till source, 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'))]"
                        }
                    ]
                }
            }
        ]
    }
    
  4. 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.

    Skärmbild som visar skärmen Distribution av anpassad mall med distributionsvärdena för datainsamlingsregeln som konfigurerats i den här självstudien.

  5. Välj Granska + skapa och sedan Skapa när du granskar informationen.

  6. När distributionen är klar expanderar du rutan Distributionsinformation och väljer din datainsamlingsregel för att visa dess information. Välj JSON-vy.

    Skärmbild som visar skärmen Översikt över datainsamlingsregel.

  7. Kopiera resurs-ID:t för datainsamlingsregeln. Du använder den här informationen i nästa steg.

    Skärmbild som visar JSON-vyn för datainsamlingsregeln.

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.

Skärmbild som visar skärmen Resurs-JSON med resurs-ID för hanterad identitet markerat.

Mata in loggdata i en Azure-tabell (valfritt)

Så här matar du in data i en Azure-tabell som stöds:

  1. I datainsamlingsregeln ändrar du outputStream:

    Från: "outputStream": "[concat('Custom-', parameters('tableName'))]"

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

  2. I transformKqldefinierar 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.

  1. Från händelsehubben eller Event Hubs-namnområdet i Azure Portal väljer du Åtkomstkontroll (IAM)>Lägg till rolltilldelning.

    Skärmbild som visar skärmen Åtkomstkontroll för datainsamlingsregeln.

  2. Välj Azure Event Hubs Data Receiver och välj Nästa.

    Skärmbild som visar skärmen Lägg till rolltilldelning för händelsehubben med Azure Event Hubs Data Receiver-rollen markerad.

  3. 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.

    Skärmbild som visar hur du tilldelar åtkomst till hanterad identitet.

  4. Välj Granska + tilldela och verifiera informationen innan du sparar rolltilldelningen.

    Skärmbild som visar fliken Granska och tilldela på skärmen Lägg till rolltilldelning.

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:

  1. I sökrutan för Azure Portal skriver du in mallen och väljer sedan Distribuera en anpassad mall.

  2. Välj alternativet för att skapa din egen mall i redigeringsprogrammet.

  3. 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')]"
          }
        }
      ]
    }
    
  4. 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:

    Skärmbild som visar skärmen Distribution av anpassad mall med distributionsvärdena för regelassociationen för datainsamling som konfigurerats i den här självstudien.

  5. 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:

  1. Gå till din arbetsyta och välj Loggar.

  2. 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.

Skärmbild som visar resultatet av en enkel fråga i en anpassad tabell. Resultatet består av händelser som matas in från en händelsehubb.

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

Nästa steg

Läs mer om att: