Compartilhar via


Guia de migração do AMA (agente do Azure Monitor) para clusters do Azure HDInsight

O Azure HDInsight é um serviço de cluster gerenciado pronto para a empresa. Esse serviço executa estruturas de análise de software livre como o Apache Spark, o Hadoop, o HBase e o Kafka no Azure. O Azure HDInsight integrou-se a outros serviços do Azure para permitir que os clientes gerenciem melhor os aplicativos de análise de Big Data.

O Log Analytics fornece uma ferramenta no portal do Azure para editar e executar consultas de log. As consultas são provenientes dos dados coletados pelos logs do Azure Monitor e analisam os resultados de maneira interativa. Os clientes podem usar consultas do Log Analytics para recuperar registros que correspondem a critérios específicos. Eles também podem usar consultas para identificar tendências, analisar padrões e fornecer insights sobre os dados.

O Azure HDInsight habilitou a integração ao Log Analytics em 2017. Os clientes do HDInsight adotaram rapidamente esse recurso para monitorar clusters do HDInsight e consultar os logs nos clusters. Embora a adoção desse recurso tenha aumentado, os clientes forneceram comentários sobre a integração:

  • Eles não podem decidir quais logs serão armazenados, e o armazenamento de todos os logs pode custar caro.

  • Os logs atuais de esquemas do HDInsight não seguem convenções de nomenclatura consistentes, e algumas tabelas são repetitivas.

  • Os clientes desejam obter um painel pronto para uso para monitorar com facilidade o KPI dos clusters do HDInsight.

  • Eles precisam acessar o Log Analytics para executar consultas simples.

Visão geral da solução

Considerando os comentários dos clientes, a equipe do Azure HDInsight investiu na integração ao Azure Monitor. Essa integração permite:

  • Um novo conjunto de tabelas no workspace do Log Analytics do cliente. As novas tabelas são entregues por meio de um novo pipeline do Log Analytics.

  • Maior confiabilidade.

  • Entrega de logs mais rápida.

  • Agrupamento de tabelas baseado em recursos e consultas padrão.

  • Segurança aprimorada com a Identidade Gerenciada do Sistema para os workspaces do agente do Azure Monitor.

  • Criação automatizada de recursos DCR para as tabelas existentes.

Observação

A integração do AMA (agente do Azure Monitor) (incluindo DCR e Autenticação de Identidade do Sistema) está disponível em todas as regiões em que o HDInsight está disponível.

Benefícios da integração do AMA (Agente do Azure Monitor)

Este documento descreve as alterações na integração do Azure Monitor e fornece as melhores práticas para o uso das novas tabelas.

Esquemas reformulados: a formatação dos esquemas para a nova integração do Azure Monitor ficou mais organizada e fácil de entender. Há dois terços a menos de esquemas para remover o máximo possível de ambiguidade nos esquemas herdados.

Log seletivo: há logs e métricas disponíveis por meio do Log Analytics. Para ajudar você a economizar em custos de monitoramento, estamos lançando um novo recurso de log seletivo. Use esse recurso para ativar e desativar diferentes logs e fontes de métrica. Com esse recurso, você só precisará pagar pelo que usar. Para obter mais informações, confira Registro em log seletivo.

Integração dos logs ao portal de cluster: o painel Logs é uma novidade do portal do cluster do HDInsight. Qualquer pessoa com acesso ao cluster pode acessar esse painel para consultar qualquer tabela para a qual o recurso de cluster envia registros. Os usuários não precisam mais acessar o workspace do Log Analytics para ver os registros de um recurso de cluster específico.

Integração dos insights ao portal de cluster: o painel Insights também é uma novidade do portal do cluster do HDInsight. Depois de habilitar a nova integração do Azure Monitor, selecione o painel Insights e um painel de logs e métricas pronto para uso específico do tipo de cluster será preenchido automaticamente para você. Esses painéis foram reformulados com base em nossas soluções anteriores do Azure. Eles fornecem insights detalhados sobre o desempenho e a integridade do seu cluster.

Cenários de clientes

As seções a seguir descrevem como os clientes podem usar a nova integração do agente do Azure Monitor em diferentes cenários.

Observação

Os clientes que usam o Azure Monitor Classic não funcionarão mais após 31 de agosto de 2024.
Os clientes que usam a nova experiência do Azure Monitor (versão prévia) devem migrar para o AMA (Agente do Azure Monitor) antes de 31 de janeiro de 2025. Os clusters com a imagem 2407260448 com o 2024-08-01-preview da API do HDInsight terão a capacidade de habilitar a integração do Agente do Azure Monitor e essa será a configuração padrão para clientes que usam a imagem 2407260448.

