Samouczek: wysyłanie danych do usługi Azure Monitor przy użyciu interfejsu API pozyskiwania dzienników (szablony usługi Resource Manager)
Interfejs API pozyskiwania dzienników w usłudze Azure Monitor umożliwia wysyłanie niestandardowych danych do obszaru roboczego usługi Log Analytics. W tym samouczku użyto szablonów usługi Azure Resource Manager (szablonów usługi ARM), aby zapoznać się z konfiguracją składników wymaganych do obsługi interfejsu API, a następnie udostępnia przykładową aplikację przy użyciu interfejsu API REST i bibliotek klienckich dla platform .NET, Go, Java, JavaScript i Python.
Uwaga
W tym samouczku użyto szablonów usługi ARM do skonfigurowania składników wymaganych do obsługi interfejsu API pozyskiwania dzienników. Zobacz Samouczek: wysyłanie danych do dzienników usługi Azure Monitor przy użyciu interfejsu API pozyskiwania dzienników (Azure Portal), aby zapoznać się z podobnym samouczkiem, który używa interfejsu użytkownika witryny Azure Portal do konfigurowania tych składników.
Kroki wymagane do skonfigurowania interfejsu API pozyskiwania dzienników są następujące:
- Utwórz aplikację Firmy Microsoft Entra w celu uwierzytelnienia względem interfejsu API.
- Utwórz tabelę niestandardową w obszarze roboczym usługi Log Analytics. Jest to tabela, do której będziesz wysyłać dane.
- Utwórz regułę zbierania danych (DCR), aby skierować dane do tabeli docelowej.
- Nadaj aplikacji Microsoft Entra dostęp do kontrolera domeny.
- Zobacz Przykładowy kod do wysyłania danych do usługi Azure Monitor przy użyciu interfejsu API pozyskiwania dzienników, aby uzyskać przykładowy kod do wysyłania danych przy użyciu interfejsu API pozyskiwania dzienników.
Uwaga
Ten artykuł zawiera opcje korzystania z punktu końcowego pozyskiwania dcR lub punktu końcowego zbierania danych (DCE). Możesz wybrać użytkownika jedną z nich, ale kontroler domeny jest wymagany z interfejsem API pozyskiwania dzienników, jeśli jest używany link prywatny. Zobacz Kiedy jest wymagany kontroler domeny?.
Wymagania wstępne
Do ukończenia tego samouczka niezbędne są następujące elementy:
- Obszar roboczy usługi Log Analytics, w którym masz co najmniej prawa współautora.
- Uprawnienia do tworzenia obiektów DCR w obszarze roboczym.
Zbieranie szczegółów obszaru roboczego
Zacznij od zebrania informacji potrzebnych w obszarze roboczym.
Przejdź do obszaru roboczego w menu Obszarów roboczych usługi Log Analytics w witrynie Azure Portal. Na stronie Właściwości skopiuj identyfikator zasobu i zapisz go do późniejszego użycia.
Tworzenie aplikacji Microsoft Entra
Zacznij od zarejestrowania aplikacji Firmy Microsoft Entra w celu uwierzytelnienia w interfejsie API. Każdy schemat uwierzytelniania usługi Resource Manager jest obsługiwany, ale ten samouczek jest zgodny ze schematem przepływu udzielania poświadczeń klienta.
W menu Microsoft Entra ID w witrynie Azure Portal wybierz pozycję Rejestracje aplikacji> Nowa rejestracja.
Nadaj aplikacji nazwę i zmień zakres dzierżawy, jeśli wartość domyślna nie jest odpowiednia dla danego środowiska. Identyfikator URI przekierowania nie jest wymagany.
Po rejestracji możesz wyświetlić szczegóły aplikacji. Zanotuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy). Te wartości będą potrzebne w dalszej części procesu.
Wygeneruj wpis tajny klienta aplikacji podobny do tworzenia hasła do użycia z nazwą użytkownika. Wybierz pozycję Certyfikaty i wpisy tajne>Nowy klucz tajny klienta. Nadaj wpisowi tajnemu nazwę, aby zidentyfikować jej przeznaczenie i wybrać czas trwania Wygasa . Opcja 12 miesięcy jest zaznaczona tutaj. W przypadku implementacji produkcyjnej należy postępować zgodnie z najlepszymi rozwiązaniami dotyczącymi procedury rotacji wpisów tajnych lub użyć bardziej bezpiecznego trybu uwierzytelniania, takiego jak certyfikat.
Wybierz pozycję Dodaj , aby zapisać wpis tajny, a następnie zanotuj wartość. Upewnij się, że rejestrujesz tę wartość, ponieważ nie można jej odzyskać po opuszczeniu tej strony. Użyj tych samych środków zabezpieczeń, co w przypadku bezpiecznego przechowywania hasła, ponieważ jest to funkcjonalny odpowiednik.
Tworzenie punktu końcowego zbierania danych
Kontroler domeny nie jest wymagany, jeśli używasz punktu końcowego pozyskiwania dcR.
Tworzenie nowej tabeli w obszarze roboczym usługi Log Analytics
Przed wysłaniem do niej danych należy utworzyć tabelę niestandardową. Tabela dla tego samouczka będzie zawierać pięć kolumn pokazanych w poniższym schemacie. Właściwości name
, type
i description
są obowiązkowe dla każdej kolumny. Właściwości i obie wartości isHidden
domyślne, false
jeśli nie zostaną jawnie isDefaultDisplay
określone. Możliwe typy danych to string
, , int
, real
long
dateTime
boolean
, , guid
i .dynamic
Uwaga
W tym samouczku użyto programu PowerShell z usługi Azure Cloud Shell do tworzenia wywołań interfejsu API REST przy użyciu interfejsu API tabel usługi Azure Monitor. Do wykonania tych wywołań można użyć dowolnej innej prawidłowej metody.
Ważne
Tabele niestandardowe muszą używać sufiksu _CL
.
Wybierz przycisk Cloud Shell w witrynie Azure Portal i upewnij się, że środowisko jest ustawione na program PowerShell.
Skopiuj poniższy kod programu PowerShell i zastąp zmienne w parametrze Path odpowiednimi wartościami obszaru roboczego w poleceniu
Invoke-AzRestMethod
. Wklej go w wierszu polecenia usługi Cloud Shell, aby go uruchomić.$tableParams = @' { "properties": { "schema": { "name": "MyTable_CL", "columns": [ { "name": "TimeGenerated", "type": "datetime", "description": "The time at which the data was generated" }, { "name": "Computer", "type": "string", "description": "The computer that generated the data" }, { "name": "AdditionalContext", "type": "dynamic", "description": "Additional message properties" }, { "name": "CounterName", "type": "string", "description": "Name of the counter" }, { "name": "CounterValue", "type": "real", "description": "Value collected for the counter" } ] } } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2022-10-01" -Method PUT -payload $tableParams
Tworzenie reguły zbierania danych
Kontroler domeny definiuje sposób obsługi danych po ich odebraniu. Obejmuje to:
- Schemat danych wysyłanych do punktu końcowego
- Przekształcenie , które zostanie zastosowane do danych przed wysłaniem ich do obszaru roboczego
- Docelowy obszar roboczy i tabela przekształcone dane zostaną wysłane do
W polu wyszukiwania witryny Azure Portal wprowadź szablon , a następnie wybierz pozycję Wdróż szablon niestandardowy.
Wybierz pozycję Utwórz własny szablon w edytorze.
Wklej następujący szablon usługi ARM do edytora, a następnie wybierz pozycję Zapisz.
Zwróć uwagę na następujące szczegóły w kontrolerze domeny zdefiniowanym w tym szablonie:
streamDeclarations
: definicje kolumn danych przychodzących.destinations
: Docelowy obszar roboczy.dataFlows
: pasuje do strumienia z docelowym obszarem roboczym i określa zapytanie przekształcenia i tabelę docelową. Dane wyjściowe zapytania docelowego są wysyłane do tabeli docelowej.
{ "$schema": "https://schema.management.azure.com/schemas/2019-08-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "dataCollectionRuleName": { "type": "string", "metadata": { "description": "Specifies the name of the Data Collection Rule to create." } }, "location": { "type": "string", "metadata": { "description": "Specifies the location in which to create the Data Collection Rule." } }, "workspaceResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the Log Analytics workspace to use." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[parameters('location')]", "apiVersion": "2023-03-11", "kind": "Direct", "properties": { "streamDeclarations": { "Custom-MyTableRawData": { "columns": [ { "name": "Time", "type": "datetime" }, { "name": "Computer", "type": "string" }, { "name": "AdditionalContext", "type": "string" }, { "name": "CounterName", "type": "string" }, { "name": "CounterValue", "type": "real" } ] } }, "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "myworkspace" } ] }, "dataFlows": [ { "streams": [ "Custom-MyTableRawData" ], "destinations": [ "myworkspace" ], "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, CounterName=tostring(jsonContext.CounterName), CounterValue=toreal(jsonContext.CounterValue)", "outputStream": "Custom-MyTable_CL" } ] } } ], "outputs": { "dataCollectionRuleId": { "type": "string", "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]" } } }
Na ekranie Wdrożenie niestandardowe określ subskrypcję i grupę zasobów do przechowywania kontrolera domeny. Następnie podaj wartości zdefiniowane w szablonie. Wartości obejmują nazwę kontrolera domeny i identyfikator zasobu obszaru roboczego, który został zebrany w poprzednim kroku. Lokalizacja powinna być tą samą lokalizacją co obszar roboczy. Region zostanie już wypełniony i będzie używany do lokalizacji kontrolera domeny.
Wybierz pozycję Przejrzyj i utwórz , a następnie wybierz pozycję Utwórz po przejrzeniu szczegółów.
Po zakończeniu wdrażania rozwiń pole Szczegóły wdrożenia i wybierz kontroler domeny, aby wyświetlić jego szczegóły. Wybierz pozycję Widok JSON.
Skopiuj identyfikator niezmienialny i identyfikator URI pozyskiwania dzienników dla kontrolera DOMENY. Będą one używane podczas wysyłania danych do usługi Azure Monitor przy użyciu interfejsu API.
Przypisywanie uprawnień do kontrolera domeny
Po utworzeniu kontrolera domeny aplikacja musi mieć do niej uprawnienia. Uprawnienie umożliwi wszystkim aplikacjom używanie poprawnego identyfikatora aplikacji i klucza aplikacji do wysyłania danych do nowego kontrolera domeny.
W usłudze DCR w witrynie Azure Portal wybierz pozycję Kontrola dostępu (IAM)>Dodaj przypisanie roli.
Wybierz pozycję Wydawca metryk monitorowania i wybierz przycisk Dalej. Zamiast tego można utworzyć akcję niestandardową z akcją
Microsoft.Insights/Telemetry/Write
danych.Wybierz pozycję Użytkownik, grupa lub jednostka usługi dla pozycji Przypisz dostęp do , a następnie wybierz pozycję Wybierz członków. Wybierz utworzoną aplikację, a następnie wybierz pozycję Wybierz.
Wybierz pozycję Przejrzyj i przypisz i zweryfikuj szczegóły przed zapisaniem przypisania roli.
Przykładowy kod
Zobacz Przykładowy kod do wysyłania danych do usługi Azure Monitor przy użyciu interfejsu API pozyskiwania dzienników, aby uzyskać przykładowy kod przy użyciu składników utworzonych w tym samouczku.