Samouczek: pozyskiwanie zdarzeń z usługi Azure Event Hubs do dzienników usługi Azure Monitor (publiczna wersja zapoznawcza)

Azure Event Hubs to platforma przesyłania strumieniowego danych big data, która zbiera zdarzenia z wielu źródeł do pozyskiwania przez platformę Azure i usługi zewnętrzne. W tym artykule wyjaśniono, jak pozyskiwać dane bezpośrednio z centrum zdarzeń do obszaru roboczego usługi Log Analytics.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Tworzenie tabeli docelowej dla danych centrum zdarzeń w obszarze roboczym usługi Log Analytics
  • Tworzenie punktu końcowego zbierania danych
  • Tworzenie reguły zbierania danych
  • Udzielanie uprawnień reguły zbierania danych do centrum zdarzeń
  • Kojarzenie reguły zbierania danych z centrum zdarzeń

Wymagania wstępne

Aby wysyłać zdarzenia z usługi Azure Event Hubs do dzienników usługi Azure Monitor, potrzebne są te zasoby w tym samym regionie:

Obsługiwane regiony

Usługa Azure Monitor obecnie obsługuje pozyskiwanie z usługi Event Hubs w następujących regionach:

Ameryka Północna i Południowa Europa Bliski Wschód Afryka Azja i Pacyfik
Brazylia Południowa Francja Środkowa Północne Zjednoczone Emiraty Arabskie Północna Republika Południowej Afryki Australia Środkowa
Brazylia Południowo–Wschodnia Europa Północna Australia Wschodnia
Kanada Środkowa Norwegia Wschodnia Australia Południowo-Wschodnia
Kanada Wschodnia Szwajcaria Północna Indie Środkowe
East US Szwajcaria Zachodnia Azja Wschodnia
Wschodnie stany USA 2 Południowe Zjednoczone Królestwo Japonia Wschodnia
South Central US Zachodnie Zjednoczone Królestwo Jio India West
Zachodnie stany USA West Europe Korea Środkowa
Zachodnie stany USA 3 Southeast Asia

Zbieranie wymaganych informacji

W kolejnych krokach potrzebujesz identyfikatora subskrypcji, nazwy grupy zasobów, nazwy obszaru roboczego, identyfikatora zasobu obszaru roboczego i identyfikatora zasobu wystąpienia centrum zdarzeń:

  1. Przejdź do obszaru roboczego w menu obszarów roboczych usługi Log Analytics, a następnie wybierz pozycję Właściwości i skopiuj identyfikator subskrypcji, grupę zasobów i nazwę obszaru roboczego. Te szczegóły będą potrzebne do utworzenia zasobów w tym samouczku.

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

  2. Wybierz pozycję JSON, aby otworzyć ekran JSON zasobu i skopiować identyfikator zasobu obszaru roboczego. Aby utworzyć regułę zbierania danych, potrzebny będzie identyfikator zasobu obszaru roboczego.

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

  3. Przejdź do wystąpienia centrum zdarzeń, wybierz pozycję JSON, aby otworzyć ekran JSON zasobu i skopiować identyfikator zasobu wystąpienia centrum zdarzeń. Identyfikator zasobu wystąpienia centrum zdarzeń będzie potrzebny do skojarzenia reguły zbierania danych z centrum zdarzeń.

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

Tworzenie tabeli docelowej w obszarze roboczym usługi Log Analytics

Przed pozyskiwaniem danych należy skonfigurować tabelę docelową. Dane można pozyskiwać do tabel niestandardowych i obsługiwanych tabel platformy Azure.

Aby utworzyć tabelę niestandardową do pozyskiwania zdarzeń, w witrynie Azure Portal:

  1. Wybierz przycisk Cloud Shell i upewnij się, że środowisko jest ustawione na program PowerShell.

    Screenshot showing how to open Cloud Shell.

  2. Uruchom to polecenie programu PowerShell, aby utworzyć tabelę, podając nazwę tabeli (<table_name>) w formacie JSON (która również ma sufiks _CL w przypadku tabeli niestandardowej) i ustawiając <subscription_id>wartości , <resource_group_name>, <workspace_name>i <table_name> w poleceniu Invoke-AzRestMethod -Path :

    $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
    

