Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метрики платформы учетных записей пакетная служба Azure предоставляют информацию о пулах, узлах, ядрах, заданиях и задачах. Для мониторинга производительности гостевых операционных систем, таких как использование процессора, памяти, диска и сети, установите Azure Monitor Agent (AMA) на вычислительные узлы пула.
В этой статье показано, как сделать следующее:
- Создайте пакетный пул с управляемой идентичностью, назначенной пользователем, и AMA.
- Создайте правило сбора данных (DCR) для счётчиков производительности Linux и Syslog.
- Свяжите DCR с ресурсом Batch Pool.
- Проверьте данные в метриках Log Analytics и Azure Monitor.
Примеры используют Azure CLI и пул Linux. Та же архитектура поддерживает пулы Windows с расширением Windows AMA и источниками данных Windows.
Important
Мониторинг вычислительных узлов пула Batch с помощью AMA поддерживается только для учетных записей Batch, использующих режим выделения пула подписка пользователя. В режиме пакетного распределения пула сервисов вычислительные узлы создаются в подписках, управляемых пакетами, к которым клиенты не имеют доступа.
Как работает мониторинг узлов
Мониторируемый пул Batch использует следующие ресурсы:
- Пакетный аккаунт в режиме распределения пользовательского пула подписки.
- Пул Batch с управляемой идентичностью, назначаемой пользователем.
- Расширение Azure Monitor Agent устанавливается при создании пула.
- DCR, который указывает данные для сбора и пункты назначения.
- Ассоциация DCR, целевым объектом которой является ресурс Azure Resource Manager для пула Batch.
- Рабочее пространство Log Analytics для данных журналов и, по желанию, Azure Monitor Metrics для гостевых метрик.
Свяжите DCR с идентификатором ресурса пакетного пула:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/
providers/Microsoft.Batch/batchAccounts/<batch-account>/pools/<pool-name>
Не связывайте DCR только с набором масштабов виртуальной машины, который Batch создаёт для пула. Batch управляет жизненным циклом этого набора масштабов. Когда пул масштабируется до нуля узлов, Batch может удалить набор масштабов и создать новый при последующем изменении размера.
Записи Log Analytics сохраняют идентификатор вычислительного ресурса, созданного Batch. Гостевые метрики доступны в текущем масштабируемом наборе виртуальных машин, созданном с помощью Batch, в пространстве имён azure.vm.linux.guestmetrics для Linux или в пространстве имён Virtual Machine Guest (Windows) для Windows.
Prerequisites
Прежде чем начать, вам понадобится следующее:
- Учетная запись пакетная служба Azure в режиме выделения пула подписки пользователя.
- Разрешение на создание пулов с помощью плоскости управления Batch.
- Рабочая область Log Analytics.
- Управляемая идентичность, назначаемая пользователем в том же клиенте Microsoft Entra, что и учетная запись Batch.
- Разрешение на создание DCR и ассоциаций DCR. Для подробностей см. Создание и редактирование правил сбора данных в Azure Monitor.
- Azure CLI установлен и аутентифицирован по подписке.
Создайте DCR, рабочее пространство Log Analytics и пакетный пул в одном регионе Azure. Если пул использует виртуальную сеть с ограниченным исходящим доступом, проверьте требования сети Azure Monitor Agent.
Tip
Пулы с расширениями должны использовать конфигурацию виртуальной машины. Нельзя добавлять расширения в существующий пул. Чтобы добавить, удалить или обновить AMA, создайте новый пул. Для получения дополнительной информации см. раздел «Использование расширений с пакетными пулами».
Настройка переменных среды
Задайте переменные для своих ресурсов. Замените значения плейсхолдеров.
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"
Создание правила сбора данных
Следующее правило сбора данных (DCR) собирает общие счётчики производительности Linux каждые 60 секунд. Он отправляет счётчики как в таблицу Perf в Log Analytics, так и в Azure Monitor Metrics. Также она отправляет предупреждения и более серьёзные записи Syslog в Log Analytics.
Azure Monitor Metrics в качестве назначения для счётчиков производительности гостевой ОС находится на этапе предварительной версии. Для текущих ограничений см. Collect performance counters with Azure Monitor Agent.
Создайте файл с именемdcr.json. Замените <location> и <workspace-resource-id> собственными значениями.
{
"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"
]
}
]
}
}
Создайте или обновите DCR:
az rest \
--method put \
--url "https://management.azure.com${dcrId}?api-version=2022-06-01" \
--body @dcr.json
Сведения о выборе счетчиков производительности и управлении стоимостью приема данных см. в статье Сбор счетчиков производительности с помощью Azure Monitor Agent.
Создание пула с Azure Monitor Agent
Создайте файл с именемpool.json. Следующий пример использует Ubuntu 22.04 и устанавливает расширение Linux AMA. Замените <managed-identity-resource-id> на значение $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"
}
}
}
}
Создайте пул с помощью API управления пакетами:
az rest \
--method put \
--url "https://management.azure.com${poolResourceId}?api-version=2024-07-01" \
--body @pool.json
Для пула Windows используйте следующее:
- Тип расширения
AzureMonitorWindowsAgent. - Образ Windows и совместимый SKU агента узла Batch.
- Windows DCR, в котором для
kindзадано значениеWindows. - Счётчики производительности Windows и, если нужно, коллекцию событий Windows вместо Syslog.
Не используйте один DCR для счетчиков Windows и Linux. Некоторые названия счётчиков могут соответствовать одной и той же метрике и вызывать дублирование сбора данных.
Связывайте DCR с пакетным пулом
Создайте ассоциацию в ресурсе пакетного пула:
az monitor data-collection rule association create \
--name "batch-pool-monitoring" \
--resource "$poolResourceId" \
--rule-id "$dcrId"
Подтвердите ассоциацию:
az monitor data-collection rule association list \
--resource "$poolResourceId" \
--output table
Связь с пулом сохраняется при удалении или замене узлов. Не заменяйте её ассоциацией, которая применяется только к текущему набору масштабирования виртуальных машин, созданному Batch.
Проверка агента и сбор журналов
После того как узел перейдет в состояние простоя, подождите до пяти минут, прежде чем поступят первые записи.
Проверьте пульс агента
Выполните следующий запрос в рабочем пространстве Log Analytics:
Heartbeat
| where TimeGenerated > ago(30m)
| summarize
Samples = count(),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated),
AgentVersion = any(Version)
by Computer, _ResourceId
Оперативный агент обычно отправляет одно сердцебиение каждую минуту.
Проверьте счётчики производительности
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 включают несколько экземпляров точек монтирования. Фильтруйте по InstanceName при создании диаграмм или оповещений, чтобы точки монтирования только для чтения и временные точки монтирования не искажали результаты.
Проверьте Syslog
Syslog
| where TimeGenerated > ago(30m)
| project
TimeGenerated,
Computer,
Facility,
SeverityLevel,
ProcessName,
SyslogMessage,
_ResourceId
| order by TimeGenerated desc
Просмотр метрик гостей
Если DCR отправляет Microsoft-InsightsMetrics поток в адрес назначения Azure Monitor Metrics, гостевые метрики появляются в текущем наборе масштабирования виртуальной машины, созданной партией.
- В портале Azure откройте набор масштабов виртуальной машины, который Batch создал для пула.
- Выберите Метрики.
-
Для Metric Namespace выберите
azure.vm.linux.guestmetricsLinux или Virtual Machine Guest (Windows) для Windows. - Выберите метрику и агрегацию.
Вы можете найти текущий идентификатор вычислительного ресурса в недавних записях Perf:
Perf
| where TimeGenerated > ago(30m)
| summarize arg_max(TimeGenerated, _ResourceId) by Computer
Note
Когда пул масштабируется до нуля узлов, Batch может удалить его базовый набор масштабирования виртуальных машин. Ресурс гостевой метрики недоступен, пока масштабируемый набор не существует. Данные Log Analytics, уже собранные в рабочем пространстве, остаются доступны согласно настройкам сохранения рабочего пространства.
Отслеживайте метрики платформы Batch с данными об узлах
Гостевые данные узлов дополняют автоматически собираемые метрики платформы пакетного аккаунта. Используйте оба источника:
- Используйте метрики учётной записи Batch, такие как
TotalNodeCount,RunningNodeCount,IdleNodeCount,UnusableNodeCount,TaskStartEventиTaskCompleteEvent, для отслеживания состояния службы и планирования. - Используйте гостевые счётчики производительности для изучения состояний процессора, памяти, диска и сети на вычислительных узлах.
- Используйте журналы пакетных сервисов для сопоставления событий жизненного цикла пулов, заданий и задач с поведением узлов.
Для определений метрик и рекомендаций по агрегированию см. пакетная служба Azure monitoring data reference и Monitor пакетная служба Azure.
Устранение неполадок сбора данных
Используйте следующие проверки, если данные не поступают:
| Симптом | Чеки |
|---|---|
| Нет пульса | Убедитесь, что расширение AMA успешно развернуто, удостоверение, назначаемое пользователем, прикреплено к пулу и указано в параметрах расширения, а необходимые конечные точки Azure Monitor достижимы. |
| AMA сообщает, что ресурс не связан с DCR | Подтвердите, что ассоциация DCR нацелена на идентификатор ресурса пакетного пула. Связь только с базовым масштабируемым набором виртуальных машин не заменяет связь с пулом. |
Сердцебиение приходит, но Perf оно пустое |
Убедитесь, что Microsoft-Perf присутствует как в источнике данных счётчиков производительности, так и в потоке данных, направляемом в Log Analytics. Проверьте пути счётчика и тип операционной системы DCR. |
| Пространство имён гостевых метрик недоступно | Подтвердите эти Microsoft-InsightsMetrics цели azureMonitorMetrics-default, выделите несколько минут на агрегацию и убедитесь, что в пуле уже есть узлы и установленная шкала поддержки. |
| Повторяющиеся записи | Проверьте, есть ли несколько DCR, которые собирают одни и те же данные из пула. Сбор дубликатов данных увеличивает затраты на приём данных. |
Для размещения логов AMA и требований к диску см. требования агента Azure Monitor. Сведения о выделении ресурсов Batch и сбоях узлов см. в статье пакетная служба Azure pool and node errors.
Рекомендации по затратам
Плата за Azure Monitor может применяться к загрузке, удержанию, оповещениям и другим активным функциям Log Analytics. Для контроля стоимости:
- Собирайте только счётчики и логи, необходимые для ваших целей мониторинга.
- Используйте частоту дискретизации, подходящую для вашей нагрузки.
- Фильтруйте данные о дисках, используя значимые экземпляры точек монтирования в запросах и предупреждениях.
- Избегайте связывать перекрывающиеся DCR с одним и тем же пулом.
- Просмотрите параметры хранения рабочей области.
Дополнительные сведения см. в статьях Стоимость и использование Azure Monitor и Планирование управления затратами для пакетная служба Azure.
Очистите ресурсы
Когда вам больше не нужен контролируемый пул, удалите пул и все ресурсы мониторинга, которые не используются с другими нагрузками.
Чтобы сохранить конфигурацию пула без дальнейшего запуска вычислительных узлов, увеличите размер пула до нуля:
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
Масштабирование до нуля может удалить базовый набор масштабирования виртуальных машин. Данные, уже хранящиеся в Log Analytics, остаются доступны согласно настройкам сохранения рабочего пространства.