Usar o registro em log seletivo com uma ação de script no Azure HDInsight

Os Logs do Azure Monitor representam um serviço do Azure Monitor que monitora os ambientes de nuvem e locais. O monitoramento ajuda a manter a disponibilidade e o desempenho.

Os Logs do Azure Monitor coletam dados gerados por recursos em sua nuvem, recursos em ambientes locais e outras ferramentas de monitoramento. Ele usa os dados para fornecer análise para várias fontes. Para obter a análise, habilite o recurso de registro em log seletivo usando uma ação de script para HDInsight no portal do Azure.

Sobre o log seletivo

O registro em log seletivo faz parte do sistema de monitoramento geral do Azure. Depois de conectar seu cluster a um workspace do Log Analytics e habilitar o registro em log seletivo, você poderá ver logs e métricas, como logs de segurança do HDInsight, Yarn Resource Manager e métricas do sistema. Você pode monitorar cargas de trabalho e visualizar como elas estão afetando a estabilidade do cluster.

O registro em log seletivo permite habilitar ou desabilitar todas as tabelas ou habilitar tabelas selecionadas no workspace do Log Analytics. Você pode ajustar o tipo de origem para cada tabela.

Observação

Se o Log Analytics for reinstalado em um cluster, você precisará desabilitar todas as tabelas e tipos de log novamente. A reinstalação redefine todos os arquivos de configuração para o estado original.

Considerações sobre ações de script

  • O sistema de monitoramento usa o Daemon do Servidor de Metadados (um agente de monitoramento) e o Fluentd para coletar logs usando uma camada de log unificada.
  • O registro em log seletivo usa uma ação de script para desabilitar ou habilitar as tabelas e os tipos de log. Como o registro em log seletivo não abre novas portas nem altera as configurações de segurança existentes, não há alterações de segurança.
  • A ação de script é executada paralelamente em todos os nós especificados e altera os arquivos de configuração para desabilitar ou habilitar as tabelas e os tipos de log.

Pré-requisitos

  • Um espaço de trabalho do Log Analytics. É possível pensar neste workspace como um ambiente exclusivo de Logs do Azure Monitor com seu próprio repositório de dados, fontes de dados e soluções. Para obter instruções, consulte Criar um espaço de trabalho do Log Analytics.
  • Um cluster Azure HDInsight. No momento, é possível usar o recurso de registro em log seletivo com os seguintes tipos de cluster do HDInsight:
    • O Hadoop
    • HBase
    • Consulta Interativa
    • Spark

Para obter instruções sobre como criar um cluster HDInsight, consulte Introdução ao Azure HDInsight.

Habilitar ou desabilitar logs usando uma ação de script para várias tabelas e tipos de log

  1. Acesse as Ações de script no cluster e selecione Enviar novo para iniciar o processo de criação de uma ação de script.

    Screenshot that shows the button for starting the process of creating a script action.

    O painel de ação Enviar script é exibido.

    Screenshot that shows the pane for submitting a script action.

  2. Para o tipo de script, selecione Personalizado.

  3. Nomeie o script. Por exemplo: Desabilitar duas tabelas e duas fontes.

  4. O URI de script Bash deve ser um link para selectiveLoggingScript.sh.

  5. Selecione todos os tipos de nó que se aplicam ao cluster. As opções são nó de cabeçalho, nó de trabalho e nó do ZooKeeper.

  6. Defina os parâmetros. Por exemplo:

    • Spark: spark HDInsightSparkLogs:SparkExecutorLog --disable
    • Consulta Interativa: interactivehive HDInsightSparkLogs:SparkExecutorLog --enable
    • Hadoop: hadoop HDInsightSparkLogs:SparkExecutorLog --disable
    • HBase: hbase HDInsightSparkLogs: HDInsightHBaseLogs --enable

    Para obter mais informações, confira a seção Sintaxe do parâmetro.

  7. Selecione Criar.

  8. Após alguns minutos, uma marca de seleção verde aparece ao lado do histórico de ação de script. Isso significa que o script foi executado com êxito.

    Screenshot that shows a successful run of a script to enable tables and log types.

Você verá suas alterações no workspace do Log Analytics.

Solução de problemas

Nenhuma alteração é exibida no workspace do Log Analytics

