Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Batch-kontoplattformens metrik ger information om pooler, noder, kärnor, jobb och uppgifter. För att övervaka gästoperativsystems prestanda, såsom CPU-, minnes-, disk- och nätverksanvändning, installera Azure Monitor Agent (AMA) på poolberäkningsnoderna.
Den här artikeln visar hur du:
- Skapa en Batch-pool med en användartilldelad hanterad identitet och AMA.
- Skapa en datainsamlingsregel (DCR) för Linux-prestandaräknare och Syslog.
- Koppla DCR till Batchpool-resursen.
- Verifiera data i Log Analytics och Azure Monitor Metrics.
Exemplen använder Azure CLI och en Linux-pool. Samma arkitektur stödjer Windows-pooler med Windows AMA-tillägget och Windows-datakällor.
Important
Övervakning av Batchpool-beräkningsnoder med AMA stöds endast för batchkonton som använder användarabonnemangspoolallokeringsläge . I allokeringsläget för Batch-tjänstpooler skapas beräkningsnoder i Batch-hanterade prenumerationer som kunder inte har åtkomst till.
Hur nodövervakning fungerar
En övervakad batchpool använder följande resurser:
- Ett Batch-konto i poolallokeringsläge för användarprenumeration.
- En Batch-pool som har en användartilldelad hanterad identitet.
- Azure Monitor Agent-tillägget installerades när poolen skapades.
- En DCR som specificerar vilka data som ska samlas in och destinationerna.
- En DCR-association vars mål är Batch pool Azure Resource Manager-resursen.
- Ett Log Analytics-arbetsområde för loggdata och, valfritt, Azure Monitor Metrics för gästmetrik.
Koppla DCR till Batchpoolens resurs-ID:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/
providers/Microsoft.Batch/batchAccounts/<batch-account>/pools/<pool-name>
Associera inte DCR enbart med den virtuella maskinskaleuppsättning som Batch skapar för poolen. Batch hanterar livscykeln för den skaluppsättningen. När en pool skalas ned till noll noder kan Batch ta bort skalningsuppsättningen och skapa en ny vid en senare storleksändring.
Log Analytics-poster behåller resurs-ID:t för den batchskapade beräkningsresursen. Gästmått är tillgängliga för den aktuella Batch-skapade skalningsuppsättningen för virtuella datorer i namnrymden azure.vm.linux.guestmetrics för Linux eller namnrymden Virtual Machine Guest (Windows) för Windows.
Förutsättningar
Innan du börjar behöver du:
- Ett Azure Batch-konto i användarprenumerationspoolallokeringsläge.
- Behörighet att skapa pooler genom att använda batchhanteringsplanet.
- En Log Analytics-arbetsyta.
- En användartilldelad hanterad identitet i samma Microsoft Entra-tenant som Batch-kontot.
- Tillstånd att skapa DCR:er och DCR-associationer. Mer information finns i Skapa och redigera regler för datainsamling i Azure Monitor.
- Azure CLI installerades och autentiserades mot prenumerationen.
Skapa DCR, Log Analytics-arbetsområdet och Batch-poolen i samma Azure-region. Om poolen använder ett virtuellt nätverk med begränsad utgående åtkomst, granska Azure Monitor Agents nätverkskrav.
Tip
Pooler med tillägg måste använda Virtual Machine Configuration. Du kan inte lägga till tillägg till en befintlig pool. För att lägga till, ta bort eller uppdatera AMA, skapa en ny pool. För mer information, se Använd tillägg med batchpooler.
Ange miljövariabler
Sätt variabler för dina resurser. Ersätt platshållarvärdena.
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"
Skapa en datainsamlingsregel
Följande datainsamlingsregel (DCR) samlar in vanliga Linux-prestandaräknare var 60:e sekund. Den skickar räknarna till både Perf tabellen i Log Analytics och Azure Monitor Metrics. Den skickar också varningar och Syslog-poster med högre allvarlighetsgrad till Log Analytics.
Azure Monitor Metrics som destination för gästprestandaräknare är i förhandsvisning. För nuvarande begränsningar, se Collect performance counters with Azure Monitor Agent.
Skapa en fil som heterdcr.json. Ersätt <location> och <workspace-resource-id> med dina värden.
{
"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"
]
}
]
}
}
Skapa eller uppdatera DCR:
az rest \
--method put \
--url "https://management.azure.com${dcrId}?api-version=2022-06-01" \
--body @dcr.json
Information om hur du väljer prestandaräknare och kontrollerar inmatningskostnaden finns i Samla in prestandaräknare med Azure Monitor Agent.
Skapa en pool med Azure Monitor Agent
Skapa en fil som heterpool.json. Följande exempel använder Ubuntu 22.04 och installerar Linux AMA-tillägget. Ersätt <managed-identity-resource-id> med värdet av $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"
}
}
}
}
Skapa poolen genom att använda Batch Management API:et:
az rest \
--method put \
--url "https://management.azure.com${poolResourceId}?api-version=2024-07-01" \
--body @pool.json
För en Windows-pool, använd:
- Tilläggstypen
AzureMonitorWindowsAgent. - En Windows-avbild och kompatibel batchnodagent-SKU.
- En Windows DCR med
kindsatt tillWindows. - Windows prestandaräknare och, vid behov, Windows händelseinsamling istället för Syslog.
Använd inte en DCR för både Windows- och Linux-räknare. Vissa räknarnamn kan lösa sig till samma metrik och orsaka dubblettinsamling.
Koppla DCR till batchpoolen
Skapa associationen på Batchpool-resursen:
az monitor data-collection rule association create \
--name "batch-pool-monitoring" \
--resource "$poolResourceId" \
--rule-id "$dcrId"
Bekräfta kopplingen:
az monitor data-collection rule association list \
--resource "$poolResourceId" \
--output table
Associeringen finns kvar i poolen när noder tas bort eller ersätts. Ersätt den inte med en associering som bara är riktad mot den aktuella skalningsuppsättningen för virtuella datorer som skapats av Batch.
Verifiera agent och loggsamling
Det kan ta upp till fem minuter efter att noden har nått inaktivt läge innan de första posterna kommer.
Verifiera agentens hjärtslag
Kör följande fråga i Log Analytics-arbetsytan:
Heartbeat
| where TimeGenerated > ago(30m)
| summarize
Samples = count(),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated),
AgentVersion = any(Version)
by Computer, _ResourceId
En operativ agent skickar normalt ett hjärtslag per minut.
Verifiera prestandaräknare
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
Linux logiska diskräknare inkluderar flera mount-point-instanser. Filtrera på InstanceName när du skapar diagram eller varningar så att skrivskyddade och temporära monteringar inte förvränger resultatet.
Kontrollera Syslog
Syslog
| where TimeGenerated > ago(30m)
| project
TimeGenerated,
Computer,
Facility,
SeverityLevel,
ProcessName,
SyslogMessage,
_ResourceId
| order by TimeGenerated desc
Visa gästmått
Om DCR skickar Microsoft-InsightsMetrics-strömmen till målet Azure Monitor Metrics visas gästmått på den aktuella skalningsuppsättningen för virtuella datorer som skapats av Batch.
- I Azure-portalen, öppna den virtuella maskinskalningsuppsättningen som Batch skapade för poolen.
- Välj Mått.
- För Metric Namespace, välj
azure.vm.linux.guestmetricsLinux eller Virtual Machine Guest (Windows) för Windows. - Välj ett mått och aggregering.
Du kan lokalisera det aktuella beräkningsresurs-ID:t i de senaste Perf-posterna:
Perf
| where TimeGenerated > ago(30m)
| summarize arg_max(TimeGenerated, _ResourceId) by Computer
Anmärkning
När en pool skalas ned till noll noder kan Batch ta bort den underliggande skalningsuppsättningen för virtuella datorer. Resursen för gästmetrik är inte tillgänglig så länge skaluppsättningen inte finns. Log Analytics-data som redan har samlats in i arbetsytan är fortsatt tillgängliga enligt arbetsytans inställningar för lagringstid.
Övervaka Batch-plattformsmetrik med noddata
Nodgästdata kompletterar de automatiskt insamlade Batch-kontoplattformsmetriken. Använd båda källorna:
- Använd batchkontomått som
TotalNodeCount,RunningNodeCount, ,IdleNodeCount,UnusableNodeCount,TaskStartEvent, ochTaskCompleteEventför att övervaka service- och schemaläggningstillstånd. - Använd gästprestandaräknare för att undersöka CPU-, minnes-, disk- och nätverksförhållanden på beräkningsnoderna.
- Använd batch-tjänstloggar för att korrelera pool-, jobb- och uppgiftslivscykelhändelser med nodbeteende.
För metrikdefinitioner och vägledning om aggregering, se Azure Batch monitoring data reference och Monitor Azure Batch.
Felsöka datainsamling
Använd följande kontroller när data inte anländer:
| Symptom | Kontroller |
|---|---|
| Inget pulsslag | Bekräfta att AMA-tillägget har provisionerats korrekt, att användartilldelad identitet är kopplad till poolen och refereras i tilläggsinställningarna, och att nödvändiga Azure Monitor-endpoints är tillgängliga. |
| AMA rapporterar att resursen inte är kopplad till en DCR | Bekräfta att DCR-associationen riktar sig mot Batchpoolens resurs-ID. En koppling enbart på den underliggande skalningsuppsättningen för virtuella datorer kan inte ersätta kopplingen till poolen. |
Hjärtslag kommer fram men Perf är tomt |
Bekräfta att det Microsoft-Perf finns både i prestandaräknarens datakälla och i ett dataflöde som riktar sig mot Log Analytics. Kolla räknarens spår och DCR-operativsystemtypen. |
| Gästmetriknamnrymden är inte tillgänglig | Kontrollera att Microsoft-InsightsMetrics riktar sig mot azureMonitorMetrics-default, vänta några minuter så att aggregeringen hinner slutföras och kontrollera att poolen för närvarande har noder och en underliggande skalningsuppsättning. |
| Duplicera poster | Kontrollera om flera DCR:er samlar in samma data från poolen. Insamling av duplicerade data ökar inmatningskostnaden. |
För AMA-loggplatser och diskkrav, se Azure Monitor Agents krav. För Batch-allokering och nodfel, se Azure Batch-pool- och nodfel.
Kostnadsöverväganden
Azure Monitor-avgifter kan tillkomma för Log Analytics-insamling, retention, alerts och andra aktiverade funktioner. För att kontrollera kostnaderna:
- Samla bara in de räknare och loggar som krävs för dina övervakningsmål.
- Använd en samplingsfrekvens som passar din arbetsbelastning.
- Filtrera diskdata efter meningsfulla mount-point-instanser i frågor och varningar.
- Undvik att koppla överlappande DCR:er till samma pool.
- Granska arbetsytans kvarhållningsinställningar.
För mer information, se Azure Monitor kostnad och användning samt Plan för att hantera kostnader för Azure Batch.
Rensa resurser
När du inte längre behöver den övervakade poolen, ta bort poolen och alla övervakningsresurser som inte delas med andra arbetsbelastningar.
För att behålla poolkonfigurationen utan att fortsätta köra beräkningsnoder, ändra storleken på poolen till noll:
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
Skalning ned till noll kan ta bort den underliggande skalningsuppsättningen för virtuella datorer. Data som redan lagras i Log Analytics är fortfarande tillgänglig enligt inställningarna för arbetsytans bevarande.