As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Publique registros do Amazon EMR em Logs CloudWatch
Visão geral do
O Amazon EMR on EC2 fornece integração nativa com o Amazon CloudWatch Logs, permitindo que você envie logs de cluster diretamente para CloudWatch esse recurso simplifica o gerenciamento de logs e fornece acesso centralizado aos seus logs de cluster do EMR para monitoramento, solução de problemas e análise.
Com o CloudWatch registro ativado, você pode capturar e transmitir automaticamente os registros de seus clusters do EMR para grupos de CloudWatch registros. Isso inclui registros de execução de etapas, registros de drivers do Spark e registros do executor do Spark, oferecendo visibilidade abrangente das operações do cluster e do comportamento do aplicativo.
O recurso de CloudWatch registro está disponível a partir da versão 7.11.0 do Amazon EMR e é configurado por meio do MonitoringConfiguration parâmetro ao criar seu cluster. Depois de ativados, os registros são transmitidos automaticamente à CloudWatch medida que são gerados, fornecendo acesso quase em tempo real aos dados de registro por meio do CloudWatch console ou da API.
Pré-requisitos
Antes de ativar o CloudWatch registro em seu cluster EMR, certifique-se de que os seguintes pré-requisitos sejam atendidos:
-
Versão do Amazon EMR: Seu cluster deve usar o Amazon EMR versão 7.11.0 ou posterior.
-
CloudWatch Aplicativo de agente: o Amazon CloudWatch Agent deve estar instalado em seu cluster.
-
Permissões do IAM: o perfil da EC2 instância do seu cluster deve ter as permissões de CloudWatch registros necessárias.
-
VPC Endpoints (para sub-redes privadas): se seu cluster estiver em uma sub-rede privada, você deverá configurar VPC endpoints para Logs. CloudWatch
Permissões
O CloudWatch agente exige permissões específicas AWS Identity and Access Management(IAM) para criar grupos de registros, criar fluxos de registros e gravar eventos de registro em CloudWatch registros. Essas permissões devem ser anexadas ao perfil de EC2 instância da Amazon usado pelo seu cluster do EMR.
Política do IAM necessária
Adicione a seguinte política ao seu perfil de EC2 instância do Amazon EMR para conceder as permissões necessárias:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": "*", "Sid": "AllowCWACloudWatchLogs" } ] }
Anexando a política
Para anexar essa política ao seu perfil de EC2 instância para EMR:
-
Navegue até o console do IAM.
-
Localize o perfil de instância usado pelo seu cluster do EMR, o que normalmente é.
EMR_EC2_DefaultRole -
Crie uma nova política em linha ou anexe uma política gerenciada pelo cliente com as permissões acima.
-
Salve as alterações da política.
Para obter mais informações sobre as funções do IAM para o Amazon EMR, consulte Configurar funções do IAM para permissões do Amazon EMR para AWS serviços e recursos no Guia de gerenciamento do Amazon EMR.
Configurando o registro CloudWatch
Você pode ativar o CloudWatch registro ao criar um novo cluster do EMR por meio do AWS Management Console ou. AWS CLI AWS SDKs A configuração é especificada por meio do MonitoringConfiguration parâmetro.
Usando o console AWS de gerenciamento
Para criar um cluster com CloudWatch registro a partir do console:
-
Navegue até o console do AWS EMR.
-
Selecione Criar cluster.
-
Em Nome e aplicativos, selecione uma versão 7.11.0 ou superior do Amazon EMR.
-
Em Pacote de aplicativos, selecione os aplicativos que você deseja instalar e garanta que o Amazon CloudWatch Agent esteja incluído em suas seleções.
-
Em Registros do cluster, selecione a opção Publicar registros específicos do cluster na Amazon. CloudWatch
-
(Opcional) Defina as seguintes configurações:
-
Nome do grupo de registros - Nome personalizado do grupo de registros. O padrão é
/aws/emr/{cluster_id}. -
Prefixo do fluxo de log - Prefixo para nomes de fluxo de log O padrão é.
empty -
CloudWatch Chave KMS - ARN da chave KMS para criptografia de log (opcional).
-
Tipos de registro - Selecione quais tipos de registro capturar (padrão: step e driver Spark)
-
-
Conclua as configurações restantes do cluster.
-
Selecione Criar cluster.
Depois que o cluster for criado, você poderá acessar o link CloudWatch Logs na página Detalhes do cluster do EMR em Gerenciamento de cluster → Destino do log na Amazon. CloudWatch
Usando o AWS CLI
Você pode ativar o CloudWatch registro usando o create-cluster comando AWS CLI with the. O CloudWatch agente deve ser incluído no --applications parâmetro e o registro é configurado por meio do --monitoring-configuration parâmetro.
Exemplo: Configuração padrão
O EMR capturará automaticamente os registros das etapas e somente os registros do driver do Spark e os enviará para o grupo de registros padrão.
aws emr create-cluster \ --name "EMR cluster with CloudWatch Logs" \ --release-label emr-7.11.0 \ --applications Name=Spark Name=AmazonCloudWatchAgent \ --instance-type m7g.2xlarge \ --instance-count 3 \ --use-default-roles \ --monitoring-configuration '{ "CloudWatchLogConfiguration": { "Enabled": true } }'
Ao usar a configuração padrão:
-
Nome do grupo de registros:
/aws/emr/{cluster_id}(onde{cluster_id}é substituído automaticamente pelo ID do seu cluster). -
Prefixo do fluxo de log: vazio (sem prefixo).
-
Tipos de log:
STEP_LOGSeSPARK_DRIVERativado, cada um capturando tantoSTDOUTe.STDERR -
Criptografia: nenhuma chave gerenciada pelo cliente (usa criptografia do CloudWatch lado do servidor por padrão)
Exemplo: configuração personalizada
Este exemplo demonstra uma configuração personalizada com nomes de grupos de logs específicos, criptografia KMS e tipos de log seletivos.
aws emr create-cluster \ --name "EMR cluster with custom CloudWatch Logs" \ --release-label emr-7.11.0 \ --applications Name=Spark Name=AmazonCloudWatchAgent \ --instance-type m7g.2xlarge \ --instance-count 3 \ --use-default-roles \ --monitoring-configuration '{ "CloudWatchLogConfiguration": { "Enabled": true, "LogGroupName": "/my-company/emr/production", "LogStreamNamePrefix": "cluster-prod", "EncryptionKeyArn": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"], "SPARK_DRIVER": ["STDOUT", "STDERR"], "SPARK_EXECUTOR": ["STDERR", "STDOUT"] } } }'
Esta configuração:
-
Cria registros em um grupo de registros personalizado
/my-company/emr/production. -
Prefixa todos os nomes de fluxo de log com
cluster-prod. -
Criptografa os registros usando a chave KMS especificada.
-
Captura todos os tipos de registros: registros de etapas, registros de drivers do Spark e registros do executor do Spark.
Para obter mais informações sobre como usar o AWS CLI com o Amazon EMR, consulte a Referência de AWS CLI comandos para EMR.
Referência da configuração
CloudWatchLogConfiguration Parâmetros
O CloudWatchLogConfigurationv objeto suporta os seguintes parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Enabled |
Booleano | Sim | Defina como true para ativar o CloudWatch registro. Defina como false para desativar. |
LogGroupName |
String | Não | O nome do grupo de CloudWatch registros. Padrão: /aws/emr/{cluster_id} |
LogStreamNamePrefix |
String | Não | Prefixo para nomes de fluxos de log. Padrão: string vazia |
EncryptionKeyArn |
String | Não | ARN da chave KMS para criptografia de log. Se não for especificado, os registros são criptografados pela criptografia do lado do CloudWatch servidor. |
LogTypes |
Objeto | Não | Especifica quais tipos de log devem ser capturados. Padrão: STEP_LOGS e SPARK_DRIVER tipos com STDOUT e STDERR. |
Tipos de log
O Amazon EMR oferece suporte a três tipos de log, cada um capturando tanto a saída padrão quanto os fluxos de erro padrão:
| Tipo de log | Description | Transmissões disponíveis |
|---|---|---|
STEP_LOGS |
Registros de execução de etapas do EMR, incluindo registros do controlador de etapas | STDOUT, STDERR |
SPARK_DRIVER |
Registros de drivers do Apache Spark a partir de aplicativos Spark | STDOUT, STDERR |
SPARK_EXECUTOR |
Registros do executor do Apache Spark de nós de trabalho | STDOUT, STDERR |
Configuração padrão dos tipos de log
Quando você não especifica o LogTypes parâmetro, o EMR usa a seguinte configuração padrão:
"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"], "SPARK_DRIVER": ["STDOUT", "STDERR"] }
Configuração de tipos de log personalizados
Você pode personalizar quais tipos de log capturar especificando explicitamente o LogTypes parâmetro. Por exemplo, para capturar somente registros de etapas:
"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"] }
Ou para capturar somente o erro padrão dos drivers do Spark:
"LogTypes": { "SPARK_DRIVER": ["STDERR"] }
Grupo de registros e nomenclatura de streams
CloudWatch organiza os registros em grupos e fluxos de registros:
-
Grupo de registros: uma coleção de fluxos de registros que compartilham as mesmas configurações de retenção, monitoramento e controle de acesso.
-
Nome padrão:
/aws/emr/{cluster_id} -
Nome personalizado: qualquer nome de grupo de CloudWatch registros válido que você especificar.
-
-
Log Stream: uma sequência de eventos de log de uma única fonte:
-
Padrões de nomenclatura:
-
Registros de etapas:
{prefix}/steps/{step_id}/{file_name}. -
Registros do driver e do executor do Spark:
{prefix}/applications/{application_id}/{container_id}/{file_name}
-
-
Exemplos:
-
/steps/s-ABCDEFG123456/stdout -
cluster-prod/steps/s-ABCDEFG123456/stderr -
/applications/application_1234567890_0001/container_1234567890_0001_01_000001/stdout
-
-
Criptografando registros com AWS KMS
Você pode criptografar seus CloudWatch registros em repouso usando AWS Key Management Service (KMS). Para ativar a criptografia:
-
Crie ou identifique uma chave KMS na mesma AWS região do seu cluster EMR.
-
Certifique-se de que a política de chaves do KMS permita que o serviço de CloudWatch registros use a chave.
-
Adicione o
EncryptionKeyArnparâmetro ao seuCloudWatchLogConfiguration.
Para obter informações detalhadas sobre como criptografar dados de CloudWatch registros, consulte Criptografar dados de registro em CloudWatch Registros usando. AWS Key Management Service
Exemplo com criptografia KMS
{ "CloudWatchLogConfiguration": { "Enabled": true, "EncryptionKeyArn": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } }
Visualizando os logins CloudWatch
Depois que seu cluster estiver em execução com o CloudWatch registro ativado, você poderá visualizar e analisar seus registros por meio do CloudWatch console ou da API.
Acessando registros do console do EMR
A maneira mais rápida de acessar os registros do cluster é diretamente do console do EMR:
-
Navegue até o console do Amazon EMR.
-
Selecione seu cluster na lista de clusters.
-
Na página de detalhes do cluster, localize a seção Gerenciamento de clusters.
-
Clique no CloudWatch link Registrar destino na Amazon.
Esse link leva você diretamente ao console de CloudWatch registros filtrado para o grupo de registros do seu cluster.
Acessando registros a partir do CloudWatch console
Para navegar manualmente até seus logins CloudWatch:
-
Abra o console do CloudWatch
. -
No painel de navegação, escolha Grupos de logs.
-
Encontre seu grupo de registros (padrão:
/aws/emr/{cluster_id}ou o nome do grupo de registros personalizado) -
Escolha o grupo de registros para ver os fluxos de registros disponíveis.
-
Selecione um stream de log para ver seus eventos de log.
Para obter mais informações sobre como trabalhar com o CloudWatch Logs, consulte o Guia do usuário do Amazon CloudWatch Logs.
Considerações
CloudWatch Comportamento do agente
O Amazon CloudWatch Agent fornece métricas e recursos de registro:
-
Ativar o CloudWatch Agente sozinho (sem
MonitoringConfiguration) publica somente CloudWatch métricas em CloudWatch. Nenhum registro é enviado. -
A ativação do CloudWatch registro requer o aplicativo do CloudWatch Agente e o
MonitoringConfigurationparâmetro comCloudWatchLogConfiguration. Isso permite métricas e registros juntos.
Habilitando somente o CloudWatch registro (desativando CloudWatch métricas)
Se você quiser ativar o CloudWatch registro, mas desativar o recurso de coleta de métricas, você pode configurar o CloudWatch Agente para parar de exportar métricas. Adicione a seguinte classificação à configuração do seu cluster:
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": {}, "Configurations": [] } ] } ]
Para obter mais informações sobre CloudWatch métricas, consulte Monitorar métricas com a Amazon CloudWatch.
Limitações conhecidas
- Pontos de dados de métricas durante o upload de registros:
-
Quando o CloudWatch registro está ativo, você pode observar lacunas ocasionais nos dados de CloudWatch métricas durante períodos de alta atividade do registro, principalmente durante o envio de etapas. Isso ocorre porque o controlador de instância do EMR reinicia o CloudWatch Agente para aplicar novas configurações de log quando as etapas são enviadas, interrompendo temporariamente a coleta de métricas. Isso não afeta a entrega de registros ou a funcionalidade do cluster.
Requisitos de sub-rede privada
Para publicar registros no CloudWatch Logs de um cluster do EMR em uma sub-rede privada, crie e associe o endpoint da VPC do Logs à CloudWatch VPC do seu cluster.
Para obter mais informações sobre endpoints do CloudWatch Logs, consulte CloudWatch os endpoints e cotas do Amazon Logs no Guia de referência AWS geral.
Considerações sobre custos
CloudWatch As cobranças de registros são baseadas em:
-
Ingestão de dados: volume de dados de log ingeridos em CloudWatch
-
Armazenamento: quantidade de dados de registro armazenados, com base em suas configurações de retenção
-
Análise de dados: consultas executadas usando o CloudWatch Logs Insights
Para otimizar os custos:
-
Defina períodos de retenção de registros apropriados para seus grupos de registros.
-
Use tipos de registro seletivos para capturar somente os registros necessários.
-
Considere usar a geração de registros do Amazon S3 para armazenamento de registros de longo prazo a um custo menor.
Para obter informações atuais sobre preços, consulte Amazon CloudWatch Pricing.
Recursos adicionais
-
Monitore métricas com a Amazon CloudWatch - Informações sobre a coleta de CloudWatch métricas
-
Configurar funções do IAM para o Amazon EMR - Configuração da função do IAM para clusters do EMR
-
Guia do usuário do Amazon CloudWatch Logs - Guia completo dos recursos do CloudWatch Logs
-
AWS CLI Referência de comandos para EMR - documentação de referência da CLI