Ativar uma nova integração do agente do Azure Monitor

Observação

Você precisará ter um workspace do Log Analytics criado em uma assinatura à qual você tenha acesso antes de habilitar a integração do agente do Azure Monitor. Caso esteja migrando da experiência do Azure Monitor para a instalação do Agente do Azure Monitor, você poderá reutilizar seu workspace do Log Analytics do cluster existente

Espera-se que você use a mesma região do Azure para o workspace do Log Analytics e o cluster HDInsight para uma migração mais suave.

Para obter mais informações sobre como criar um workspace do Log Analytics, confira Criar um workspace do Log Analytics no portal do Azure.

Abordagem 1: Habilitar o agente do Azure Monitor usando o Portal

Ative a nova integração acessando a página do portal do cluster e rolando o menu à esquerda até chegar à seção Monitoramento.

  1. Na seção Monitoramento, escolha Integração do Monitor.

  2. Em seguida, selecione Habilitar e você poderá escolher o workspace do Log Analytics para o qual deseja enviar os logs.
     Captura de tela mostrando a integração do Azure Monitor.

  3. Habilite a Integração do Agente do Azure Monitor com o Log Analytics e selecione seu workspace (workspace existente quando você está migrando da imagem anterior para uma imagem mais recente).

  4. Depois de confirmar a seleção do workspace, as etapas de pré-condição são iniciadas.

    Captura de tela mostrando pré-condições.

  5. Selecione Salvar depois que as etapas de pré-condição forem concluídas.

Abordagem 2: Habilitar o agente do Azure Monitor usando o Azure PowerShell

  1. Habilitar a MSI atribuída pelo sistema

    1. Primeiro, obtenha informações do cluster para verificar a MSI do cluster.

      Get-AzHDInsightCluster -ResourceGroupName $resourceGroup –ClusterName $cluster

    2. Se esse cluster não tiver uma MSI, habilite a MSI atribuída pelo sistema diretamente

      Update-AzHDInsightCluster -ResourceGroupName $resourceGroup -ClusterName $cluster -IdentityType "SystemAssigned"

    3. Se esse cluster tiver apenas a MSI atribuída pelo usuário, adicione a MSI atribuída pelo sistema à identidade.

      Update-AzHDInsightCluster -ResourceGroupName $resourceGroup -ClusterName $cluster -IdentityType "SystemAssigned,UserAssigned" -IdentityId "$userAssignedIdentityResourceId"

  2. Se esse cluster já tiver uma MSI atribuída pelo sistema, não é necessária nenhuma ação de sua parte.

  3. Criação de DCRs

    Para obter mais informações, confira Criar e editar Regras de Coleta de Dados (DCRs).

    # 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 
    
  4. Associação de DCRs.

    Para obter mais informações, confira Configurar o agente do Azure Monitor em dispositivos cliente do 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 
    
  5. Como habilitar o Agente do 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 
    
  6. (Opcional) como desabilitar o Agente do Azure Monitor.

    Disable-AzHDInsightAzureMonitorAgent -ResourceGroupName $resourceGroup -ClusterName $cluster 
    

Abordagem 3: Habilitar o agente do Azure Monitor usando a CLI do Azure

  1. Habilite a MSI atribuída pelo sistema.

    1. Primeiro, obtenha informações do cluster para verificar a MSI do cluster.

      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" 
      
    2. Se esse cluster não tiver uma MSI, habilite a MSI atribuída pelo sistema diretamente por meio da API REST.

       body="{\"identity\": {\"type\": \"SystemAssigned\"}}" 
      
       az rest --method patch --url "$url" --body "$body" --headers "Authorization=Bearer $accessToken"
      
    3. Se esse cluster tiver apenas a MSI atribuída pelo usuário, adicione a MSI atribuída pelo sistema à identidade.

      body="{\"identity\": {\"type\": \"SystemAssigned,UserAssigned\", \"userAssignedIdentities\": {$userAssignedIdentityResourceId:{}}}}" 
      
      az rest --method patch --url "$url" --body "$body" --headers "Authorization=Bearer $accessToken" 
      
    4. Se esse cluster já tiver uma MSI atribuída pelo sistema, não é necessária nenhuma ação de sua parte.

  2. Criação de DCRs.

    Para obter mais informações, confira Criar e editar Regras de Coleta de Dados (DCRs)

    # 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 
    
  3. Associação de DCRs

    # 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 
    
  4. Como habilitar o Agente do 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 
    
  5. (Opcional) como desabilitar o Agente do Azure Monitor.

    az hdinsight azure-monitor-agent disable --name $cluster --resource-group $resourceGroup 
    

