Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Metryki platformy konta Azure Batch dostarczają informacji o pulach, węzłach, rdzeniach, zadaniach i zadaniach podrzędnych. Aby monitorować wydajność systemu operacyjnego gościa, taką jak wykorzystanie CPU, pamięci, dysku i sieci, zainstaluj Azure Monitor Agent (AMA) na węzłach obliczeniowych puli.
W tym artykule pokazano, jak:
- Utwórz pulę Batch z tożsamością zarządzaną przypisaną przez użytkownika i AMA.
- Stwórz regułę zbierania danych (DCR) dla liczników wydajności Linuksa i Syslogu.
- Połącz DCR z zasobem puli wsadowej.
- Weryfikuj dane w Log Analytics i Azure Monitor Metrics.
Przykłady wykorzystują Azure CLI oraz pulę Linuksa. Ta sama architektura obsługuje pule systemu Windows z rozszerzeniem AMA dla systemu Windows oraz źródłami danych systemu Windows.
Ważna
Monitorowanie węzłów obliczeniowych puli Batch za pomocą AMA jest obsługiwane tylko dla kont Batch korzystających z trybu alokacji puli subskrypcji użytkownika. W trybie alokacji puli usługi Batch węzły obliczeniowe są tworzone w subskrypcjach zarządzanych przez usługę Batch, do których klienci nie mają dostępu.
Jak działa monitorowanie węzłów
Monitorowana pula wsadowa wykorzystuje następujące zasoby:
- Konto wsadowe w trybie alokacji puli subskrypcji użytkownika.
- Pula usługi Batch z tożsamością zarządzaną przypisaną przez użytkownika.
- Rozszerzenie Azure Monitor Agent instalowane podczas tworzenia puli.
- DCR, który określa dane do zbierania oraz miejsca docelowe.
- Stowarzyszenie DCR, którego celem jest Batch pool Azure Resource Manager resource.
- Przestrzeń robocza Log Analytics dla danych logowych oraz, opcjonalnie, Azure Monitor Metrics dla metryk gościnnych.
Powiązaj DCR z ID zasobów puli wsadowej:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/
providers/Microsoft.Batch/batchAccounts/<batch-account>/pools/<pool-name>
Nie kojarz DCR wyłącznie z zestawem skalowania maszyn wirtualnych, który Batch tworzy dla puli. Batch zarządza cyklem życia tego zestawu skalowania. Gdy pula skaluje się do zera węzłów, Batch może usunąć zestaw skalowania i utworzyć nowy podczas późniejszej zmiany rozmiaru.
Rekordy usługi Log Analytics zachowują identyfikator zasobu obliczeniowego utworzonego przez usługę Batch. Metryki gości są dostępne w aktualnym zestawie skali maszyny wirtualnej stworzonej przez Batch w azure.vm.linux.guestmetrics przestrzeni nazw dla Linuksa lub w przestrzeni Virtual Machine Guest (Windows) dla Windows.
Wymagania wstępne
Przed rozpoczęciem potrzebne są następujące elementy:
- Konto Azure Batch w trybie alokacji puli subskrypcji użytkownika.
- Uprawnienie do tworzenia pul przy użyciu warstwy zarządzania Batch.
- Obszar roboczy usługi Log Analytics.
- Zarządzana tożsamość przypisana przez użytkownika w tym samym dzierżawcy Microsoft Entra co konto wsadowe.
- Uprawnienia do tworzenia DCR i skojarzeń DCR. Szczegóły znajdziesz w artykule Tworzenie i edycja reguł zbierania danych w Azure Monitor.
- Azure CLI zainstalowany i uwierzytelniony do subskrypcji.
Stwórz DCR, Log Analytics workspace oraz Batch pool w tym samym regionie Azure. Jeśli pula korzysta z sieci wirtualnej z ograniczonym dostępem wychodzącym, zapoznaj się z wymaganiami sieci Azure Monitor Agent.
Wskazówka
Pule z rozszerzeniami muszą korzystać z konfiguracji maszyny wirtualnej. Nie możesz dodawać rozszerzeń do istniejącej puli. Aby dodać, usunąć lub zaktualizować AMA, stwórz nową pulę. Aby uzyskać więcej informacji, zobacz artykuł Używanie rozszerzeń z pulami usługi Batch.
Ustawianie zmiennych środowiskowych
Ustaw zmienne dla swoich zasobów. Zastąp wartości zastępcze.
subscriptionId="<subscription-id>"
resourceGroup="<resource-group>"
location="<location>"
batchAccount="<batch-account-name>"
poolName="<pool-name>"
workspaceName="<log-analytics-workspace-name>"
identityName="<managed-identity-name>"
dcrName="<data-collection-rule-name>"
az account set --subscription "$subscriptionId"
identityId=$(az identity show \
--resource-group "$resourceGroup" \
--name "$identityName" \
--query id \
--output tsv)
workspaceId=$(az monitor log-analytics workspace show \
--resource-group "$resourceGroup" \
--workspace-name "$workspaceName" \
--query id \
--output tsv)
batchAccountId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.Batch/batchAccounts/$batchAccount"
poolResourceId="$batchAccountId/pools/$poolName"
dcrId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.Insights/dataCollectionRules/$dcrName"
Tworzenie reguły zbierania danych
Następująca reguła zbierania danych (DCR) zbiera powszechne liczniki wydajności Linuksa co 60 sekund. Wysyła liczniki zarówno do tabeli Perf w Log Analytics, jak i Azure Monitor Metrics. Wysyła także do Log Analytics rekordy Syslog o poziomie ostrzegawczym i wyższym.
Funkcja Azure Monitor Metrics jako miejsca docelowego dla liczników wydajności gościa jest dostępna w wersji zapoznawczej. Aktualne ograniczenia można znaleźć w sekcji Collect performance counters with Azure Monitor Agent.
Utwórz plik o nazwie dcr.json. Zastąp <location> i <workspace-resource-id> własnymi wartościami.
{
"location": "<location>",
"kind": "Linux",
"properties": {
"dataSources": {
"performanceCounters": [
{
"name": "batchNodePerformance",
"streams": [
"Microsoft-Perf",
"Microsoft-InsightsMetrics"
],
"samplingFrequencyInSeconds": 60,
"counterSpecifiers": [
"\\Processor(*)\\% Processor Time",
"\\Processor(*)\\% User Time",
"\\Processor(*)\\% Privileged Time",
"\\Processor(*)\\% Idle Time",
"\\Memory\\% Available Memory",
"\\Memory\\Used Memory MBytes",
"\\Memory\\% Used Memory",
"\\Logical Disk(*)\\% Free Space",
"\\Logical Disk(*)\\Free Megabytes",
"\\Logical Disk(*)\\Disk Reads/sec",
"\\Logical Disk(*)\\Disk Writes/sec",
"\\Logical Disk(*)\\Disk Read Bytes/sec",
"\\Logical Disk(*)\\Disk Write Bytes/sec",
"\\Network(*)\\Total Bytes Transmitted",
"\\Network(*)\\Total Bytes Received",
"\\Network(*)\\Total Bytes",
"\\System\\Uptime"
]
}
],
"syslog": [
{
"name": "batchNodeSyslog",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"auth",
"authpriv",
"cron",
"daemon",
"kern",
"syslog",
"user"
],
"logLevels": [
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"name": "batchMonitorWorkspace",
"workspaceResourceId": "<workspace-resource-id>"
}
],
"azureMonitorMetrics": {
"name": "azureMonitorMetrics-default"
}
},
"dataFlows": [
{
"streams": [
"Microsoft-Perf"
],
"destinations": [
"batchMonitorWorkspace"
]
},
{
"streams": [
"Microsoft-InsightsMetrics"
],
"destinations": [
"azureMonitorMetrics-default"
]
},
{
"streams": [
"Microsoft-Syslog"
],
"destinations": [
"batchMonitorWorkspace"
]
}
]
}
}
Utwórz lub zaktualizuj DCR:
az rest \
--method put \
--url "https://management.azure.com${dcrId}?api-version=2022-06-01" \
--body @dcr.json
Aby uzyskać informacje o wybieraniu liczników i kontrolowaniu kosztów pozyskiwania danych, zobacz Zbieranie liczników wydajności za pomocą agenta Azure Monitor.
Utwórz pulę za pomocą Azure Monitor Agent
Utwórz plik o nazwie pool.json. Poniższy przykład wykorzystuje Ubuntu 22.04 i instaluje rozszerzenie AMA na Linuksa. Zastąp <managed-identity-resource-id> wartością $identityId.
{
"name": "<pool-name>",
"type": "Microsoft.Batch/batchAccounts/pools",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<managed-identity-resource-id>": {}
}
},
"properties": {
"vmSize": "STANDARD_D2S_V3",
"taskSlotsPerNode": 1,
"taskSchedulingPolicy": {
"nodeFillType": "Pack"
},
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "canonical",
"offer": "0001-com-ubuntu-server-jammy",
"sku": "22_04-lts",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.ubuntu 22.04",
"extensions": [
{
"name": "AzureMonitorAgent",
"publisher": "Microsoft.Azure.Monitor",
"type": "AzureMonitorLinuxAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {
"authentication": {
"managedIdentity": {
"identifier-name": "mi_res_id",
"identifier-value": "<managed-identity-resource-id>"
}
}
}
}
]
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 1,
"targetLowPriorityNodes": 0,
"resizeTimeout": "PT15M"
}
}
}
}
Utwórz pulę za pomocą interfejsu API zarządzania usługą Batch:
az rest \
--method put \
--url "https://management.azure.com${poolResourceId}?api-version=2024-07-01" \
--body @pool.json
W przypadku puli systemu Windows użyj:
- Typ rozszerzenia
AzureMonitorWindowsAgent. - Obraz systemu Windows oraz zgodny z nim SKU agenta węzła usługi Batch.
- Windows DCR z
kindustawionym naWindows. - Liczniki wydajności Windows oraz, jeśli zajdzie taka potrzeba, zbieranie zdarzeń Windows zamiast Syslog.
Nie używaj jednego DCR zarówno dla liczników Windows, jak i Linuxa. Niektóre nazwy liczników mogą odnosić się do tej samej metryki i powodować zduplikowane zbieranie danych.
Skojarz element DCR z pulą usługi Batch
Utwórz powiązanie w zasobie puli Batch:
az monitor data-collection rule association create \
--name "batch-pool-monitoring" \
--resource "$poolResourceId" \
--rule-id "$dcrId"
Potwierdź powiązanie:
az monitor data-collection rule association list \
--resource "$poolResourceId" \
--output table
Powiązanie pozostaje przypisane do puli, gdy węzły są usuwane lub zastępowane. Nie zastępuj go skojarzeniem, które dotyczy tylko bieżącego zestawu skalowania maszyn wirtualnych utworzonego przez usługę Batch.
Weryfikacja agenta i zbieranie logów
Odczekaj do pięciu minut po osiągnięciu przez węzeł stanu bezczynności, aż pojawią się pierwsze rekordy.
Sprawdź tętno agenta
Uruchom następujące zapytanie w przestrzeni roboczej Log Analytics:
Heartbeat
| where TimeGenerated > ago(30m)
| summarize
Samples = count(),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated),
AgentVersion = any(Version)
by Computer, _ResourceId
Agent operacyjny zwykle wysyła jedno uderzenie serca na minutę.
Weryfikacja liczników wydajności
Perf
| where TimeGenerated > ago(30m)
| summarize
Samples = count(),
Average = avg(CounterValue),
P95 = percentile(CounterValue, 95),
Maximum = max(CounterValue)
by Computer, ObjectName, CounterName, InstanceName
| order by ObjectName asc, CounterName asc
Liczniki dysków logicznych w systemie Linux obejmują wiele wystąpień punktów montowania. Filtruj według InstanceName podczas tworzenia wykresów lub alertów, aby montowania tylko do odczytu i montowania tymczasowe nie zniekształcały wyniku.
Zweryfikowaj Syslog
Syslog
| where TimeGenerated > ago(30m)
| project
TimeGenerated,
Computer,
Facility,
SeverityLevel,
ProcessName,
SyslogMessage,
_ResourceId
| order by TimeGenerated desc
Zobacz metryki gości
Jeśli moduł DCR wysyła strumień Microsoft-InsightsMetrics do miejsca docelowego Azure Monitor Metrics, metryki gościa są wyświetlane w aktualnie utworzonym przez usługę Batch zestawie skalowania maszyn wirtualnych.
- W portalu Azure otwórz zestaw skalowania maszyn wirtualnych, który Batch utworzył dla puli.
- Wybierz pozycję Metryki.
- W obszarze Metric Namespace wybierz
azure.vm.linux.guestmetricsdla systemu Linux lub Virtual Machine Guest (Windows) w przypadku systemu Windows. - Wybierz metrykę i agregację.
Możesz znaleźć aktualny identyfikator zasobu obliczeniowego w ostatnich Perf rekordach:
Perf
| where TimeGenerated > ago(30m)
| summarize arg_max(TimeGenerated, _ResourceId) by Computer
Uwaga / Notatka
Gdy pula zostanie przeskalowana do zera węzłów, Batch może usunąć bazowy zestaw skalowania maszyn wirtualnych. Zasób metryki gościa jest niedostępny, gdy zestaw skalowania nie istnieje. Dane Log Analytics już zebrane w przestrzeni roboczej pozostają dostępne zgodnie z ustawieniami retencji przestrzeni roboczej.
Monitorowanie metryk platformy Batch przy użyciu danych z węzłów
Dane gości węzłów uzupełniają automatycznie zbierane metryki platformy kont wsadowych. Korzystaj z obu źródeł:
- Użyj metryk konta usługi Batch, takich jak
TotalNodeCount,RunningNodeCount,IdleNodeCount,UnusableNodeCount,TaskStartEventiTaskCompleteEvent, aby monitorować stan usługi i harmonogramowania. - Używaj liczników wydajności gości do badania warunków CPU, pamięci, dysku i sieci na węzłach obliczeniowych.
- Użyj dzienników usługi Batch, aby skorelować zdarzenia cyklu życia puli, zadań i zadań podrzędnych z zachowaniem się węzłów.
Dla definicji metryk i wskazówek agregacji zobacz Azure Batch monitoring data reference oraz Monitor Azure Batch.
Rozwiązywanie problemów z zbieraniem danych
Stosuj następujące kontrole, gdy dane nie docierają:
| Objaw | Kontrole |
|---|---|
| Brak sygnału pulsu | Potwierdź, że rozszerzenie AMA zostało pomyślnie skonfigurowane, tożsamość przypisana przez użytkownika jest przypisana do puli i odwoływana w ustawieniach rozszerzenia, a wymagane punkty końcowe Azure Monitor są osiągalne. |
| AMA informuje, że zasób nie jest powiązany z DCR | Potwierdź, że skojarzenie DCR jest ukierunkowane na identyfikator zasobu puli usługi Batch. Powiązanie tylko z bazowym zestawem skalowania maszyn wirtualnych nie zastępuje powiązania z pulą. |
Nadchodzi bicie serca, ale Perf jest puste |
Potwierdź, że element Microsoft-Perf jest obecny zarówno w źródle danych licznika wydajności, jak i w przepływie danych kierowanym do usługi Log Analytics. Sprawdź ścieżki liczników i typ systemu operacyjnego DCR. |
| Przestrzeń nazw metryk gościnnych nie jest dostępna | Potwierdź, że element Microsoft-InsightsMetrics jest przeznaczony dla azureMonitorMetrics-default, odczekaj kilka minut na agregację i potwierdź, że pula obecnie ma węzły oraz bazowy zestaw skalowania. |
| Zduplikowane rekordy | Sprawdź, czy wiele DCR zbiera te same dane z puli. Zbieranie zduplikowanych danych zwiększa koszt pozyskiwania danych. |
Aby poznać lokalizacje logów AMA i wymagania dyskowe, zobacz wymagania agenta Azure Monitor. Informacje o alokacji w usłudze Batch i awariach węzłów można znaleźć w artykule Błędy puli i węzłów w usłudze Azure Batch.
Zagadnienia dotyczące kosztów
Opłaty za usługę Azure Monitor mogą być naliczane za pozyskiwanie danych do usługi Log Analytics, retencję, alerty i inne włączone funkcje. Aby kontrolować koszty:
- Zbieraj tylko liczniki i logi niezbędne do celów monitorowania.
- Stosuj częstotliwość próbkowania odpowiednią do Twojego obciążenia.
- Filtruj dane dysku według znaczących instancji punktów montażu w zapytaniach i alertach.
- Unikaj przypisywania nakładających się DCR do tej samej puli.
- Przejrzyj ustawienia dotyczące przechowywania danych w obszarze roboczym.
Więcej informacji można znaleźć w artykułach Koszty i użycie w usłudze Azure Monitor oraz Planowanie zarządzania kosztami usługi Azure Batch.
Uprzątnij zasoby
Gdy nie będziesz już potrzebować monitorowanej puli, usuń pulę oraz wszelkie zasoby monitorujące, które nie są współdzielone z innymi obciążeniami.
Aby zachować konfigurację puli bez dalszego uruchamiania węzłów obliczeniowych, zmień rozmiar puli do zera:
az batch account login \
--resource-group "$resourceGroup" \
--name "$batchAccount"
az batch pool resize \
--pool-id "$poolName" \
--target-dedicated-nodes 0 \
--target-low-priority-nodes 0
Skalowanie do zera może usunąć bazowy zestaw skalowania maszyn wirtualnych. Dane już przechowywane w Log Analytics pozostają dostępne zgodnie z ustawieniami retencji przestrzeni roboczej.