Se enviar sua ação de script, mas não houver alterações no workspace do Log Analytics:

  1. Em Painéis, selecione a página inicial do Ambari para verificar as informações de depuração.

    Screenshot that shows the location of the Ambari home dashboard.

  2. Selecione o botão Configurações.

    Screenshot that shows the Settings button.

  3. Selecione sua execução de script mais recente na parte superior da lista de operações em segundo plano.

    Screenshot that shows background operations.

  4. Verifique o status de execução do script em todos os nós individualmente.

    Screenshot that shows the script run status for hosts.

  5. Verifique se a sintaxe do parâmetro na seção de sintaxe do parâmetro está correta.

  6. Verifique se o workspace do Log Analytics está conectado ao cluster e se o monitoramento do Log Analytics está ativado.

  7. Verifique se você selecionou a caixa de seleção Persistir esta ação de script a ser executada novamente quando novos nós forem adicionados ao cluster para a ação de script executada.

    Screenshot that shows the checkbox for persisting a script action.

  8. Verifique se um novo nó tenha sido adicionado ao cluster recentemente.

    Observação

    Para que o script seja executado no cluster mais recente, o script deve persistir.

  9. Verifique se você selecionou todos os tipos de nó desejados para a ação de script.

    Screenshot that shows selected node types.

Falhou ao executar a ação de script

Se a ação de script mostrar um status com falha no histórico de ações de script:

  1. Verifique se a sintaxe do parâmetro na seção de sintaxe do parâmetro está correta.
  2. Verifique se o link do script está correto. Esse valor deveria ser: https://hdiconfigactions.blob.core.windows.net/log-analytics-patch/selectiveLoggingScripts/selectiveLoggingScript.sh.

Nomes da tabela

Cluster Spark

Os nomes de tabela a seguir são para diferentes tipos de log (fontes) dentro das tabelas do Spark.

Número da fonte Nome da tabela Tipos de logs Descrição
1. HDInsightAmbariCluster Alerts Nenhum tipo de log Esta tabela contém alertas do cluster do Ambari de cada nó no cluster (exceto os nós de borda). Cada alerta é um registro dessa tabela.
2. HDInsightAmbariSystem Metrics Nenhum tipo de log Esta tabela contém as métricas do sistema coletadas do Ambari. As métricas agora são provenientes de cada nó no cluster (exceto os nós de borda) em vez de apenas os dois nós de cabeçalho. Agora, cada métrica é uma coluna e cada métrica é relatada uma vez por registro.
3. HDInsightHadoopAnd YarnLogs Nó de cabeçalho: MRJobSummary, Resource Manager, TimelineServer nó de Trabalho: NodeManager Esta tabela contém todos os logs gerados das estruturas Hadoop e YARN.
4. HDInsightSecurityLogs AmbariAuditLog, AuthLog Esta tabela contém registros dos logs de auditoria e autenticação do Ambari.
5. HDInsightSparkLogs Nó de cabeçalho: JupyterLog, LivyLog, SparkThriftDriverLog nó de Trabalho: SparkExecutorLog, SparkDriverLog Esta tabela contém todos os logs relacionados ao Spark e seus componentes relacionados: Livy e Jupyter.
6. HDInsightHadoopAnd YarnMetrics Nenhum tipo de log Esta tabela contém as métricas JMX das estruturas Hadoop e YARN. Contém as mesmas métricas JMX das tabelas antigas dos Logs Personalizados, além de outras métricas que consideramos importantes. Adicionamos métricas de Servidor de Linha do Tempo, Gerenciador de Nós e Servidor de Histórico de Trabalhos. Contém uma métrica por registro.
7. HDInsightOozieLogs Oozie Esta tabela contém todos os logs gerados da estrutura Oozie.

Cluster de Consulta Interativa

Os nomes de tabela a seguir são para diferentes tipos de log (fontes) dentro de tabelas de consulta interativa.