Ważne

  • Nazwy kolumn muszą zaczynać się literą i mogą składać się z maksymalnie 45 znaków alfanumerycznych i podkreśleń (_).
  • _ResourceId, , id_SubscriptionIdTenantIdType_ResourceIdUniqueId, i Title są zastrzeżonymi nazwami kolumn.
  • W nazwach kolumn jest rozróżniana wielkość liter. Pamiętaj, aby użyć poprawnego przypadku w regule zbierania danych.

Tworzenie punktu końcowego zbierania danych

Aby zbierać dane za pomocą reguły zbierania danych, potrzebny jest punkt końcowy zbierania danych:

  1. Utwórz punkt końcowy zbierania danych.

    Ważne

    Utwórz punkt końcowy zbierania danych w tym samym regionie co obszar roboczy usługi Log Analytics.

  2. Na ekranie Przegląd punktu końcowego zbierania danych wybierz pozycję Widok JSON.

    Screenshot that shows the data collection endpoint Overview screen.

  3. Skopiuj identyfikator zasobu dla reguły zbierania danych. Te informacje będą używane w następnym kroku.

    Screenshot that shows the data collection endpoint JSON view.

Tworzenie reguły zbierania danych

Usługa Azure Monitor używa reguł zbierania danych do definiowania, które dane mają być zbierane, jak przekształcać te dane oraz gdzie wysyłać dane.

