Delen via


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:

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:

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

    Schermopname van het overzichtsscherm van de Log Analytics-werkruimte met abonnements-id, resourcegroepnaam en werkruimtenaam gemarkeerd.

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

    Schermopname van het scherm Resource JSON met de resource-id van de werkruimte gemarkeerd.

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

    Schermopname van het scherm Resource JSON met de Event Hub-resource-id gemarkeerd.

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:

  1. Selecteer de knop Cloud Shell en zorg ervoor dat de omgeving is ingesteld op PowerShell.

    Schermopname die laat zien hoe u Cloud Shell opent.

  2. 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 de Invoke-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, , _ResourceIdid, _SubscriptionId, , TenantId, , Typeen Title UniqueIdzijn 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:

  1. Maak een eindpunt voor gegevensverzameling.

    Belangrijk

    Maak het eindpunt voor gegevensverzameling in dezelfde regio als uw Log Analytics-werkruimte.

  2. Selecteer JSON-weergave in het scherm Overzicht van het eindpunt voor gegevensverzameling.

    Schermopname van het scherm Overzicht van het eindpunt voor gegevensverzameling.

  3. Kopieer de resource-id voor de regel voor gegevensverzameling. U gebruikt deze informatie in de volgende stap.

    Schermopname van de JSON-weergave van het eindpunt voor gegevensverzameling.

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:

  1. Typ in het zoekvak van de portal de sjabloon en selecteer vervolgens Een aangepaste sjabloon implementeren.

    Schermopname van het implementeren van een aangepaste sjabloon.

  2. Selecteer Bouw uw eigen sjabloon in de editor.

    Schermopname van het maken van een sjabloon in de editor.

  3. Plak de Onderstaande Resource Manager-sjabloon in de editor en selecteer Opslaan.

    Schermopname voor het bewerken van een Resource Manager-sjabloon.

    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 ingesteld transformKql sourceop , 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'))]"
                        }
                    ]
                }
            }
        ]
    }
    
  4. 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.

    Schermopname van het scherm Aangepaste sjabloonimplementatie met de implementatiewaarden voor de regel voor gegevensverzameling die in deze zelfstudie is ingesteld.

  5. Selecteer Beoordelen en maken en vervolgens Maken wanneer u de details bekijkt.

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

    Schermopname van het scherm Overzicht van gegevensverzamelingsregel.

  7. Kopieer de resource-id voor de regel voor gegevensverzameling. U gebruikt deze informatie in de volgende stap.

    Schermopname van de JSON-weergave gegevensverzamelingsregel.

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.

Schermopname van het scherm Resource JSON met de resource-id van de beheerde identiteit gemarkeerd.

Logboekgegevens opnemen in een Azure-tabel (optioneel)

Gegevens opnemen in een ondersteunde Azure-tabel:

  1. Wijzig outputStreamin de regel voor gegevensverzameling:

    Van: "outputStream": "[concat('Custom-', parameters('tableName'))]"

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

  2. Definieer een transformKqltransformatie 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.

  1. Selecteer in de Event Hub of Event Hubs-naamruimte in Azure Portal toegangsbeheer (IAM)>Roltoewijzing toevoegen.

    Schermopname van het scherm Toegangsbeheer voor de regel voor gegevensverzameling.

  2. Selecteer Azure Event Hubs-gegevensontvanger en selecteer Volgende.

    Schermopname van het scherm Roltoewijzing toevoegen voor de Event Hub met de rol Azure Event Hubs-gegevensontvanger gemarkeerd.

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

    Schermopname van het toewijzen van toegang tot beheerde identiteiten.

  4. Selecteer Beoordelen en toewijzen en controleer de details voordat u uw roltoewijzing opslaat.

    Schermopname van het tabblad Controleren en toewijzen van het scherm Roltoewijzing toevoegen.

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:

  1. Typ in het zoekvak van Azure Portal de sjabloon en selecteer vervolgens Een aangepaste sjabloon implementeren.

  2. Selecteer Bouw uw eigen sjabloon in de editor.

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

    Schermopname van het scherm Aangepaste sjabloonimplementatie met de implementatiewaarden voor de koppeling voor gegevensverzamelingsregels die in deze zelfstudie zijn ingesteld.

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

  1. Navigeer naar uw werkruimte en selecteer Logboeken.

  2. Schrijf een eenvoudige query in de query-editor en selecteer Uitvoeren:

    <table_name>
    

    Als het goed is, ziet u gebeurtenissen uit uw Event Hub.

Schermopname van de resultaten van een eenvoudige query in een aangepaste tabel. De resultaten bestaan uit gebeurtenissen die zijn opgenomen vanuit een 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

Volgende stappen

Meer informatie over: