Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Platformmetrische gegevens van het Azure Batch-account bieden informatie over pools, knooppunten, kernen, jobs en taken. Om de prestaties van gastbesturingssystemen, zoals CPU-, geheugen-, schijf- en netwerkgebruik, te monitoren, installeer je Azure Monitor Agent (AMA) op de compute-nodes van de pool.
In dit artikel wordt uitgelegd hoe u het volgende kunt doen:
- Maak een Batchpool aan met een door de gebruiker toegewezen beheerde identiteit en AMA.
- Maak een dataverzamelingsregel (DCR) aan voor Linux-prestatietellers en Syslog.
- Koppel de DCR aan de Batch pool-resource.
- Verifieer gegevens in Log Analytics en Azure Monitor Metrics.
De voorbeelden gebruiken Azure CLI en een Linux-pool. Dezelfde architectuur ondersteunt Windows-pools met de Windows AMA-extensie en Windows-databronnen.
Important
Het monitoren van Batchpool-rekenknooppunten met AMA wordt alleen ondersteund voor Batchaccounts die gebruikmaken van gebruikersabonnementspool-allocatiemodus . In de Batch service pool allocatiemodus worden compute-nodes aangemaakt in Batch-beheerde abonnementen waar klanten geen toegang toe hebben.
Hoe nodemonitoring werkt
Een gemonitorde batchpool gebruikt de volgende bronnen:
- Een batchaccount in gebruikersabonnementspool-allocatiemodus.
- Een batchpool met een door de gebruiker toegewezen beheerde identiteit.
- De Azure Monitor Agent-extensie wordt geïnstalleerd wanneer de pool wordt aangemaakt.
- Een DCR die de te verzamelen gegevens en de bestemmingen specificeert.
- Een DCR-associatie waarvan het doel de Batch pool Azure Resource Manager resource is.
- Een Log Analytics-werkruimte voor logboekgegevens en, optioneel, Azure Monitor Metrics voor gastmetingen.
Koppel de DCR aan de Batchpool resource ID:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/
providers/Microsoft.Batch/batchAccounts/<batch-account>/pools/<pool-name>
Koppel de DCR niet alleen aan de virtual machine scale set die Batch voor de pool aanmaakt. Batch beheert de levenscyclus van die schaalset. Wanneer een pool schaalt naar nul nodes, kan Batch de scale set verwijderen en een nieuwe aanmaken tijdens een latere resize.
Log Analytics-records behouden de resource-ID van de batch-gegenereerde computeresource. Gastmetrische gegevens zijn beschikbaar voor de huidige door Batch gemaakte schaalset voor virtuele machines in de naamruimte azure.vm.linux.guestmetrics voor Linux of de naamruimte Virtual Machine Guest (Windows) voor Windows.
Prerequisites
Voordat u begint, hebt u het volgende nodig:
- Een Azure Batch-account in de modus toewijzing van pools in gebruikersabonnementen.
- Toestemming om pools te maken door gebruik te maken van het Batch management plane.
- Een Log Analytics-werkruimte.
- Een door de gebruiker toegewezen beheerde identiteit in dezelfde Microsoft Entra-tenant als het Batch-account.
- Toestemming om DCR's en DCR-associaties aan te maken. Voor details, zie Regels voor gegevensverzameling maken en bewerken in Azure Monitor.
- Azure CLI geïnstalleerd en geverifieerd voor het abonnement.
Maak de DCR, Log Analytics-werkruimte en Batchpool aan in dezelfde Azure-regio. Als de pool een virtueel netwerk gebruikt met beperkte uitgaande toegang, bekijk dan de netwerkvereisten van Azure Monitor Agent.
Tip
Pools met extensies moeten Virtual Machine Configuration gebruiken. Je kunt geen uitbreidingen toevoegen aan een bestaande pool. Om AMA toe te voegen, te verwijderen of bij te werken, maak je een nieuwe pool aan. Voor meer informatie, zie Gebruik extensies met batchpools.
Omgevingsvariabelen instellen
Stel variabelen in voor je middelen. Vervang de waarden van de tijdelijke aanduidingen.
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"
Een regel voor gegevensverzameling maken
De volgende dataverzamelingsregel (DCR) verzamelt elke 60 seconden veelvoorkomende Linux-prestatietellers. Het stuurt de tellers naar zowel de Perf tabel in Log Analytics als Azure Monitor Metrics. Het stuurt ook waarschuwings- en zwaardere Syslog-records naar Log Analytics.
Azure Monitor Metrics als bestemming voor prestatiemeteritems van gasten is beschikbaar als preview. Voor huidige beperkingen, zie Collect performance counters with Azure Monitor Agent.
Maak een bestand aan genaamd dcr.json. Vervang <location> en <workspace-resource-id> door uw waarden.
{
"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"
]
}
]
}
}
Maak de DCR aan of werk het bij:
az rest \
--method put \
--url "https://management.azure.com${dcrId}?api-version=2022-06-01" \
--body @dcr.json
Voor informatie over het selecteren van tellers en het beheersen van de invoerkosten, zie Collect performance counters with Azure Monitor Agent.
Een groep maken met Azure Monitor Agent
Maak een bestand aan genaamd pool.json. Het volgende voorbeeld gebruikt Ubuntu 22.04 en installeert de Linux AMA-extensie. Vervang <managed-identity-resource-id> door de waarde van $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"
}
}
}
}
Maak de pool aan met behulp van de Batch Management API:
az rest \
--method put \
--url "https://management.azure.com${poolResourceId}?api-version=2024-07-01" \
--body @pool.json
Voor een Windows pool gebruik je:
- Extensietype
AzureMonitorWindowsAgent. - Een Windows-image en een compatibele Batch node agent SKU.
- Een Windows DCR met
kindingesteld opWindows. - Windows prestatietellers en, indien nodig, Windows event collection in plaats van Syslog.
Gebruik niet één DCR voor zowel Windows- als Linux-counters. Sommige tellernamen kunnen naar dezelfde metriek verwijzen en tot dubbele verzameling leiden.
Koppel de DCR aan de batchpool
Maak de associatie aan op de Batchpool-resource:
az monitor data-collection rule association create \
--name "batch-pool-monitoring" \
--resource "$poolResourceId" \
--rule-id "$dcrId"
Bevestig de koppeling:
az monitor data-collection rule association list \
--resource "$poolResourceId" \
--output table
De associatie blijft gekoppeld aan de pool wanneer nodes worden verwijderd of vervangen. Vervang dit niet door een associatie die alleen is gericht op de huidige door Batch gemaakte schaalset voor virtuele machines.
Controleer de agent en logverzameling
Wacht tot vijf minuten nadat de node de idle-status heeft bereikt voordat de eerste records binnenkomen.
Controleer de hartslag van de agent
Voer de volgende query uit in de Log Analytics-werkruimte:
Heartbeat
| where TimeGenerated > ago(30m)
| summarize
Samples = count(),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated),
AgentVersion = any(Version)
by Computer, _ResourceId
Een operationeel agent stuurt normaal gesproken elke minuut één hartslag.
Controleer prestatietellers
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 logische schijftellers bevatten meerdere mount-point instanties. Filter op basis van InstanceName wanneer je grafieken of waarschuwingen maakt, zodat alleen-lezen-koppelingen en tijdelijke koppelingen het resultaat niet vertekenen.
Verifieer Syslog
Syslog
| where TimeGenerated > ago(30m)
| project
TimeGenerated,
Computer,
Facility,
SeverityLevel,
ProcessName,
SyslogMessage,
_ResourceId
| order by TimeGenerated desc
Bekijk gaststatistieken
Als de DCR de Microsoft-InsightsMetrics-stroom naar de Azure Monitor Metrics-bestemming stuurt, worden gastgegevens weergegeven op de huidige, door Batch gemaakte schaalset voor virtuele machines.
- Open in het Azure-portaal de virtual machine scale-set die Batch voor de pool heeft aangemaakt.
- Selecteer Metrische gegevens.
- Voor Metric Namespace, selecteer
azure.vm.linux.guestmetricsLinux of Virtual Machine Guest (Windows) voor Windows. - Selecteer een metriek en aggregateer.
Je kunt de huidige computeresource-ID vinden in recente Perf records:
Perf
| where TimeGenerated > ago(30m)
| summarize arg_max(TimeGenerated, _ResourceId) by Computer
Note
Wanneer een pool naar nul knooppunten schaalt, kan Batch de onderliggende virtuele-machineschaalset verwijderen. De bron voor gastmetingen is niet beschikbaar zolang de schaalset niet bestaat. Log Analytics-gegevens die al in de werkruimte zijn verzameld, blijven beschikbaar volgens de instellingen voor werkruimteretentie.
Bewaak metrische gegevens van het Batch-platform met gegevens van knooppunten
Node-gastgegevens vullen de automatisch verzamelde Batch-accountplatformstatistieken aan. Gebruik beide bronnen:
- Gebruik batch-accountstatistieken zoals
TotalNodeCount,RunningNodeCount, ,IdleNodeCount,UnusableNodeCount,TaskStartEvent, enTaskCompleteEventom de status van service en planning te monitoren. - Gebruik gastprestatie-tellers om de condities van CPU, geheugen, schijf en netwerk op de rekenknopen te onderzoeken.
- Gebruik batch-servicelogs om pool-, job- en taaklevenscyclusgebeurtenissen te correleren met het gedrag van de knooppunten.
Voor metriekdefinities en aggregatierichtlijnen, zie Azure Batch monitoring data reference en Monitor Azure Batch.
Problemen met het verzamelen van gegevens oplossen
Gebruik de volgende controles wanneer gegevens niet binnenkomen:
| Symptoom | Controles |
|---|---|
| Geen hartslag | Bevestig dat de AMA-extensie succesvol is geprovisioneerd, dat de door de gebruiker toegewezen identiteit aan de pool is gekoppeld en in de extensie-instellingen wordt vermeld, en dat de benodigde Azure Monitor-endpoints bereikbaar zijn. |
| AMA meldt dat de bron niet verbonden is aan een DCR | Bevestig dat de DCR-associatie zich richt op de Batchpool resource ID. Een associatie die alleen bestaat op de onderliggende Virtual Machine Scale Set, is geen vervanging voor de koppeling met de pool. |
Heartbeat komt binnen maar Perf is leeg |
Controleer of Microsoft-Perf aanwezig is in zowel de gegevensbron voor prestatiemeteritems als in een gegevensstroom die is gericht op Log Analytics. Controleer de paden van de tellers en het type besturingssysteem van DCR. |
| Gastmetrieknaamruimte is niet beschikbaar | Bevestig dat Microsoft-InsightsMetrics is gericht op azureMonitorMetrics-default, wacht enkele minuten tot de aggregatie is voltooid en bevestig dat de pool momenteel knooppunten en een onderliggende schaalset heeft. |
| Dubbele gegevens | Controleer of er meerdere DCR's zijn die dezelfde data uit de pool verzamelen. Dubbele verzameling verhoogt de kosten voor gegevensinname. |
Voor AMA-loglocaties en schijfvereisten, zie Azure Monitor Agent requirements. Zie Azure Batch-pool- en knooppuntfouten voor Batch-toewijzing en knooppuntfouten.
Kostenoverwegingen
Azure Monitor-kosten kunnen worden toegepast op Log Analytics-opname, retentie, alerts en andere ingeschakelde functies. Om de kosten te beheersen:
- Verzamel alleen de tellers en logs die nodig zijn voor je monitoringdoelen.
- Gebruik een samplefrequentie die geschikt is voor jouw werkdruk.
- Filter schijfgegevens op relevante mountpoint-instanties in query's en waarschuwingen.
- Vermijd het koppelen van overlappende DCR's aan dezelfde pool.
- Controleer de retentie-instellingen van de werkruimte.
Voor meer informatie, zie Azure Monitor kosten en gebruik en Plan om kosten te beheren voor Azure Batch.
De hulpbronnen opschonen
Wanneer je de gemonitorde pool niet meer nodig hebt, verwijder dan de pool en alle monitoringbronnen die niet gedeeld worden met andere workloads.
Om de poolconfiguratie te behouden zonder steeds rekenknopen te laten draaien, verklein je de pool naar nul:
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
Scaling naar nul kan de backing virtual machine scale set verwijderen. Gegevens die al in Log Analytics zijn opgeslagen, blijven beschikbaar volgens de instellingen voor werkruimteretentie.