Aby utworzyć regułę zbierania danych w witrynie Azure Portal:

  1. W polu wyszukiwania portalu wpisz szablon, a następnie wybierz pozycję Wdróż szablon niestandardowy.

    Screenshot to deploy custom template.

  2. Wybierz pozycję Utwórz własny szablon w edytorze.

    Screenshot to build template in the editor.

  3. Wklej poniższy szablon usługi Resource Manager do edytora, a następnie wybierz pozycję Zapisz.

    Screenshot to edit Resource Manager template.

    Zwróć uwagę na następujące szczegóły w poniższej regule zbierania danych:

    • identity— Określa typ tożsamości zarządzanej do użycia. W naszym przykładzie używamy tożsamości przypisanej przez system. Można również skonfigurować tożsamość zarządzaną przypisaną przez użytkownika.

    • dataCollectionEndpointId — Identyfikator zasobu punktu końcowego zbierania danych.

    • streamDeclarations - Definiuje dane do pozyskiwania z centrum zdarzeń (dane przychodzące). Nie można zmodyfikować deklaracji strumienia.

      • TimeGenerated — czas pozyskiwania danych z centrum zdarzeń do dzienników usługi Azure Monitor.
      • RawData - Treść zdarzenia. Aby uzyskać więcej informacji, zobacz Odczyt zdarzeń.
      • Properties - Właściwości użytkownika ze zdarzenia. Aby uzyskać więcej informacji, zobacz Odczyt zdarzeń.
    • datasources- Określa grupę odbiorców centrum zdarzeń i strumień, do którego pozyskasz dane.

    • destinations - Określa wszystkie miejsca docelowe, w których będą wysyłane dane. Dane można pozyskiwać do co najmniej jednego obszaru roboczego usługi Log Analytics.

    • dataFlows - Pasuje do strumienia z docelowym obszarem roboczym i określa zapytanie przekształcenia i tabelę docelową. W naszym przykładzie pozyskujemy dane do utworzonej wcześniej tabeli niestandardowej. Możesz również pozyskać do obsługiwanej tabeli platformy Azure.

    • transformKql — Określa przekształcenie, które ma zostać zastosowane do danych przychodzących (deklaracja strumienia) przed wysłaniem ich do obszaru roboczego. W naszym przykładzie ustawiliśmy wartość transformKqlsource, która nie modyfikuje danych ze źródła w żaden sposób, ponieważ mapujemy dane przychodzące na tabelę niestandardową, która została utworzona specjalnie z odpowiednim schematem. Jeśli zbierasz dane do tabeli z innym schematem lub filtrujesz dane przed pozyskiwaniem, zdefiniuj przekształcenie zbierania danych.

    {
        "$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. Na ekranie Wdrożenie niestandardowe określ subskrypcję i grupę zasobów do przechowywania reguły zbierania danych, a następnie podaj wartości parametrów zdefiniowanych w szablonie, w tym:

    • Region — region reguły zbierania danych. Wypełnione automatycznie na podstawie wybranej grupy zasobów.
    • Nazwa reguły zbierania danych — nadaj regule nazwę.
    • Identyfikator zasobu obszaru roboczego — zobacz Zbieranie wymaganych informacji.
    • Identyfikator zasobu punktu końcowego — generowany podczas tworzenia punktu końcowego zbierania danych.
    • Nazwa tabeli — nazwa tabeli docelowej. W naszym przykładzie i za każdym razem, gdy używasz tabeli niestandardowej, nazwa tabeli musi kończyć się sufiksem _CL. Jeśli pozyskujesz dane do tabeli platformy Azure, wprowadź nazwę tabeli — na przykład Syslog — bez sufiksu.
    • Grupa odbiorców — domyślnie grupa odbiorców jest ustawiona na $Defaultwartość . W razie potrzeby zmień wartość na inną grupę odbiorców centrum zdarzeń.

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

  5. Wybierz pozycję Przejrzyj i utwórz , a następnie pozycję Utwórz po przejrzeniu szczegółów.

  6. Po zakończeniu wdrażania rozwiń pole Szczegóły wdrożenia i wybierz regułę zbierania danych, aby wyświetlić jego szczegóły. Wybierz pozycję Widok JSON.

    Screenshot that shows the Data Collection Rule Overview screen.

  7. Skopiuj identyfikator zasobu dla reguły zbierania danych. Te informacje będą używane w następnym kroku.

    Screenshot that shows the data collection rule JSON view.

Konfigurowanie tożsamości zarządzanej przypisanej przez użytkownika (opcjonalnie)

Aby skonfigurować regułę zbierania danych w celu obsługi tożsamości przypisanej przez użytkownika, w powyższym przykładzie zastąp:

    "identity": {
                        "type": "systemAssigned"
        },

tym:

    "identity": {
            "type": "userAssigned",
            "userAssignedIdentities": {
                "<identity_resource_Id>": {
                }
            }
        },

Aby znaleźć <identity_resource_Id> wartość, przejdź do zasobu tożsamości zarządzanej przypisanej przez użytkownika w witrynie Azure Portal, wybierz pozycję JSON, aby otworzyć ekran JSON zasobu i skopiować identyfikator zasobu tożsamości zarządzanej.

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

Pozyskiwanie danych dziennika do tabeli platformy Azure (opcjonalnie)

Aby pozyskać dane do obsługiwanej tabeli platformy Azure:

  1. W regule zbierania danych zmień wartość outputStream:

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

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

  2. W transformKqlpliku zdefiniuj przekształcenie , które wysyła pozyskane dane do kolumn docelowych w docelowej tabeli platformy Azure.

Udzielanie uprawnień centrum zdarzeń do reguły zbierania danych

Za pomocą tożsamości zarządzanej można nadać dowolne centrum zdarzeń lub przestrzeni nazw usługi Event Hubs uprawnienie do wysyłania zdarzeń do utworzonego punktu końcowego zbierania danych i zbierania danych. Po udzieleniu uprawnień do przestrzeni nazw usługi Event Hubs wszystkie centra zdarzeń w przestrzeni nazw dziedziczą uprawnienia.

  1. W centrum zdarzeń lub przestrzeni nazw usługi Event Hubs w witrynie Azure Portal wybierz pozycję Kontrola dostępu (IAM)>Dodaj przypisanie roli.

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

  2. Wybierz pozycję Odbiornik danych usługi Azure Event Hubs i wybierz pozycję Dalej.

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

  3. Wybierz pozycję Tożsamość zarządzana w polu Przypisz dostęp do i kliknij pozycję Wybierz członków. Wybierz regułę zbierania danych, wyszukaj regułę zbierania danych według nazwy, a następnie kliknij pozycję Wybierz.

    Screenshot that shows how to assign access to managed identity.

  4. Wybierz pozycję Przejrzyj i przypisz i zweryfikuj szczegóły przed zapisaniem przypisania roli.

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

Kojarzenie reguły zbierania danych z centrum zdarzeń

Ostatnim krokiem jest skojarzenie reguły zbierania danych z centrum zdarzeń, z którego chcesz zbierać zdarzenia.

Można skojarzyć pojedynczą regułę zbierania danych z wieloma centrami zdarzeń, które współużytkować tę samą grupę odbiorców i pozyskiwać dane do tego samego strumienia. Alternatywnie można skojarzyć unikatową regułę zbierania danych z każdym centrum zdarzeń.

Ważne

Do centrum zdarzeń należy skojarzyć co najmniej jedną regułę zbierania danych w celu pozyskiwania danych z centrum zdarzeń. Usunięcie wszystkich skojarzeń reguł zbierania danych powiązanych z centrum zdarzeń spowoduje zatrzymanie pozyskiwania danych z centrum zdarzeń.

Aby utworzyć skojarzenie reguły zbierania danych w witrynie Azure Portal:

  1. W polu wyszukiwania witryny Azure Portal wpisz szablon, a następnie wybierz pozycję Wdróż szablon niestandardowy.

  2. Wybierz pozycję Utwórz własny szablon w edytorze.

  3. Wklej poniższy szablon usługi Resource Manager do edytora, a następnie wybierz pozycję Zapisz.

    {
      "$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. Na ekranie Wdrożenie niestandardowe określ subskrypcję i grupę zasobów do przechowywania skojarzenia reguły zbierania danych, a następnie podaj wartości parametrów zdefiniowanych w szablonie, w tym:

    • Region — wypełniany automatycznie na podstawie wybranej grupy zasobów.
    • Identyfikator zasobu wystąpienia centrum zdarzeń — zobacz Zbieranie wymaganych informacji.
    • Nazwa skojarzenia — nadaj skojarzeniu nazwę.
    • Identyfikator reguły zbierania danych — generowany podczas tworzenia reguły zbierania danych.

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

  5. Wybierz pozycję Przejrzyj i utwórz , a następnie pozycję Utwórz po przejrzeniu szczegółów.

Sprawdzanie tabeli docelowej pod kątem pozyskanych zdarzeń

Po skojarzeniu reguły zbierania danych z centrum zdarzeń dzienniki usługi Azure Monitor pozyskują wszystkie istniejące zdarzenia, których okres przechowywania nie wygasł i wszystkie nowe zdarzenia.

Aby sprawdzić tabelę docelową pod kątem pozyskanych zdarzeń:

  1. Przejdź do obszaru roboczego i wybierz pozycję Dzienniki.

  2. Napisz proste zapytanie w edytorze zapytań i wybierz pozycję Uruchom:

    <table_name>
    

    Zdarzenia powinny być widoczne z centrum zdarzeń.

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

Czyszczenie zasobów

W tym samouczku utworzono następujące zasoby:

  • Tabela niestandardowa
  • Punkt końcowy zbierania danych
  • Reguła zbierania danych
  • Skojarzenie reguły zbierania danych

Oceń, czy te zasoby są nadal potrzebne. Usuń zasoby, których nie potrzebujesz pojedynczo lub usuń wszystkie te zasoby jednocześnie, usuwając grupę zasobów. Zasoby, które opuszczasz, mogą kosztować Pieniądze.

Aby zatrzymać pozyskiwanie danych z centrum zdarzeń, usuń wszystkie skojarzenia reguł zbierania danych powiązane z centrum zdarzeń lub usuń same reguły zbierania danych. Te akcje umożliwiają również zresetowanie punktów kontrolnych centrum zdarzeń.

Znane problemy i ograniczenia

  • Jeśli przeniesiesz subskrypcję między katalogami firmy Microsoft Entra, musisz wykonać kroki opisane w temacie Znane problemy z tożsamościami zarządzanymi dla zasobów platformy Azure, aby kontynuować pozyskiwanie danych.
  • Komunikaty można pozyskiwać maksymalnie 64 KB z usługi Event Hubs do dzienników usługi Azure Monitor.

Następne kroki

Dowiedz się więcej o: