Registro em log para trabalhos do AWS Glue - AWS Glue

Registro em log para trabalhos do AWS Glue

No AWS Glue 5.0, todos os trabalhos têm capacidades de registro em log em tempo real. Além disso, você pode especificar opções personalizadas de configuração para adaptar o comportamento de registro em log. Essas opções incluem definir o nome do grupo de logs do Amazon CloudWatch, o prefixo do fluxo de logs do Amazon CloudWatch (que precederá o ID de execução de trabalho do AWS Glue e o ID do driver/executor), e o padrão de conversão de logs para mensagens de log. Essas configurações permitem agregar logs em grupos personalizados de logs do Amazon CloudWatch com diferentes políticas de expiração. Além disso, você pode analisar os logs de modo mais eficaz usando prefixos de fluxo de logs e padrões de conversão personalizados. Esse nível de personalização permite que você otimize o gerenciamento e a análise de logs de acordo com seus requisitos específicos.

Comportamento de registro em log no AWS Glue 5.0

Por padrão, os logs do sistema, os logs do daemon do Spark e os logs do AWS Glue Logger do usuário são gravados no grupo de logs /aws-glue/jobs/error no Amazon CloudWatch. Por outro lado, os logs stdout (saída padrão) e stderr (erro padrão) do usuário são gravados no grupo de logs /aws-glue/jobs/output por padrão.

Logs personalizados

Você pode personalizar o grupo de logs padrão e os prefixos do fluxo de logs usando os seguintes argumentos de trabalho:

  • --custom-logGroup-prefix: permite que você especifique um prefixo personalizado para os grupos de logs /aws-glue/jobs/error e /aws-glue/jobs/output. Se você fornecer um prefixo personalizado, os nomes dos grupos de logs estarão no seguinte formato:

    • /aws-glue/jobs/error será <customer prefix>/error

    • /aws-glue/jobs/output será <customer prefix>/output

  • --custom-logStream-prefix: permite que você especifique um prefixo personalizado para os nomes do fluxo de logs nos grupos de logs. Se você fornecer um prefixo personalizado, os nomes dos fluxos de logs estarão no seguinte formato:

    • jobrunid-driver será <customer log stream>-driver

    • jobrunid-executorNum será <customer log stream>-executorNum

As regras de validação e as limitações para prefixos personalizados:

  • O nome completo do fluxo de logs precisa ter de 1 a 512 caracteres.

  • O prefixo personalizado é restrito a 400 caracteres.

  • O prefixo personalizado precisa corresponder ao padrão de expressão regular “[^:*]*” (os caracteres especiais permitidos são “_”, “-” e “/”).

Registrar em log mensagens específicas da aplicação usando o registrador de script personalizado

É possível usar o registrador do AWS Glue para registrar qualquer mensagem específica do aplicativo no script que foi enviado em tempo real ao stream de log do driver.

O exemplo a seguir mostra um script Python.

from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext() glueContext = GlueContext(sc) logger = glueContext.get_logger() logger.info("info message") logger.warn("warn message") logger.error("error message")

O exemplo a seguir mostra um script Scala.

import com.amazonaws.services.glue.log.GlueLogger object GlueApp { def main(sysArgs: Array[String]) { val logger = new GlueLogger logger.info("info message") logger.warn("warn message") logger.error("error message") } }

Habilitar a barra de progresso para exibir o progresso do trabalho

O AWS Glue fornece uma barra de progresso em tempo real no stream de log JOB_RUN_ID-progress-bar para verificar o status de execução da tarefa do AWS Glue. No momento, ele oferece suporte somente a tarefas que inicializam o glueContext. Se você executar uma tarefa pura do Spark sem inicializar o glueContext, a barra de progresso do AWS Glue não será exibida.

A barra de progresso mostra a atualização de progresso a seguir a cada 5 segundos.

Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]

Configuração de segurança com registro em log do Amazon CloudWatch

Quando uma configuração de segurança é habilitada para logs do Amazon CloudWatch, o AWS Glue cria grupos de logs com padrões específicos de nomenclatura que incorporam o nome da configuração de segurança.

Nomenclatura de grupos de logs com configuração de segurança

Os grupos de log padrão e personalizado serão os seguintes:

  • Grupo de logs padrão de erros: /aws-glue/jobs/Security-Configuration-Name-role/glue-job-role/error

  • Grupo de logs padrão de saída: /aws-glue/jobs/Security-Configuration-Name-role/glue-job-role/output

  • Grupo de logs personalizado de erros (AWS Glue 5.0): custom-log-group-prefix/Security-Configuration-Name-role/glue-job-role/error

  • Grupo de logs personalizado de saída (AWS Glue 5.0): custom-log-group-prefix/Security-Configuration-Name-role/glue-job-role/output

Permissões obrigatórias do IAM

Se você habilitar uma configuração de segurança com o Amazon CloudWatch Logs, será necessário adicionar a permissão logs:AssociateKmsKey às permissões do seu perfil do IAM. Se essa permissão não for incluída, o registro em log contínuo será desabilitado.

Além disso, para configurar a criptografia do Amazon CloudWatch Logs, siga as instruções em Criptografar dados de log no Amazon CloudWatch Logs usando o AWS Key Management Service no Guia do usuário do Amazon Amazon CloudWatch Logs.

Informações adicionais

Para obter mais informações sobre como criar configurações de segurança, consulte Gerenciar configurações de segurança no console do AWS Glue.