Número da fonte Nome da tabela Tipos de logs Descrição
1. HDInsightAmbariClusterAlerts Nenhum tipo de log Esta tabela contém alertas do cluster do Ambari de cada nó no cluster (exceto os nós de borda). Cada alerta é um registro dessa tabela.
2. HDInsightAmbariSystem Metrics Nenhum tipo de log Esta tabela contém as métricas do sistema coletadas do Ambari. As métricas agora são provenientes de cada nó no cluster (exceto os nós de borda) em vez de apenas os dois nós de cabeçalho. Agora, cada métrica é uma coluna e cada métrica é relatada uma vez por registro.
3. HDInsightHadoopAndYarnLogs Nó de cabeçalho: MRJobSummary, Resource Manager, TimelineServer nó de Trabalho: NodeManager Esta tabela contém todos os logs gerados das estruturas Hadoop e YARN.
4. HDInsightHadoopAndYarnMetrics Nenhum tipo de log Esta tabela contém as métricas JMX das estruturas Hadoop e YARN. Contém as mesmas métricas JMX das tabelas antigas dos Logs Personalizados, além de outras métricas que consideramos importantes. Adicionamos métricas de Servidor de Linha do Tempo, Gerenciador de Nós e Servidor de Histórico de Trabalhos. Contém uma métrica por registro.
5. HDInsightHiveAndLLAPLogs Nó de cabeçalho: InteractiveHiveHSILog, InteractiveHiveMetastoreLog, ZeppelinLog Esta tabela contém os logs gerados do Hive, do LLAP e os componentes relacionados: WebHCat e Zeppelin.
6. HDInsightHiveAndLLAPmetrics Nenhum tipo de log Esta tabela contém as métricas JMX das estruturas Hive e LLAP. Contém as mesmas métricas JMX das tabelas antigas dos Logs Personalizados. Contém uma métrica por registro.
7. HDInsightHiveTezAppStats Nenhum tipo de log
8. HDInsightSecurityLogs Nó de cabeçalho: AmbariAuditLog, AuthLog nó do ZooKeeper, nó de trabalho: AuthLog Esta tabela contém registros dos logs de auditoria e autenticação do Ambari.

Cluster HBase

Os nomes de tabela a seguir são para diferentes tipos de log (fontes) dentro das tabelas do HBase.

Número da fonte Nome da tabela Tipos de logs Descrição
1. HDInsightAmbariClusterAlerts Nenhum outro tipo de log Esta tabela contém alertas do cluster do Ambari de cada nó no cluster (exceto os nós de borda). Cada alerta é um registro dessa tabela.
2. HDInsightAmbariSystem Metrics Nenhum outro tipo de log Esta tabela contém as métricas do sistema coletadas do Ambari. As métricas agora são provenientes de cada nó no cluster (exceto os nós de borda) em vez de apenas os dois nós de cabeçalho. Agora, cada métrica é uma coluna e cada métrica é relatada uma vez por registro.
3. HDInsightHadoopAndYarnLogs Nó de cabeçalho: MRJobSummary, Resource Manager, TimelineServer nó de Trabalho: NodeManager Esta tabela contém todos os logs gerados das estruturas Hadoop e YARN.
4. HDInsightSecurityLogs Nó de cabeçalho: AmbariAuditLog, AuthLog nó de Trabalho: AuthLog nó do ZooKeeper: AuthLog Esta tabela contém registros dos logs de auditoria e autenticação do Ambari.
5. HDInsightHBaseLogs Nó de cabeçalho: HDFSGarbageCollectorLog, HDFSNameNodeLog nó de Trabalho: PhoenixServerLog, HBaseRegionServerLog, HBaseRestServerLog nó do ZooKeeper: HBaseMasterLog Esta tabela contém os logs do HBase e os componentes relacionados: Phoenix e HDFS.
6. HDInsightHBaseMetrics Nenhum tipo de log Esta tabela contém as métricas JMX do HBase. Contém as mesmas métricas JMX das tabelas listadas na coluna Esquema Antigo. Em contraste com as tabelas antigas, cada linha contém uma métrica.
7. HDInsightHadoopAndYarn Metrics Nenhum tipo de log Esta tabela contém as métricas JMX das estruturas Hadoop e YARN. Contém as mesmas métricas JMX das tabelas antigas dos Logs Personalizados, além de outras métricas que consideramos importantes. Adicionamos métricas de Servidor de Linha do Tempo, Gerenciador de Nós e Servidor de Histórico de Trabalhos. Contém uma métrica por registro.

Cluster Hadoop

