Udostępnij za pośrednictwem


Tworzenie reguł zbierania danych (DCR) w usłudze Azure Monitor

Istnieje wiele metod tworzenia reguły zbierania danych (DCR) w usłudze Azure Monitor. W niektórych przypadkach usługa Azure Monitor utworzy kontroler domeny i zarządza nią zgodnie z ustawieniami skonfigurowanymi w witrynie Azure Portal. Nawet nie zdajesz sobie sprawy, że pracujesz z kontrolerem domeny w niektórych z tych przypadków. W przypadku innych scenariuszy może być jednak konieczne utworzenie własnych kontrolerów domeny lub edytowanie istniejących, bezpośrednio współpracując z definicją w formacie JSON. W tym artykule opisano różne metody tworzenia kontrolera domeny oraz zalecenia dotyczące ich edytowania i rozwiązywania problemów.

Uwaga

W tym artykule opisano sposób tworzenia i edytowania samego kontrolera domeny. Aby utworzyć i edytować skojarzenia reguł zbierania danych, zobacz Tworzenie skojarzeń reguł zbierania danych i zarządzanie nimi.

Uprawnienia

Do tworzenia skojarzeń DCR i DCR wymagane są następujące uprawnienia:

Rola wbudowana Zakresy Przyczyna
Współautor monitorowania
  • Subskrypcja i/lub
  • Grupa zasobów i/lub
  • Istniejący kontroler domeny
Utwórz lub edytuj reguły DCR, przypisz reguły do maszyny, wdróż skojarzenia.
Współautor maszyny wirtualnej
Administrator zasobów połączonej maszyny platformy Azure
  • Maszyny wirtualne, zestawy skalowania maszyn wirtualnych
  • Serwery z obsługą usługi Azure Arc
