Руководство по миграции агента Azure Monitor (AMA) для кластеров Azure HDInsight
Azure HDInsight — это служба управляемых кластеров, готовая для корпоративного применения. Данная служба предоставляет такие платформы аналитики с открытым кодом, как Apache Spark, Hadoop, HBase и Kafka в Azure. Azure HDInsight интегрирован с другими службами Azure, чтобы клиенты могли лучше управлять приложениями аналитики больших данных.
Log Analytics предоставляет инструмент на портале Azure, позволяющий изменять и выполнять запросы журналов. Запросы выполняются для данных, собранных журналами Azure Monitor, а их результаты анализируются в интерактивном режиме. Клиенты могут использовать запросы Log Analytics для извлечения записей, соответствующих указанным условиям. Они также могут использовать запросы для выявления трендов, анализа закономерностей и извлечения ценных сведений из данных.
Служба Azure HDInsight начала поддерживать интеграцию с Log Analytics в 2017 году. Клиенты HDInsight быстро освоили эту функцию для отслеживания кластеров HDInsight и выполнения запросов к журналам в кластерах. Хотя внедрение этой функции увеличилось, клиенты предоставили отзывы об интеграции:
Клиенты не могут решить, какие журналы хранить, а хранение всех журналов может оказаться дорогостоящим.
Текущие журналы схем HDInsight не соответствуют согласованным соглашениям об именовании, а некоторые таблицы повторяются.
Клиенты хотят получить готовую панель мониторинга, чтобы легко отслеживать КПЭ своих кластеров HDInsight.
Клиентам приходится переходить в Log Analytics для выполнения простых запросов.
Обзор решения
Учитывая отзывы клиентов, команда разработчиков Azure HDInsight реализовала интеграцию с Azure Monitor. Эта интеграция предоставляет следующие возможности.
Новый набор таблиц в рабочей области Log Analytics клиентов. Новые таблицы доставляются через новый конвейер Log Analytics.
Более высокая надежность.
Быстрая доставка журналов.
Группирование таблиц на основе ресурсов и запросы по умолчанию.
Улучшена безопасность с помощью управляемого удостоверения системы для рабочих областей агента Azure Monitor.
Автоматическое создание ресурсов DCR для существующих таблиц.
Примечание.
Интеграция агента Azure Monitor (AMA) (включая DCR и проверку подлинности системных удостоверений) доступна во всех регионах, где доступно HDInsight.
Преимущества интеграции агента Azure Monitor (AMA)
Этот документ описывает изменения в интеграции с Azure Monitor и дает рекомендации по использованию новых таблиц.
Переработанные схемы. Форматирование схем для новой интеграции с Azure Monitor стало лучше организованным и более понятным. Число схем уменьшилось на две трети, чтобы устранить как можно больше неоднозначностей в предыдущих схемах.
Выборочное ведение журнала. Существуют журналы и метрики, доступные в Log Analytics. Чтобы сэкономить на затратах на мониторинг, мы выпускаем новую функцию выборочного ведения журнала. Эта функция позволяет включать и отключать различные журналы и источники метрик. С помощью этой функции необходимо заплатить за то, что вы используете. Дополнительные сведения см. в разделе "Выборочное ведение журнала".
Интеграция портала кластера журналов: область журналов является новой для портала кластера HDInsight. Любой пользователь, имеющий доступ к кластеру, может перейти на эту панель, чтобы запросить любую таблицу, в которую ресурс кластера отправляет записи. Пользователям больше не требуется доступ к рабочей области Log Analytics, чтобы просматривать записи для определенного ресурса кластера.
Интеграция с порталом кластера Аналитики. Область "Аналитика" также является новой для портала кластера HDInsight. После включения новой интеграции с Azure Monitor вы можете выбрать панель Аналитика, при этом готовые журналы и панель мониторинга метрик, зависящие от типа кластера, будут заполняться автоматически. Эти панели мониторинга обновлены из предыдущих решений Azure. Они дают подробную информацию о производительности и работоспособности кластера.
Пользовательские сценарии
В следующих разделах описывается, как клиенты могут использовать новую интеграцию агента Azure Monitor в различных сценариях.
В разделе "Активация нового агента Azure Monitor" описано, как активировать и использовать новую интеграцию Azure Monitor.
Переход с Классической версии Azure Monitor на новый раздел интеграции агента Azure Monitor содержит дополнительные сведения для пользователей, которые зависят от интеграции Azure Monitor старшего возраста.
Примечание.
Клиенты, использующие Классическую версию Azure Monitor, больше не будут работать после 31 августа 2024 г.
Клиенты, использующие новый интерфейс Azure Monitor (предварительная версия), необходимы для миграции в агент Azure Monitor (AMA) до 31 января 2025 г.
Кластеры с 2407260448 образа с последней версией API HDInsight 2024-08-01-preview смогут включить интеграцию агента Azure Monitor, и это будет настройка по умолчанию для клиентов, использующих образ 2407260448.
Активация новой интеграции агента Azure Monitor
Примечание.
Перед включением новой интеграции агента Azure Monitor необходимо создать рабочую область Log Analytics, созданную в подписке. Если вы выполняете миграцию из Azure Monitor в настройку агента Azure Monitor, вы можете повторно использовать рабочую область Log Analytics из существующего кластера.
Ожидается, что вы будете использовать тот же регион Azure для рабочей области Log Analytics и кластера HDInsight для более плавной миграции.
Дополнительные сведения о создании рабочей области Log Analytics см. в разделе Создание рабочей области Log Analytics на портале Azure.
Подход 1. Включение агента Azure Monitor с помощью портала
Активируйте новую интеграцию, перейдя на страницу портала кластера и прокрутив вниз меню слева, пока не появится раздел Мониторинг.
В разделе Мониторинг выберите Интеграция с Monitor.
Затем выберите Включить, и вы сможете выбрать рабочую область Log Analytics, куда будут отправляться журналы.
Включите интеграцию агента Azure Monitor с Log Analytics и выберите рабочую область (существующую рабочую область при миграции с предыдущего образа на новый образ).
После подтверждения выбора рабочей области начнется предварительный этап.
Нажмите кнопку "Сохранить после завершения предварительных действий".
Подход 2. Включение агента Azure Monitor с помощью Azure PowerShell
Включение назначаемого системой MSI
Сначала получите сведения о кластере, чтобы проверить MSI кластера.
Get-AzHDInsightCluster -ResourceGroupName $resourceGroup –ClusterName $cluster
Если в этом кластере нет MSI, напрямую включите назначенный системой MSI
Update-AzHDInsightCluster -ResourceGroupName $resourceGroup -ClusterName $cluster -IdentityType "SystemAssigned"
Если в этом кластере назначен только MSI, добавьте в удостоверение назначенный системой MSI.
Update-AzHDInsightCluster -ResourceGroupName $resourceGroup -ClusterName $cluster -IdentityType "SystemAssigned,UserAssigned" -IdentityId "$userAssignedIdentityResourceId"
Если этот кластер уже назначен системой MSI, ничего не требуется.
Создание DCR
Дополнительные сведения см. в разделе "Создание и изменение правил сбора данных" (DCR).
# The URL of the DCR template file, change {HDIClusterType} to your cluster type. # The valid types are: hadoop, hbase, interactivehive, kafka, llap, spark $dcrTemplatejsonUrl = "https://hdiconfigactions.blob.core.windows.net/azuremonitoriningagent/DCR/{HDIClusterType}_dcr_template.json" $dcrJsonContent = Invoke-RestMethod -Uri $dcrTemplatejsonUrl # Get details of your Log Analytics workspace, if your workspace is in another subscription, you need to change context to the subscription $workspaceResourceGroupName = "{yourWorkspaceResourceGroup}" $workspaceName = {yourWorkspaceName} $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $workspaceResourceGroupName -Name $workspaceName # Customize the DCR content $dcrJsonContent.properties.destinations.logAnalytics[0].workspaceResourceId = $workspace.ResourceId $dcrJsonContent.properties.destinations.logAnalytics[0].workspaceId = $workspace.CustomerId $dcrJsonContent.location = $workspace.Location # Create the DCR using the customized JSON (DCR needs to be in the same location as Log Analytics workspace). # If your HDInsight cluster is in another subscription, you need to change context to your cluster’s subscription $dcrName = " {yourDcrName} " $resourceGroupName = " {YourDcrResourceGroup} " $dcrStr = $dcrJsonContent | ConvertTo-Json -Depth 10 $dcr = New-AzDataCollectionRule -Name $dcrName -ResourceGroupName $resourceGroupName -JsonString $dcrStr
Ассоциация DCR.
Дополнительные сведения см. в статье "Настройка агента Azure Monitor на клиентских устройствах Windows".
# Associate DCR to HDInsight cluster $hdinsightClusterResourceId = "/subscriptions/{subscription}/resourceGroups/{resourceGroup}/providers/Microsoft.HDInsight/clusters/{clusterName}" $dcrAssociationName = "{yourDcrAssociation}" New-AzDataCollectionRuleAssociation -AssociationName $dcrAssociationName -ResourceUri $hdinsightClusterResourceId -DataCollectionRuleId $dcr.Id
Включение агента Azure Monitor.
# Enter user information $resourceGroup = "<your-resource-group>" $cluster = "<your-cluster>" $LAW = "<your-Log-Analytics-workspace>" # End of user input # obtain workspace id for defined Log Analytics workspace $WorkspaceId = (Get-AzOperationalInsightsWorkspace -ResourceGroupName $resourceGroup -Name $LAW).CustomerId # obtain primary key for defined Log Analytics workspace $PrimaryKey = (Get-AzOperationalInsightsWorkspace -ResourceGroupName $resourceGroup -Name $LAW | Get-AzOperationalInsightsWorkspaceSharedKeys).PrimarySharedKey # Enables monitoring and relevant logs will be sent to the specified workspace. Enable-AzHDInsightAzureMonitorAgent -ResourceGroupName $resourceGroup -ClusterName $cluster -WorkspaceId $WorkspaceId -PrimaryKey $PrimaryKey # Gets the status of monitoring installation on the cluster. Get-AzHDInsightAzureMonitorAgent -ResourceGroupName $resourceGroup -ClusterName $cluster
Отключение агента Azure Monitor (необязательно).
Disable-AzHDInsightAzureMonitorAgent -ResourceGroupName $resourceGroup -ClusterName $cluster
Подход 3. Включение агента Azure Monitor с помощью Azure CLI
Включите назначаемую системой MSI.
Сначала получите сведения о кластере, чтобы проверить MSI кластера.
az hdinsight show –-resource-group $resourceGroup –name $cluster #get access token if needed accessToken=$(az account get-access-token --query accessToken -o tsv) url="https://management.azure.com/subscriptions/${subscriptionId}/resourcegroups/${resourceGroupName}/providers/Microsoft.HDInsight/clusters/${clusterName}?api-version=2024-08-01-preview"
Если в этом кластере нет MSI, напрямую включите назначенный системой MSI через rest API.
body="{\"identity\": {\"type\": \"SystemAssigned\"}}" az rest --method patch --url "$url" --body "$body" --headers "Authorization=Bearer $accessToken"
Если в этом кластере назначен только MSI, добавьте в удостоверение назначенный системой MSI.
body="{\"identity\": {\"type\": \"SystemAssigned,UserAssigned\", \"userAssignedIdentities\": {$userAssignedIdentityResourceId:{}}}}" az rest --method patch --url "$url" --body "$body" --headers "Authorization=Bearer $accessToken"
Если этот кластер уже назначен системой MSI, ничего не требуется.
Создание DCR.
Дополнительные сведения см. в разделе "Создание и изменение правил сбора данных" (DCR)
# The URL of the DCR template file, change {HDIClusterType} to your cluster type. # The valid types are: hadoop, hbase, interactivehive, kafka, llap, spark $dcrTemplatejsonUrl = "https://hdiconfigactions.blob.core.windows.net/azuremonitoriningagent/DCR/{HDIClusterType}_dcr_template.json?api-version=2020-08-01" # Download dcr template to local $dcrTemplateLocalFile = "dcrTemplateFileName.json" azcopy copy $dcrTemplatejsonUrl $dcrTemplateLocalFile # Set subscription az account set --subscription "{yourSubscription}" # Get details of your Log Analytics workspace $workspaceResourceGroupName = "{yourWorkspaceResourceGroup}" $workspaceName = "{yourWorkspaceName}" $workspace = az monitor log-analytics workspace show --resource-group $workspaceResourceGroupName --workspace-name $workspaceName # Customize the DCR content. Below script depends on jq, you need to install it if it’s not available in your environment. $workspaceResourceId = $workspace | jq -r '.id' $workspaceId = $workspace | jq -r '.customerId' $location = $workspace | jq -r '.location' # Read the JSON file $templateJsonData=cat $dcrTemplateLocalFile # Update the JSON fields using jq $templateJsonData=echo $templateJsonData | jq --arg workspaceResourceId $workspaceResourceId '.properties.destinations.logAnalytics[0].workspaceResourceId = $workspaceResourceId' $templateJsonData=echo $templateJsonData | jq --arg workspaceId $workspaceId '.properties.destinations.logAnalytics[0].workspaceId = $workspaceId' $templateJsonData=echo $templateJsonData | jq --arg location $location '.location = $location' # Save the updated JSON back to the file echo $templateJsonData > $dcrTemplateLocalFile # Print the updated JSON cat $dcrTemplateLocalFile # Create the DCR using the customized JSON (DCR needs to be in the same location as Log Analytics workspace) # If your HDInsight cluster is in another subscription, you need to set subscription to your cluster’s subscription $dcrName = "{yourDcrName}" $resourceGroupName = "{YourDcrResourceGroup}" # Suggest to put DCR in the same resource group as your HDInsight cluster $dcr = az monitor data-collection rule create --name $dcrName --location $location --resource-group $resourceGroupName --rule-file $dcrTemplateLocalFile
Ассоциация DCR
# Associate DCR to HDInsight cluster $hdinsightClusterResourceId = "{YourHDInsightClusterResourceId}" $dcrAssociationName = "{yourDcrAssociation}" $dcrId = $dcr | jq -r '.id' az monitor data-collection rule association create --association-name $dcrAssociationName --resource $hdinsightClusterResourceId --data-collection-rule-id $dcrId
Включение агента Azure Monitor
# set variables export resourceGroup=RESOURCEGROUPNAME export cluster=CLUSTERNAME export LAW=LOGANALYTICSWORKSPACENAME # Enable the Azure Monitor Agent logs integration on an HDInsight cluster. az hdinsight azure-monitor-agent enable --name $cluster --resource-group $resourceGroup --workspace $LAW # Get the status of Azure Monitor Agent logs integration on an HDInsight cluster. az hdinsight azure-monitor-agent show --name $cluster --resource-group $resourceGroup
Отключение агента Azure Monitor (необязательно).
az hdinsight azure-monitor-agent disable --name $cluster --resource-group $resourceGroup
Включение ведения журнала агента Azure Monitor для кластера Spark
Кластеры Azure HDInsight Spark управляют интеграцией AMA с помощью конфигурации spark.hdi.ama.enabled
Spark по умолчанию значение false. Эта конфигурация определяет, будут ли определенные журналы Spark в рабочей области Log Analytics. Если вы хотите включить AMA в кластерах Spark и получить журналы событий Spark в рабочих областях LA, необходимо выполнить дополнительный шаг, чтобы включить AMA для определенных журналов Spark.
Ниже описано, как клиенты могут включить новое ведение журнала агента Azure Monitor для рабочих нагрузок Spark.
Перейдите в Ambari —> Конфигурации Spark.
Перейдите к пользовательским значениям Spark по умолчанию и найдите конфигурацию
spark.hdi.ama.enabled
, значение по умолчанию этой конфигурации будет false. Задайте это значение как true.Щелкните "Сохранить и перезапустить службы Spark" на всех узлах.
Доступ к таблицам в рабочей области LA.
Доступ к новым таблицам
Доступ к новым таблицам можно получить двумя способами.
Способ 1
Первый способ доступа к новым таблицам заключается в использовании рабочей области Log Analytics.
Перейдите в рабочую область Log Analytics, выбранную при включении интеграции.
Прокрутите вниз меню в левой части экрана и выберите Журналы. Откроется окно редактора запросов журналов со списком всех таблиц в рабочей области.
Если таблицы, сгруппированные по решению, новые таблицы HDInsight находятся в разделе "Управление журналами".
Если вы группируете таблицы по типу ресурса, таблицы находятся в разделе кластеров HDInsight, как показано на рисунке.
Примечание.
Этот процесс описывает, как доступ к журналам осуществлялся в старой интеграции. Для этого пользователь должен иметь доступ к рабочей области.
Способ 2.
Второй способ доступа к новым таблицам заключается в использовании портала кластера.
Перейдите на страницу портала кластера и прокрутите вниз меню слева, пока не появится раздел Мониторинг. В этом разделе вы увидите панель Журналы.
Выберите Журналы, и откроется окно редактора запросов журналов. Этот редактор содержит все журналы, связанные с ресурсом кластера. Вы отправили журналы в рабочую область Log Analytics при включении интеграции. Эти журналы обеспечивают управление доступом на основе ресурсов (RBAC). При использовании RBAC пользователи, имеющие доступ к кластеру, но не к рабочей области, могут просматривать журналы, связанные с кластером.
Для сравнения на следующих снимках экрана показаны представления рабочей области для старой и новой интеграции.
Представление рабочей области интеграции прежних версий (Классическая модель Azure Monitor)
Новое представление рабочей области интеграции (интерфейс Azure Monitor или агент Azure Monitor)
Использование новых таблиц
Запросы по умолчанию для использования с новыми таблицами
В редакторе запросов журналов установите переключатель над списком таблиц в положение Запросы. Убедитесь, что запросы группируются по параметру Тип ресурсов, а для типа ресурса не задан никакой фильтр, отличный от Кластеры HDInsight. На следующем рисунке показано, как выглядят результаты при группировании по параметру Тип ресурсов и фильтрации по параметру Кластеры HDInsight. Просто выберите один из элементов, и он появится в редакторе запросов журналов. Обязательно прочтите комментарии, содержащиеся в запросах, так как в некоторых случаях для успешного выполнения запроса может потребоваться ввести некоторую информацию, например имя кластера.
Создание собственных запросов
В редакторе запросов журналов можно вводить собственные запросы. Запросы, используемые для старых таблиц, не будут работать в новых таблицах, так как многие из новых таблиц имеют новые доработанные схемы. Запросы по умолчанию являются отличной основой для создания запросов для новых таблиц.
Аналитические выводы (Insights)
Аналитика — это панели мониторинга визуализации, относящиеся к кластеру, которые созданы с помощью книг Azure. Эти панели мониторинга содержат подробные графы и визуализации о работе кластера. На панелях мониторинга есть разделы для каждого типа кластера, YARN, системных метрик и журналов компонентов. Доступ к панели мониторинга кластера можно получить, перейдя на страницу кластера на портале, прокрутив вниз до раздела Мониторинг и выбрав область Аналитика. Панель мониторинга загружается автоматически, если включена новая интеграция. Подождите несколько секунд, чтобы графы запросили журналы и загрузились.
Пользовательские книги Azure
Вы можете создавать собственные книги Azure с пользовательскими графами и визуализациями. На странице портала кластера прокрутите вниз до раздела Мониторинг и выберите область Книги в меню слева. Вы можете использовать либо пустой шаблон, либо один из шаблонов в разделе Кластеры HDInsight. Существует шаблон для каждого типа кластера. Шаблоны удобны, если необходимо сохранить определенные настройки, которые аналитика HDInsight Insights по умолчанию не предоставляет. Вы можете отправлять запросы на новые функции в HDInsight Insights, если вы считаете, что там чего-нибудь не хватает.
видны узлы
Вы можете добавить настраиваемые оповещения в кластеры и рабочие области в редакторе запросов журналов. Перейдите в редактор запросов журналов, выбрав область Журналы на портале кластеров или рабочих областей. Выполните запрос, а затем выберите Новое правило генерации оповещений, как показано на следующем снимке экрана. Для получения дополнительных сведений ознакомьтесь с настройкой оповещений.
Миграция на новую интеграцию агента Azure Monitor
Если вы используете классическую интеграцию с Azure Monitor, после переключения на новую интеграцию с Azure Monitor нужно внести некоторые изменения в новые форматы таблиц.
Чтобы включить новую интеграцию Azure Monitor, выполните действия, описанные в разделе "Активация нового агента Azure Monitor".
Выполнение запросов в Log Analytics
Так как новый формат таблиц отличается от предыдущего, нужно переработать запросы, чтобы можно было использовать новые таблицы. После включения новой интеграции с Azure Monitor вы можете просмотреть таблицы и схемы, чтобы найти поля, используемые в старых запросах.
Мы предоставляем таблицу сопоставления между старой и новой таблицами, которая поможет быстро найти новые поля, которые следует использовать для переноса панелей мониторинга и запросов.
Запросы по умолчанию. Мы создали запросы по умолчанию, которые показывают, как использовать новые таблицы в типичных ситуациях. Запросы по умолчанию также показывают, какие сведения доступны в каждой таблице. Вы можете получить доступ к запросам по умолчанию, следуя инструкциям в разделе Запросы по умолчанию для использования с новыми таблицами этой статьи.
Обновление панелей мониторинга для кластеров HDInsight
Если вы создаете несколько панелей мониторинга для мониторинга кластеров HDInsight, необходимо настроить запрос за таблицей после включения новой интеграции Azure Monitor. Имя таблицы или имя поля в новой интеграции может измениться, однако все сведения, содержащиеся в старой интеграции, сохраняются.
См. таблицу сопоставления между старой таблицей или схемой новой таблицы или схемы, чтобы обновить запрос за панелями мониторинга.
Готовые панели мониторинга
Мы также улучшили готовые панели мониторинга на уровне кластера. В правом верхнем углу каждого графа есть кнопка, позволяющая увидеть базовый запрос, формирующий данную информацию. Граф — это отличный способ познакомиться с эффективным выполнением запросов для новых таблиц.
Сроки выпуска и поддержки
Классическая интеграция мониторинга Azure недоступна после 15 октября 2021 г. После этой даты включить классическую интеграцию мониторинга Azure будет невозможно.
Классический прием интеграции с Azure Monitoring не будет работать после 31 августа 2024 г.
Кластеры HDInsight с интеграцией Azure Monitor (предварительная версия) не будут поддерживаться за 1 февраля 2025 г.
Существующая интеграция Azure Monitor (предварительная версия) продолжит работать до 31 января 2025 г. Будет ограничена поддержка интеграции Azure Monitor (предварительная версия).
Если для решения требуется сменить образ, клиентам необходимо перейти на новую интеграцию.
Корпорация Майкрософт не исправит кластеры интеграции Azure Monitor (предварительная версия), за исключением критических проблем с безопасностью.
HDInsightGatewayAuditLogs_CL
Таблица больше не будет работать с 14 сентября 2026 г., так как API сборщика данных HTTP Azure Monitor не рекомендуется.
Приложение. Сопоставление таблиц
Сопоставления таблиц журналов из классической интеграции Azure Monitor с новой см. в разделе "Сопоставление таблиц журналов".