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
Do wysyłania zdarzeń z usługi Azure Event Hubs do dzienników usługi Azure Monitor potrzebne są następujące zasoby:
Obszar roboczy usługi Log Analytics, w którym masz co najmniej prawa współautora.
Obszar roboczy usługi Log Analytics musi być połączony z dedykowanym klastrem lub mieć warstwę zobowiązania.
Przestrzeń nazw usługi Event Hubs, która zezwala na dostęp do sieci publicznej. Jeśli dostęp do sieci publicznej jest wyłączony, upewnij się, że opcja "Zezwalaj na obejście tej zapory przez zaufane usługi firmy Microsoft" ma wartość "Tak".
Centrum zdarzeń ze zdarzeniami. Zdarzenia można wysyłać do centrum zdarzeń, wykonując kroki opisane w samouczkach wysyłanie i odbieranie zdarzeń w usłudze Azure Event Hubs lub konfigurowanie ustawień diagnostycznych zasobów platformy Azure.
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 | Indie Zachodnie (Jio) | ||
Zachodnie stany USA | West Europe | Korea Środkowa | ||
Zachodnie stany USA 3 | Southeast Asia |
Musisz utworzyć skojarzenie reguły zbierania danych (DCRA) w tym samym regionie co centrum zdarzeń. Obszar roboczy usługi Log Analytics może znajdować się w dowolnym regionie, ale reguła zbierania danych (DCR) i punkt końcowy zbierania danych (DCE) muszą znajdować się w tym samym regionie co obszar roboczy usługi Log Analytics.
W przypadku minimalnych opóźnień zalecamy umieszczenie wszystkich zasobów w tym samym regionie.
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ń:
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.
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.
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ń.
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:
Wybierz przycisk Cloud Shell i upewnij się, że środowisko jest ustawione na program PowerShell.
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 poleceniuInvoke-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
_SubscriptionId
TenantId
Type
_ResourceId
UniqueId
, iTitle
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:
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.
Na ekranie Przegląd punktu końcowego zbierania danych wybierz pozycję Widok JSON.
Skopiuj identyfikator zasobu dla reguły zbierania danych. Te informacje będą używane w następnym kroku.
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:
W polu wyszukiwania portalu wpisz szablon, a następnie wybierz pozycję Wdróż szablon niestandardowy.
Wybierz pozycję Utwórz własny szablon w edytorze.
Wklej poniższy szablon usługi Resource Manager do edytora, a następnie wybierz pozycję Zapisz.
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śćtransformKql
source
, 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'))]" } ] } } ] }
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
$Default
wartość . W razie potrzeby zmień wartość na inną grupę odbiorców centrum zdarzeń.
Wybierz pozycję Przejrzyj i utwórz , a następnie pozycję Utwórz po przejrzeniu szczegółów.
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.
Skopiuj identyfikator zasobu dla reguły zbierania danych. Te informacje będą używane w następnym kroku.
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.
Pozyskiwanie danych dziennika do tabeli platformy Azure (opcjonalnie)
Aby pozyskać dane do obsługiwanej tabeli platformy Azure:
W regule zbierania danych zmień wartość
outputStream
:Z:
"outputStream": "[concat('Custom-', parameters('tableName'))]"
Do:
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"
W
transformKql
pliku 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.
W centrum zdarzeń lub przestrzeni nazw usługi Event Hubs w witrynie Azure Portal wybierz pozycję Kontrola dostępu (IAM)>Dodaj przypisanie roli.
Wybierz pozycję Odbiornik danych usługi Azure Event Hubs i wybierz pozycję Dalej.
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.
Wybierz pozycję Przejrzyj i przypisz i zweryfikuj szczegóły przed zapisaniem przypisania roli.
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:
W polu wyszukiwania witryny Azure Portal wpisz szablon, a następnie wybierz pozycję Wdróż szablon niestandardowy.
Wybierz pozycję Utwórz własny szablon w edytorze.
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')]" } } ] }
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.
Wybierz pozycję Przejrzyj i utwórz , a następnie pozycję Utwórz po przejrzeniu szczegółów.
Sprawdzanie tabeli docelowej pod kątem pozyskanych zdarzeń
Dzienniki usługi Azure Monitor pozyskują wszystkie zdarzenia, które istnieją w centrum zdarzeń w momencie tworzenia usługi DCRA, pod warunkiem, że ich okres przechowywania nie wygasł i wszystkie nowe zdarzenia.
Aby sprawdzić tabelę docelową pod kątem pozyskanych zdarzeń:
Przejdź do obszaru roboczego i wybierz pozycję Dzienniki.
Napisz proste zapytanie w edytorze zapytań i wybierz pozycję Uruchom:
<table_name>
Zdarzenia powinny być widoczne z centrum zdarzeń.
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:
- Utwórz tabelę niestandardową.
- Utwórz punkt końcowy zbierania danych.
- Zaktualizuj istniejącą regułę zbierania danych.