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 |
|
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 |
|
Wdrażanie rozszerzeń agenta na maszynie wirtualnej (maszynie wirtualnej). |
Dowolna rola obejmująca akcję Microsoft.Resources/deployments/* |
|
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 .
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.
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.
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.
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.
Kliknij pozycję Edytuj szablon , aby otworzyć edytowalną wersję kodu JSON dla kontrolera domeny. Nie zmieniaj wartości parametrów.
Wprowadź wymagane zmiany w kontrolerze domeny, a następnie kliknij przycisk Zapisz.
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.
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.
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.
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.
- Sprawdź metryki, takie jak
Logs Ingestion Bytes per Min
iLogs 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. - 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. - 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. - 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.