Habilitar o registro em log do Agente do Azure Monitor para o cluster do Spark

Os clusters do Azure HDInsight Spark controlam a integração do AMA usando uma configuração do Spark spark.hdi.ama.enabled, por padrão, o valor é definido como false. Essa configuração controla se os logs específicos do Spark aparecerão no workspace do Log Analytics. Se você quiser habilitar o AMA em seus clusters do Spark e recuperar os logs de eventos do Spark em seus workspaces do LA, será necessário executar uma etapa adicional para habilitar o AMA para logs específicos do Spark.

As etapas a seguir descrevem como os clientes podem habilitar o novo registro em log do Agente do Azure Monitor para suas cargas de trabalho do Spark.

  1. Vá para Ambari - > Configurações do Spark.

  2. Navegue até Padrões personalizados do Spark e pesquise a configuração spark.hdi.ama.enabled, o valor padrão dessa configuração será false. Defina esse valor como true.

    Captura de tela mostrando como habilitar o registro em log do Agente do Azure Monitor para o cluster do Spark.

  3. Clique em salvar e reinicie os serviços do Spark em todos os nós.

  4. Acesse as tabelas no workspace do LA.

Acessar as novas tabelas

Há duas maneiras de acessar as novas tabelas.

Abordagem 1

  1. A primeira é por meio do workspace do Log Analytics.

  2. Acesse o workspace do Log Analytics que você selecionou quando habilitou a integração.

  3. Role o menu para baixo no lado esquerdo da tela e selecione Logs. Um editor de consultas de Logs é exibido com uma lista de todas as tabelas no workspace.

    1. Se as tabelas forem agrupadas por Solução, as novas tabelas do HDInsight estarão na seção Gerenciamento de Logs.

    2. Se você agrupar as tabelas por Tipo de Recurso, as tabelas estarão na seção Clusters do HDInsight, conforme mostrado na imagem.

Observação

Esse processo descreve como os logs eram acessados na integração antiga. Isso exige que o usuário tenha acesso ao workspace.

Abordagem 2

A segunda maneira de acessar as novas tabelas é por meio do acesso ao portal do cluster.

  1. Navegue até a página do portal do cluster e role o menu no lado esquerdo até ver a seção Monitoramento. Nesta seção, você verá o painel Logs.

  2. Selecione Logs e um editor de consultas de Logs será exibido. O editor contém todos os logs associados ao recurso de cluster. Você enviou os logs para o workspace do Log Analytics quando habilitou a integração. Esses logs fornecem o RBAC (acesso baseado em recurso). Com o RBAC, os usuários que têm acesso ao cluster, mas não ao workspace, podem ver os logs associados ao cluster.

  3. Para comparação, as seguintes capturas de tela mostram as exibições do workspace da integração herdada e da nova integração:

Exibição de workspace de integração herdado (Azure Monitor Clássico)

Captura de tela mostrando logs personalizados.

Nova exibição do workspace de integração (experiência do Azure Monitor/agente do Azure Monitor)

Captura de tela mostrando a lista de tabelas.

Usar as novas tabelas

Consultas padrão a serem usadas com novas tabelas

No editor de consultas de Logs, defina a alternância para Consultas acima da lista de tabelas. Agrupe as consultas por Tipo de Recurso e verifique se não há nenhum filtro definido para um tipo de recurso diferente de Clusters do HDInsight. A imagem a seguir mostra a aparência dos resultados quando agrupados por Tipo de Recurso e filtrados por Clusters do HDInsight. Basta selecionar um deles e ele será exibido no editor de consultas de Logs. Lembre-se de ler os comentários incluídos nas consultas, pois algumas exigem que você insira informações, como o nome do cluster, para que a consulta seja executada com êxito.

Criar consultas próprias

Você pode inserir consultas próprias no editor de consultas de Logs. As consultas usadas nas tabelas antigas não serão válidas nas novas tabelas, pois muitas das novas tabelas têm esquemas novos e refinados. As consultas padrão são ótimas referências para a formatação de consultas nas novas tabelas.

Insights

