Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Metriky platformy účtu Azure Batch poskytují informace o fondech, uzlech, jádrech, úlohách a úkolech. Pro monitorování výkonu hostujícího operačního systému, jako je využití CPU, paměti, disku a sítě, nainstalujte Azure Monitor Agent (AMA) na výpočetní uzly poolu.
V tomto článku se dozvíte, jak:
- Vytvořte fond služby Batch se spravovanou identitou přiřazenou uživatelem a AMA.
- Vytvořte pravidlo pro sběr dat (DCR) pro výkonnostní čítače Linuxu a Syslog.
- Spojte DCR se zdrojem Batch poolu.
- Ověřujte data v Log Analytics a Azure Monitor Metrics.
Příklady používají Azure CLI a Linux pool. Stejná architektura podporuje Windows pooly s rozšířením Windows AMA a zdroji dat Windows.
Important
Monitorování výpočetních uzlů fondu Batch pomocí AMA je podporováno pouze pro účty Batch, které používají režim přidělování fondu uživatelského předplatného. V režimu přidělování fondu ve službě Batch jsou výpočetní uzly vytvářeny v předplatných spravovaných službou Batch, ke kterým zákazníci nemají přístup.
Jak funguje monitorování uzlů
Monitorovaný fond Batch používá následující prostředky:
- Účet Batch v režimu přidělování fondu uživatelského předplatného.
- Dávkový pool, který má uživatelem přiřazenou spravovanou identitu.
- Rozšíření Azure Monitor Agent se nainstaluje při vytvoření poolu.
- DCR, který určuje data, která se mají shromažďovat, a cílová umístění.
- DCR asociace, jejímž cílem je Batch pool Azure Resource Manager resource.
- Pracovní prostor Log Analytics pro data z logů a volitelně Azure Monitor Metrics pro hostovské metriky.
Přiřaďte DCR k ID zdroje dávkového poolu:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/
providers/Microsoft.Batch/batchAccounts/<batch-account>/pools/<pool-name>
Nespojujte DCR pouze s škálovací sadou virtuálního stroje, kterou Batch vytváří pro pool. Batch spravuje životní cyklus této škálovací sady. Když se pool škáluje na nulu uzlů, Batch může smazat škálovací sadu a vytvořit novou při pozdějším změně.
Záznamy Log Analytics uchovávají ID zdroje generovaného dávkovým výpočetním zdrojem. Metriky hostovaného systému jsou k dispozici v aktuální škálovací sadě virtuálních počítačů vytvořené službou Batch v azure.vm.linux.guestmetrics jmenném prostoru pro Linux nebo v Virtual Machine Guest (Windows) jmenném prostoru pro Windows.
Předpoklady
Než začnete, potřebujete:
- Účet Azure Batch v režimu alokace uživatelského předplatného poolu.
- Oprávnění vytvářet pooly pomocí plánu správy dávek.
- Pracovní prostor služby Log Analytics.
- Spravovaná identita přiřazená uživatelem ve stejném tenantovi Microsoft Entra jako účet Batch.
- Povolení k vytváření DCR a DCR asociací. Podrobnosti najdete v článku Vytvořit a upravit pravidla sběru dat v Azure Monitor.
- Azure CLI nainstalováno a autentizováno k předplatnému.
Vytvořte DCR, pracovní prostor Log Analytics a Batch pool ve stejném Azure regionu. Pokud pool používá virtuální síť s omezeným odchozím přístupem, zkontrolujte požadavky na síť Azure Monitor Agent.
Tip
Pooly s rozšířeními musí používat konfiguraci virtuálních strojů. Rozšíření do existujícího poolu nemůžete přidávat. Pro přidání, odstranění nebo aktualizaci AMA vytvořte nový pool. Pro více informací viz Použít rozšíření s dávkovými pooly.
Nastavení proměnných prostředí
Nastavte proměnné pro své zdroje. Nahraďte zástupné hodnoty.
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"
Vytvoření pravidla shromažďování dat
Následující pravidlo shromažďování dat (DCR) shromažďuje běžné čítače výkonu systému Linux každých 60 sekund. Odesílá čítače jak do tabulky Perf v Log Analytics, tak v Azure Monitor Metrics. Také posílá varovné a závažnější Syslog záznamy do Log Analytics.
Azure Monitor Metrics jako cíl pro čítače výkonu hostovaného systému je ve verzi Preview. Pro aktuální omezení viz Sběr výkonnostních čítačů pomocí Azure Monitor Agent.
Vytvořte soubor s názvem dcr.json. Nahraďte <location> a <workspace-resource-id> svými hodnotami.
{
"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"
]
}
]
}
}
Vytvořte nebo aktualizujte DCR:
az rest \
--method put \
--url "https://management.azure.com${dcrId}?api-version=2022-06-01" \
--body @dcr.json
Informace o výběru čítačů a řízení nákladů na ingestaci dat najdete v tématu Sběr výkonnostních čítačů pomocí Azure Monitor Agent.
Vytvoření fondu s agentem Azure Monitor
Vytvořte soubor s názvem pool.json. Následující příklad je uveden pro Ubuntu 22.04 a nainstaluje rozšíření AMA pro Linux. Nahraďte $poolName hodnotou <pool-name> a <managed-identity-resource-id> hodnotou $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"
}
}
}
}
Vytvořte pool pomocí Batch management API:
az rest \
--method put \
--url "https://management.azure.com${poolResourceId}?api-version=2024-07-01" \
--body @pool.json
Pro Windows pool použijte:
- typ rozšíření
AzureMonitorWindowsAgent. - Bitová kopie systému Windows a kompatibilní SKU agenta výpočetního uzlu Batch.
- Windows DCR, ve kterém je
kindnastaveno naWindows. - Čítače výkonu systému Windows a v případě potřeby shromažďování událostí systému Windows místo Syslogu.
Nepoužívejte jeden DCR pro čítače ve Windows i Linuxu. Některé názvy čítačů mohou odkazovat na stejnou metriku a způsobit duplicitní sběr dat.
Spojte DCR s dávkovým poolem
Vytvořte asociaci na zdroji Batch pool:
az monitor data-collection rule association create \
--name "batch-pool-monitoring" \
--resource "$poolResourceId" \
--rule-id "$dcrId"
Potvrďte spojení:
az monitor data-collection rule association list \
--resource "$poolResourceId" \
--output table
Asociace zůstává v poolu, když jsou uzly odstraněny nebo nahrazeny. Nenahrazujte ho asociací, která cílí pouze na aktuální škálovací sadu virtuálních strojů vytvořených v Batch.
Ověřujte agenta a sběr logů
Počkejte až pět minut poté, co uzel přejde do nečinného stavu, než dorazí první záznamy.
Ověřte srdeční tep agenta
Spusť následující dotaz v pracovním prostoru Log Analytics:
Heartbeat
| where TimeGenerated > ago(30m)
| summarize
Samples = count(),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated),
AgentVersion = any(Version)
by Computer, _ResourceId
Operační agent obvykle pošle jeden tep za minutu.
Ověřte výkonnostní čítače
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
Čítače logických disků v systému Linux zahrnují více instancí přípojných bodů. Filtrujte podle InstanceName při vytváření grafů nebo výstrah, aby připojení jen pro čtení a dočasná připojení nezkreslovala výsledek.
Ověřte Syslog
Syslog
| where TimeGenerated > ago(30m)
| project
TimeGenerated,
Computer,
Facility,
SeverityLevel,
ProcessName,
SyslogMessage,
_ResourceId
| order by TimeGenerated desc
Zobrazit metriky hostů
Pokud DCR odešle datový proud Microsoft-InsightsMetrics do cíle Azure Monitor Metrics, metriky hostovaného operačního systému se zobrazí v aktuální sadě škálování virtuálních počítačů vytvořené službou Batch.
- V portálu Azure otevřete škálovací sadu virtuálních strojů, kterou Batch vytvořil pro pool.
- Vyberte Metriky.
- Pro metrický jmenný prostor vyberte
azure.vm.linux.guestmetricspro Linux nebo virtuální stroj host (Windows) pro Windows. - Vyberte metriku a agregaci.
Aktuální ID výpočetního zdroje najdete v nedávných Perf záznamech:
Perf
| where TimeGenerated > ago(30m)
| summarize arg_max(TimeGenerated, _ResourceId) by Computer
Note
Když se pool škáluje na nulový počet uzlů, Batch může odstranit podkladovou sadu škálování virtuálních počítačů. Zdroj pro hostovské metriky není dostupný, zatímco škálovací sada neexistuje. Data Log Analytics, již shromážděná v pracovním prostoru, zůstávají dostupná podle nastavení retenci pracovního prostoru.
Monitorovat metriky platformy Batch pomocí dat uzlů
Data hostů uzlů doplňují automaticky sbírané metriky platformy Batch účtu. Použijte oba zdroje:
- Použijte metriky účtu Batch, například
TotalNodeCount,RunningNodeCount,IdleNodeCount,UnusableNodeCount,TaskStartEventaTaskCompleteEvent, ke sledování stavu služby a plánování. - Použijte výkonnostní čítače hostů k prozkoumání podmínek CPU, paměti, disku a sítě na výpočetních uzlech.
- Použijte batchové servisní logy ke korelaci událostí poolu, úkolu a životního cyklu úkolu s chováním uzlů.
Pro definice metrik a pokyny k agregaci viz Azure Batch monitoring data reference a Monitor Azure Batch.
Řešení potíží se shromažďováním dat
Použijte následující kontroly, když data nepřicházejí:
| Symptom | Kontroly |
|---|---|
| Žádný prezenční signál | Potvrďte, že rozšíření AMA bylo úspěšně nastaveno, že uživatelem přiřazená identita je připojena k poolu a odkazována v nastavení rozšíření a že požadované endpointy Azure Monitor jsou dostupné. |
| AMA uvádí, že zdroj není spojen s DCR | Potvrďte, že asociace DCR cílí na ID zdroje dávkového poolu. Přidružení pouze u podkladové sady škálování virtuálních počítačů nenahrazuje přidružení k fondu. |
Přichází Heartbeat, ale Perf je prázdný |
Potvrďte, že je přítomen Microsoft-Perf jak ve zdroji dat pro počítadlo výkonnosti, tak v datovém toku, který cílí na Log Analytics. Zkontrolujte cesty k čítačům a typ operačního systému DCR. |
| Jmenný prostor pro hostující metriky není dostupný | Potvrďte, že Microsoft-InsightsMetrics cílí na azureMonitorMetrics-default, počkejte několik minut na agregaci a ověřte, že fond má v současnosti uzly a podkladovou sadu škálování. |
| Duplicitní záznamy | Zkontrolujte, zda více DCR sbírá stejná data z poolu. Duplicitní sběr zvyšuje náklady na příjem dat. |
Pro umístění logů AMA a požadavky na disk viz požadavky Azure Monitor Agent. Informace o přidělování prostředků ve službě Batch a selháních uzlů najdete v článku Chyby fondů a uzlů Azure Batch.
Důležité informace o nákladech
Na Azure Monitor se můžou vztahovat poplatky za příjem dat do Log Analytics, uchovávání dat, upozornění a další povolené funkce. Pro kontrolu nákladů:
- Sbírejte pouze čítače a záznamy potřebné pro vaše monitorovací cíle.
- Používejte frekvenci vzorkování odpovídající vaší pracovní zátěži.
- Filtrujte disková data podle relevantních instancí přípojných bodů v dotazech a upozorněních.
- Vyhněte se přiřazování překrývajících se DCR ke stejnému fondu.
- Zkontrolujte nastavení uchovávání pracovních prostorů.
Pro více informací viz náklady a využití Azure Monitor a Plánujte řízení nákladů pro Azure Batch.
Vyčistěte zdroje
Když už monitorovaný pool nepotřebujete, smažte ho a všechny monitorovací zdroje, které nejsou sdíleny s jinými pracovními zátěžemi.
Chcete-li zachovat konfiguraci poolu, aniž by výpočetní uzly dále běžely, změňte velikost poolu na nulu:
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
Škálování na nulu může odstranit podkladovou sadu škálování virtuálního stroje. Data již uložená v Log Analytics zůstávají dostupná podle nastavení uchovávání pracovního prostoru.