Os nomes de tabela a seguir são para diferentes tipos de log (fontes) dentro das tabelas do Hadoop.

Número da fonte Nome da tabela Tipos de logs Descrição
1. HDInsightAmbariClusterAlerts Nenhum tipo de log Esta tabela contém alertas do cluster do Ambari de cada nó no cluster (exceto os nós de borda). Cada alerta é um registro dessa tabela.
2. HDInsightAmbariSystem Metrics Nenhum tipo de log Esta tabela contém as métricas do sistema coletadas do Ambari. As métricas agora são provenientes de cada nó no cluster (exceto os nós de borda) em vez de apenas os dois nós de cabeçalho. Agora, cada métrica é uma coluna e cada métrica é relatada uma vez por registro.
3. HDInsightHadoopAndYarnLogs Nó de cabeçalho: MRJobSummary, Resource Manager, TimelineServer nó de Trabalho: NodeManager Esta tabela contém todos os logs gerados das estruturas Hadoop e YARN.
4. HDInsightHadoopAndYarnMetrics Nenhum tipo de log Esta tabela contém as métricas JMX das estruturas Hadoop e YARN. Contém as mesmas métricas JMX das tabelas antigas dos Logs Personalizados, além de outras métricas que consideramos importantes. Adicionamos métricas de Servidor de Linha do Tempo, Gerenciador de Nós e Servidor de Histórico de Trabalhos. Contém uma métrica por registro.
5. HDInsightHiveAndLLAPLogs Nó de cabeçalho: HiveMetastoreLog, HiveServer2Log, WebHcatLog Esta tabela contém os logs gerados do Hive, do LLAP e os componentes relacionados: WebHCat e Zeppelin.
6. Métricas Hive e LLAP do HDInsight Nenhum tipo de log Esta tabela contém as métricas JMX das estruturas Hive e LLAP. Contém as mesmas métricas JMX das tabelas antigas dos Logs Personalizados. Contém uma métrica por registro.
7. Logs de segurança do HDInsight Nó de cabeçalho: AmbariAuditLog, AuthLog nó do ZooKeeper: AuthLog Esta tabela contém registros dos logs de auditoria e autenticação do Ambari.

Sintaxe de parâmetro

Os parâmetros definem o tipo de cluster, nomes de tabela, nomes de origem e a ação.

Screenshot that shows the parameter syntax box.

Um parâmetro contém três partes:

  • Tipo de cluster
  • Tipos de logs e tabelas
  • Ação (--disable ou --enable )

Sintaxe para várias tabelas

Quando você tem várias tabelas, elas são separadas com uma vírgula. Por exemplo:

spark HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --disable

hbase HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --enable

Sintaxe para vários tipos de origem ou tipos de log

Quando você tem vários tipos de origem ou tipos de log, eles são separados com um espaço.

Para desabilitar uma origem, escreva o nome da tabela que contém os tipos de log, seguido por dois-pontos e, em seguida, o nome real do tipo de log:

TableName : LogTypeName

Por exemplo, suponha que spark HDInsightSecurityLogs seja uma tabela que tenha dois tipos de log: AmbariAuditLog e AuthLog. Para desabilitar ambos os tipos de log, a sintaxe correta seria:

spark HDInsightSecurityLogs: AmbariAuditLog AuthLog --disable

Sintaxe para várias tabelas e tipos de origem

Se você precisar desabilitar duas tabelas e dois tipos de origem, use a seguinte sintaxe:

  • Spark: InteractiveHiveMetastoreLog tipo de log na tabela HDInsightHiveAndLLAPLogs
  • Hbase: InteractiveHiveHSILog tipo de log na tabela HDInsightHiveAndLLAPLogs
  • Hadoop: tabela HDInsightHiveAndLLAPMetrics
  • Hadoop: tabela HDInsightHiveTezAppStats

Separe as tabelas com uma vírgula. Denote as origens usando dois pontos após o nome da tabela em que residem.

A sintaxe de parâmetro correto para esses casos seria:

interactivehive HDInsightHiveAndLLAPLogs: InteractiveHiveMetastoreLog, HDInsightHiveAndLLAPMetrics, HDInsightHiveTezAppStats, HDInsightHiveAndLLAPLogs: InteractiveHiveHSILog --enable 

Próximas etapas