Wdrażanie rozszerzeń agenta na maszynie wirtualnej (maszynie wirtualnej).
Dowolna rola obejmująca akcję Microsoft.Resources/deployments/*
  • Subskrypcja i/lub
  • Grupa zasobów i/lub
  • Istniejący kontroler domeny
Wdrażanie szablonów usługi Azure Resource Manager.

Ważne

Utwórz kontroler domeny w tym samym regionie co docelowy obszar roboczy usługi Log Analytics lub obszar roboczy usługi Azure Monitor. Kontroler domeny można skojarzyć z maszynami lub kontenerami z dowolnej subskrypcji lub grupy zasobów w dzierżawie. Aby wysyłać dane między dzierżawami, musisz najpierw włączyć usługę Azure Lighthouse.

Tworzenie lub edytowanie kontrolera domeny przy użyciu witryny Azure Portal

Witryna Azure Portal oferuje uproszczone środowisko tworzenia kontrolera domeny dla określonych scenariuszy. Korzystając z tej metody, nie musisz rozumieć struktury kontrolera domeny, chociaż może być ograniczona w konfiguracji, którą można wykonać i może być konieczne późniejsze edytowanie definicji dcR w celu zaimplementowania zaawansowanej funkcji, takiej jak transformacja. Środowisko będzie się różnić w każdym scenariuszu, dlatego zapoznaj się z dokumentacją konkretnego scenariusza, z którym pracujesz zgodnie z opisem w poniższej tabeli.

Scenariusz opis
Włączanie szczegółowych informacji o maszynach wirtualnych Po włączeniu usługi VM Insights na maszynie wirtualnej agent usługi Azure Monitor jest instalowany, a kontroler domeny jest tworzony i skojarzony z maszyną wirtualną. Ten kontroler domeny zbiera wstępnie zdefiniowany zestaw liczników wydajności i nie powinien być modyfikowany. Zobacz Włączanie szczegółowych informacji o maszynie wirtualnej.
Zbieranie danych klienta z maszyny wirtualnej Utwórz kontroler domeny w witrynie Azure Portal przy użyciu interfejsu z przewodnikiem, aby wybrać różne źródła danych z systemu operacyjnego klienta maszyny wirtualnej. Przykłady obejmują zdarzenia systemu Windows, zdarzenia dziennika systemowego i dzienniki tekstowe. Agent usługi Azure Monitor jest instalowany automatycznie w razie potrzeby, a skojarzenie jest tworzone między kontrolerem domeny a każdą wybraną maszyną wirtualną. Zobacz Zbieranie danych za pomocą agenta usługi Azure Monitor.
Eksportowanie metryk Utwórz kontroler domeny w witrynie Azure Portal przy użyciu interfejsu z przewodnikiem, aby wybrać metryki różnych typów zasobów do zebrania. Skojarzenie jest tworzone między kontrolerem domeny a każdym wybranym zasobem. Aby uzyskać informacje na temat eksportowania metryk, zobacz Tworzenie reguły zbierania danych (DCR).
Tworzenie tabeli Podczas tworzenia nowej tabeli w obszarze roboczym usługi Log Analytics przy użyciu witryny Azure Portal przekazywane są przykładowe dane używane przez usługę Azure Monitor do utworzenia kontrolera domeny, w tym przekształcenia, które mogą być używane z interfejsem API pozyskiwania dzienników. Nie można zmodyfikować tego kontrolera domeny w witrynie Azure Portal, ale można go zmodyfikować przy użyciu dowolnej metody opisanej w tym artykule. Zobacz Tworzenie tabeli niestandardowej.
Monitorowanie rozwiązania Kubernetes Aby monitorować klaster Kubernetes, należy włączyć usługę Container Insights dla dzienników i rozwiązania Prometheus dla metryk. Kontroler domeny dla każdego z nich jest tworzony i skojarzony z konteneryzowaną wersją agenta usługi Azure Monitor w klastrze. Może być konieczne zmodyfikowanie kontrolera DCR usługi Container Insights w celu dodania przekształcenia. Zobacz Włączanie monitorowania klastrów Kubernetes i przekształceń danych w usłudze Container Insights.
Przekształcanie obszaru roboczego DCR Kontrolery DCR przekształcania obszaru roboczego zapewniają przekształcenia dla scenariuszy zbierania danych, które nie korzystają jeszcze z kontrolerów DCR. Możesz utworzyć ten kontroler domeny za pomocą witryny Azure Portal, aby utworzyć przekształcenie dla określonej tabeli. Zobacz Tworzenie przekształcenia obszaru roboczego DCR.

Definicja kontrolera domeny

Niezależnie od sposobu jego utworzenia każda usługa DCR ma definicję zgodną ze standardowym schematem JSON. Aby utworzyć lub edytować kontroler domeny przy użyciu metody innej niż witryna Azure Portal, musisz pracować bezpośrednio z definicją JSON. W niektórych scenariuszach należy pracować z definicją JSON, ponieważ witryna Azure Portal nie zapewnia sposobu konfigurowania kontrolera domeny zgodnie z potrzebami.

Kod JSON dla kontrolera domeny można wyświetlić w witrynie Azure Portal, klikając widok JSON w menu Przegląd .

Zrzut ekranu przedstawiający opcję wyświetlania kodu JSON dla kontrolera domeny w witrynie Azure Portal.

Sprawdź, czy na liście rozwijanej Wersja interfejsu API wybrano najnowszą wersję interfejsu API. Jeśli nie, niektóre dane JSON mogą nie być wyświetlane.

Zrzut ekranu przedstawiający kod JSON dla kontrolera domeny w witrynie Azure Portal.

Możesz również pobrać kod JSON dla kontrolera domeny, wywołując interfejs API REST DCR. Na przykład poniższy skrypt programu PowerShell pobiera kod JSON dla kontrolera domeny i zapisuje go w pliku.

$ResourceId = "<ResourceId>" # Resource ID of the DCR to edit
$FilePath = "<FilePath>" # File to store DCR content
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File -FilePath $FilePath

Uwaga

Szczegółowe informacje dotyczące kontrolera domeny można uzyskać przy użyciu Get-AzDataCollectionRule polecenia cmdlet w programie PowerShell lub az monitor data-collection rule show w poleceniu w interfejsie wiersza polecenia platformy Azure, ale nie udostępniają kodu JSON w formacie wymaganym do edycji. Zamiast tego użyj programu PowerShell lub interfejsu wiersza polecenia, aby wywołać interfejs API REST, jak pokazano w przykładzie.

Tworzenie lub edytowanie kontrolera DCR przy użyciu formatu JSON

Oprócz edytowania istniejącego kontrolera domeny można utworzyć nowy przy użyciu jednego z przykładowych kontrolerów DOMENY, które udostępniają kod JSON dla kilku typowych scenariuszy. Skorzystaj z informacji w temacie Struktura reguły zbierania danych w usłudze Azure Monitor , aby zmodyfikować plik JSON dla określonego środowiska i wymagań.

Po utworzeniu definicji kontrolera domeny można wdrożyć go w usłudze Azure Monitor przy użyciu witryny Azure Portal, interfejsu wiersza polecenia, programu PowerShell, interfejsu API lub szablonów usługi ARM.

Tworzenie lub edytowanie kontrolera domeny za pomocą interfejsu wiersza polecenia

Użyj polecenia az monitor data-collection rule create, aby utworzyć kontroler domeny na podstawie pliku JSON. Tego samego polecenia można użyć do zaktualizowania istniejącego kontrolera domeny.

az monitor data-collection rule create --location 'eastus' --resource-group 'my-resource-group' --name 'my-dcr' --rule-file 'C:\MyNewDCR.json' --description 'This is my new DCR'

Uwaga

Chociaż możesz użyć poleceń programu PowerShell lub interfejsu wiersza polecenia do utworzenia i edytowania kontrolera domeny, metody interfejsu API i usługi ARM będą dostarczać bardziej szczegółowe komunikaty o błędach, jeśli występują błędy kompilacji.

W poniższym przykładzie kontroler domeny określa nazwę tabeli, która nie istnieje w docelowym obszarze roboczym usługi Log Analytics. Polecenie programu PowerShell zwraca ogólny komunikat o błędzie, ale wywołanie interfejsu API zwróci szczegółowy komunikat o błędzie określający dokładny błąd.

Zrzut ekranu przedstawiający komunikat o błędzie dla kontrolera domeny podczas korzystania z polecenia programu PowerShell.

Zrzut ekranu przedstawiający komunikat o błędzie dla kontrolera domeny podczas korzystania z interfejsu API.

Strategie edytowania i testowania kontrolera domeny

Podczas tworzenia lub edytowania kontrolera domeny przy użyciu jego definicji JSON często trzeba będzie wprowadzić wiele aktualizacji, aby uzyskać żądane funkcje. Potrzebujesz wydajnej metody aktualizowania kontrolera domeny, rozwiązywania problemów, jeśli nie uzyskasz oczekiwanych wyników, a następnie wprowadź dodatkowe aktualizacje. Jest to szczególnie istotne w przypadku dodawania przekształcenia do kontrolera domeny, ponieważ należy sprawdzić, czy zapytanie działa zgodnie z oczekiwaniami. Ponieważ nie możesz edytować kodu JSON bezpośrednio w witrynie Azure Portal, poniżej przedstawiono niektóre strategie, których można użyć.

Użyj pliku lokalnego jako źródła dcR

Jeśli używasz lokalnego pliku JSON jako źródła tworzonych i edytowanych kontrolerów domeny, masz pewność, że zawsze masz dostęp do najnowszej wersji definicji dcR. Jest to idealne rozwiązanie, jeśli chcesz zarządzać zmianami za pomocą narzędzi kontroli wersji, takich jak GitHub lub Azure DevOps. Możesz również użyć edytora, takiego jak VS Code, aby wprowadzić zmiany w kontrolerze domeny, a następnie użyć narzędzi wiersza polecenia, aby zaktualizować kontroler domeny w usłudze Azure Monitor zgodnie z powyższym opisem.

Poniżej przedstawiono przykładowy skrypt programu PowerShell, którego można użyć do wypychania zmian do kontrolera domeny z pliku źródłowego. Sprawdza to, czy plik źródłowy jest prawidłowy w formacie JSON przed wysłaniem go do usługi Azure Monitor.

param (
    [Parameter(Mandatory = $true)][string]$ResourceId,  # Resource ID of the DCR
    [Parameter(Mandatory = $true)][string]$FilePath  # Path to the DCR JSON file to upload
)

# Read the DCR content from the file
Write-Host "Reading new DCR content from: $FilePath" -ForegroundColor Green
$DCRContent = Get-Content $FilePath -Raw

# Ensure the DCR content is valid JSON
try {
    $ParsedDCRContent = $DCRContent | ConvertFrom-Json
} catch {
    Write-Host "Invalid JSON content in file: $FilePath" -ForegroundColor Red
    exit 1
}

# Create or update the DCR in the specified resource group
Write-Host "Deploying DCR $ResourceId ..." -ForegroundColor Green
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		

Zapisywanie zawartości DCR w pliku tymczasowym

Jeśli nie masz definicji dcR w pliku lokalnym, możesz pobrać definicję z usługi Azure Monitor i zapisać ją w pliku tymczasowym. Następnie możesz edytować plik przy użyciu edytora, takiego jak VS Code, przed wypchnięciem aktualizacji do usługi Azure Monitor.

Poniżej przedstawiono przykładowy skrypt programu PowerShell, którego można użyć do edytowania istniejącego kontrolera domeny w usłudze Azure Monitor. Skrypt pobierze definicję dcR i zapisze ją w pliku tymczasowym przed uruchomieniem programu VS Code. Po wskazaniu skryptu, który został zapisany, kontroler domeny zostanie zaktualizowany o nową zawartość i plik tymczasowy zostanie usunięty.

param ([Parameter(Mandatory=$true)] $ResourceId)

# Get DCR content and save it to a local file
$FilePath = "temp.dcr"
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File $FilePath

# Open DCR in code editor
code $FilePath | Wait-Process

{ 
	#write DCR content back from the file
	$DCRContent = Get-Content $FilePath -Raw
	Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		
}

#Delete temporary file
Remove-Item $FilePath

Używanie szablonu usługi ARM do edytowania kontrolera domeny w miejscu

Jeśli chcesz wykonać edycje całkowicie w witrynie Azure Portal, możesz użyć funkcji Eksportowanie szablonu , aby pobrać szablon arm dla kontrolera domeny. Następnie możesz zmodyfikować definicję w formacie JSON i ponownie wdrożyć ją w witrynie Azure Portal.

  1. Wybierz kontroler domeny, który chcesz zmodyfikować w witrynie Azure Portal, a następnie wybierz pozycję Eksportuj szablon. Następnie kliknij przycisk Wdróż , aby ponownie wdrożyć ten sam szablon.

    Zrzut ekranu przedstawiający opcję Eksportuj szablon dla reguły zbierania danych w witrynie Azure Portal.

  2. Kliknij pozycję Edytuj szablon , aby otworzyć edytowalną wersję kodu JSON dla kontrolera domeny. Nie zmieniaj wartości parametrów.

    Zrzut ekranu przedstawiający opcję Edytuj szablon reguły zbierania danych w witrynie Azure Portal.

  3. Wprowadź wymagane zmiany w kontrolerze domeny, a następnie kliknij przycisk Zapisz.

    Zrzut ekranu przedstawiający edytowalny kod JSON dla reguły zbierania danych w witrynie Azure Portal.

  4. Jeśli chcesz utworzyć nowy kontroler domeny, zmień parametr nazwy. W przeciwnym razie pozostaw parametry bez zmian. Kliknij pozycję Przejrzyj i utwórz , aby wdrożyć zmodyfikowany szablon i utwórz , aby utworzyć nowy kontroler domeny.

    Zrzut ekranu przedstawiający opcję przeglądania i tworzenia reguły zbierania danych w witrynie Azure Portal.

  5. Jeśli kontroler domeny jest prawidłowy bez błędów, wdrożenie zakończy się pomyślnie, a kontroler domeny zostanie zaktualizowany o nową konfigurację. Kliknij pozycję Przejdź do zasobu , aby otworzyć zmodyfikowany kontroler domeny.

    Zrzut ekranu przedstawiający pomyślne wdrożenie reguły zbierania danych w witrynie Azure Portal.

  6. Jeśli kontroler domeny zawiera błędy kompilacji, zostanie wyświetlony komunikat informujący o tym, że wdrożenie nie powiodło się. Kliknij pozycję Szczegóły błędu i Szczegóły operacji, aby wyświetlić szczegóły błędu. Kliknij przycisk Wdróż ponownie, a następnie ponownie edytuj szablon , aby wprowadzić niezbędne zmiany w kontrolerze domeny, a następnie zapisać i wdrożyć go ponownie.

    Zrzut ekranu przedstawiający nieudane wdrożenie reguły zbierania danych w witrynie Azure Portal.

Weryfikowanie i rozwiązywanie problemów z zbieraniem danych

Po zainstalowaniu kontrolera DCR może upłynąć kilka minut, aby zmiany zaczęły obowiązywać i zbierać dane ze zaktualizowanym kontrolerem domeny. Jeśli nie widzisz żadnych zbieranych danych, ustalenie głównej przyczyny problemu może być trudne. Skorzystaj z funkcji monitorowania dcR, które obejmują metryki i dzienniki, aby ułatwić rozwiązywanie problemów.

Metryki dcR są zbierane automatycznie dla wszystkich kontrolerów domeny i można je analizować przy użyciu eksploratora metryk, takiego jak metryki platformy dla innych zasobów platformy Azure. Włącz dzienniki błędów dcR, aby uzyskać szczegółowe informacje o błędzie, gdy przetwarzanie danych nie powiedzie się.

Jeśli nie widzisz zbieranych danych, wykonaj następujące podstawowe kroki, aby rozwiązać ten problem.

  1. Sprawdź metryki, takie jak Logs Ingestion Bytes per Min i Logs Rows Received per Min , aby upewnić się, że dane docierają do usługi Azure Monitor. Jeśli nie, sprawdź źródło danych, aby upewnić się, że wysyła ona dane zgodnie z oczekiwaniami.
  2. Sprawdź Logs Rows Dropped per Min , czy jakiekolwiek wiersze są porzucane. Może to nie oznaczać błędu, ponieważ wiersze mogą zostać porzucone przez przekształcenie. Jeśli porzucone wiersze są takie same, Logs Rows Dropped per Min nie zostaną pozyskane żadne dane w obszarze roboczym. Sprawdź, Logs Transformation Errors per Min czy występują błędy przekształcania.
  3. Sprawdź Logs Transformation Errors per Min , czy istnieją błędy z przekształceń zastosowanych do danych przychodzących. Może to być spowodowane zmianami w strukturze danych lub samym przekształceniem.
  4. Sprawdź tabelę pod DCRLogErrors kątem błędów pozyskiwania, które mogły zostać zarejestrowane. Może to zawierać dodatkowe szczegóły dotyczące identyfikowania głównej przyczyny problemu.

Następne kroki