Os insights são painéis de visualização específicos do cluster criados por meio de pastas de trabalho do Azure. Esses painéis fornecem gráficos detalhados e visualizações sobre a execução do cluster. Eles apresentam seções para cada tipo de cluster, YARN, métricas do sistema e logs de componentes. Acesse o painel do cluster acessando a página do seu cluster no portal, rolando o menu para baixo até a seção Monitoramento e selecionando o painel Insights. O painel será carregado automaticamente se você tiver habilitado a nova integração. Aguarde alguns segundos para que os grafos sejam carregados à medida que consultam os logs.

Captura de tela mostrando o dashboard.

Pastas de trabalho personalizadas do Azure

Você pode criar suas pastas de trabalho do Azure com visualizações e gráficos personalizados. Na página do portal do cluster, role o menu para baixo até a seção Monitoramento e selecione o painel Pastas de trabalho no menu à esquerda. Comece usando um modelo em branco ou use um dos modelos da seção Clusters do HDInsight. Há um modelo para cada tipo de cluster. Os modelos são úteis se você deseja salvar personalizações específicas não fornecidas pelos Insights padrão do HDInsight. Fique à vontade para enviar solicitações de novos recursos nos Insights do HDInsight se achar que está faltando algo.

Alertas

Você pode adicionar alertas personalizados aos clusters e aos workspaces no editor de consultas de Logs. Acesse o editor de consultas de Logs selecionando o painel Logs por meio do portal do cluster ou do workspace. Execute uma consulta e selecione Nova Regra de Alerta, conforme mostrado na captura de tela a seguir. Para obter mais informações, leia mais sobre como configurar alertas.

Captura de tela mostrando novas regras de alerta.

Migrar para a nova integração do agente do Azure Monitor

Se você estiver usando a integração clássica do Azure Monitor, precisará fazer alguns ajustes nos novos formatos de tabela depois de alternar para a nova integração do Azure Monitor.

Para habilitar a nova integração do Azure Monitor, siga as etapas descritas na seção Ativar uma nova integração do Azure Monitor.

Executar consultas no Log Analytics

Como o novo formato de tabela é diferente do anterior, as consultas precisam ser retrabalhadas para que você possa usar nossas novas tabelas. Depois de habilitar a nova integração do Azure Monitor, você poderá procurar as tabelas e os esquemas para identificar os campos usados nas consultas antigas.

Fornecemos uma tabela de mapeamento entre a tabela antiga e a nova tabela para ajudar você a encontrar rapidamente os novos campos que precisará usar para migrar os painéis e as consultas.

Consultas padrão: criamos consultas padrão que mostram como usar as novas tabelas em situações comuns. As consultas padrão também mostram quais informações estão disponíveis em cada tabela. Acesse as consultas padrão seguindo as instruções descritas na seção Consultas padrão a serem usadas com novas tabelas deste artigo.

Atualizar painéis para clusters do HDInsight

Se você criou vários painéis para monitorar seus clusters do HDInsight, ajuste a consulta por trás da tabela depois de habilitar a nova integração do Azure Monitor. O nome da tabela ou do campo pode ser alterado na nova integração, mas todas as informações existentes na integração antiga estão incluídas.

Veja a tabela de mapeamento entre a tabela/o esquema antigo e a tabela/o esquema novo para atualizar a consulta por trás dos painéis

Painéis prontos para uso

Também aprimoramos os painéis prontos para uso no nível do cluster. Há um botão no canto superior direito de cada grafo que permite ver a consulta subjacente que produz as informações. O grafo é uma ótima forma de se acostumar com o modo de consultar as novas tabelas com eficiência.

Linha do tempo de versões e suporte

  • A integração do Monitoramento do Azure Clássico não estará disponível após 15 de outubro de 2021. Você não poderá habilitar a integração clássica do Monitoramento do Azure após essa data.

  • A ingestão de integração do Monitoramento do Azure Clássico não funcionará após 31 de agosto de 2024.

  • Os clusters do HDInsight com integração do Azure Monitor (versão prévia) não terão suporte após 1º de fevereiro de 2025.

  • A integração (versão prévia) existente do Azure Monitor continuará funcionando até 31 de janeiro de 2025. Haverá suporte limitado para a integração do Monitoramento do Azure (versão prévia).

    • Se a solução exigir uma alteração de imagem, os clientes deverão migrar para a nova integração.

    • A Microsoft não corrigirá os clusters de integração do Azure Monitor (versão prévia), exceto por problemas críticos de segurança.

Apêndice: Mapeamento de tabela

Para obter os mapeamentos da tabela de log da integração clássica do Azure Monitor com a nova, confira Mapeamento da tabela de log.

Próximas etapas