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 dessa resurser i samma region:

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 Australien, sydöstra
Kanada, östra 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 Indien, västra
USA, västra Europa, västra Sydkorea, centrala
USA, västra 3 Sydostasien

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.

    Screenshot showing Log Analytics workspace overview screen with subscription ID, resource group name, and workspace name highlighted.

  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.

    Screenshot showing the Resource JSON screen with the workspace resource ID highlighted.

  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.

    Screenshot showing the Resource JSON screen with the event hub resource ID highlighted.

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.

Så här skapar du en anpassad tabell som du kan mata in händelser i i Azure-portalen:

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

    Screenshot showing how to open 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.

    Screenshot that shows the data collection endpoint Overview screen.

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

    Screenshot that shows the data collection endpoint JSON view.

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 regel för datainsamling i Azure-portalen:

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

    Screenshot to deploy custom template.

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

    Screenshot to build template in the editor.

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

    Screenshot to edit Resource Manager template.

    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.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule set up in this tutorial.

  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.

    Screenshot that shows the Data Collection Rule Overview screen.

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

    Screenshot that shows the data collection rule JSON view.

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 din användartilldelade hanterade identitetsresurs i Azure-portalen, välja JSON för att öppna skärmen Resurs-JSON och kopiera den hanterade identitetens resurs-ID.

Screenshot showing Resource JSON screen with the managed identity resource ID highlighted.

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-portalen väljer du Åtkomstkontroll (IAM)>Lägg till rolltilldelning.

    Screenshot that shows the Access control screen for the data collection rule.

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

    Screenshot that shows the Add Role Assignment screen for the event hub with the Azure Event Hubs Data Receiver role highlighted.

  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.

    Screenshot that shows how to assign access to managed identity.

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

    Screenshot that shows the Review and Assign tab of the Add Role Assignment screen.

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-portalen:

  1. I sökrutan i Azure-portalen 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:

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule association set up in this tutorial.

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

Kontrollera måltabellen för inmatade händelser

Nu när du har associerat datainsamlingsregeln med händelsehubben matar Azure Monitor-loggar in alla befintliga händelser vars 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.

Screenshot showing the results of a simple query on a custom table. The results consist of events ingested from an event hub.

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: