Pubblica i log di Amazon EMR su Logs CloudWatch - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Pubblica i log di Amazon EMR su Logs CloudWatch

Panoramica di

Amazon EMR on EC2 fornisce l'integrazione nativa con Amazon CloudWatch Logs, consentendoti di inviare i log del cluster direttamente a CloudWatch Questa funzionalità semplifica la gestione dei log e fornisce un accesso centralizzato ai log del cluster EMR per il monitoraggio, la risoluzione dei problemi e l'analisi.

Con CloudWatch la registrazione abilitata, è possibile acquisire e trasmettere automaticamente i log dai cluster EMR ai gruppi di log. CloudWatch Ciò include i registri di esecuzione delle fasi, i registri dei driver Spark e i registri degli esecutori Spark, che offrono una visibilità completa sulle operazioni del cluster e sul comportamento delle applicazioni.

La funzionalità CloudWatch di registrazione è disponibile a partire dalla release 7.11.0 di Amazon EMR ed è configurata tramite MonitoringConfiguration il parametro durante la creazione del cluster. Una volta abilitata, i log vengono trasmessi automaticamente in streaming CloudWatch man mano che vengono generati, fornendo un accesso quasi in tempo reale ai dati di registro tramite la console o l'API. CloudWatch

Prerequisiti

Prima di abilitare CloudWatch la registrazione per il cluster EMR, assicurati che siano soddisfatti i seguenti prerequisiti:

  • Versione di Amazon EMR: il cluster deve utilizzare Amazon EMR versione 7.11.0 o successiva.

  • CloudWatch Applicazione agente: l' CloudWatch agente Amazon deve essere installato sul tuo cluster.

  • Autorizzazioni IAM: il profilo dell' EC2 istanza per il cluster deve disporre delle autorizzazioni CloudWatch Logs richieste.

  • Endpoint VPC (per sottoreti private): se il cluster si trova in una sottorete privata, è necessario configurare gli endpoint VPC per i log. CloudWatch

Permissions

L' CloudWatch agente richiede autorizzazioni specifiche AWS Identity and Access Management(IAM) per creare gruppi di log, creare flussi di log e scrivere eventi di registro nei registri. CloudWatch Queste autorizzazioni devono essere allegate al profilo dell' EC2 istanza Amazon utilizzato dal tuo cluster EMR.

Policy IAM richiesta

Aggiungi la seguente policy al tuo profilo di EC2 istanza per Amazon EMR per concedere le autorizzazioni necessarie:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": "*", "Sid": "AllowCWACloudWatchLogs" } ] }

Allegare la policy

Per allegare questa policy al tuo profilo di EC2 istanza per EMR:

  1. Passare alla IAM console (Console IAM).

  2. Individua il profilo dell'istanza utilizzato dal tuo cluster EMR, che in genere è. EMR_EC2_DefaultRole

  3. Crea una nuova policy in linea o allega una policy gestita dal cliente con le autorizzazioni di cui sopra.

  4. Salva le modifiche alla politica.

Per ulteriori informazioni sui ruoli IAM per Amazon EMR, consulta Configura i ruoli IAM per le autorizzazioni di Amazon EMR per AWS servizi e risorse nella Amazon EMR Management Guide.

Configurazione della registrazione CloudWatch

È possibile abilitare CloudWatch la registrazione durante la creazione di un nuovo cluster EMR tramite AWS la console di gestione AWS CLI, oppure. AWS SDKs La configurazione viene specificata tramite il MonitoringConfiguration parametro.

Utilizzo della console AWS di gestione

Per creare un cluster con CloudWatch registrazione dalla console:

  1. Accedere alla console AWS EMR.

  2. Scegli Crea cluster.

  3. In Nome e applicazioni, seleziona una versione di Amazon EMR 7.11.0 o successiva.

  4. In Application bundle, seleziona le applicazioni che desideri installare e assicurati che Amazon CloudWatch Agent sia incluso nelle tue selezioni.

  5. In Cluster logs, seleziona l'opzione per pubblicare log specifici del cluster su Amazon. CloudWatch

  6. (Facoltativo) Configura le seguenti impostazioni:

    • Nome del gruppo di log: nome del gruppo di log personalizzato. Il valore predefinito è /aws/emr/{cluster_id}.

    • Prefisso del flusso di registro: prefisso per i nomi dei flussi di registro L'impostazione predefinita è. empty

    • CloudWatch Chiave KMS: chiave KMS ARN per la crittografia dei log (opzionale).

    • Tipi di registro: seleziona i tipi di registro da acquisire (impostazione predefinita: step e driver Spark)

  7. Completa le restanti impostazioni di configurazione del cluster.

  8. Scegli Crea cluster.

Dopo aver creato il cluster, puoi accedere al link CloudWatch Logs dalla pagina EMR Cluster Details in Gestione cluster → Log destination in Amazon. CloudWatch

Usando il AWS CLI

È possibile abilitare CloudWatch la registrazione utilizzando AWS CLI il create-cluster comando. L' CloudWatch agente deve essere incluso nel --applications parametro e la registrazione viene configurata tramite il --monitoring-configuration parametro.

Esempio: configurazione predefinita

EMR acquisirà automaticamente i registri dei passaggi e solo i registri dei driver Spark e li invierà al gruppo di log predefinito.

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 } }'

Quando si utilizza la configurazione predefinita:

  • Nome del gruppo di log: /aws/emr/{cluster_id} (dove {cluster_id} viene automaticamente sostituito dall'ID del cluster).

  • Prefisso del flusso di registro: vuoto (nessun prefisso).

  • Tipi di registro: STEP_LOGS e SPARK_DRIVER abilitati, ciascuno dei quali acquisisce sia. STDOUT STDERR

  • Crittografia: nessuna chiave gestita dal cliente (utilizza la crittografia CloudWatch lato server per impostazione predefinita)

Esempio: configurazione personalizzata

Questo esempio dimostra una configurazione personalizzata con nomi di gruppi di log specifici, crittografia KMS e tipi di log selettivi.

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"] } } }'

Questa configurazione:

  • Crea registri in un gruppo /my-company/emr/production di log personalizzato.

  • Prefissa tutti i nomi dei flussi di log con. cluster-prod

  • Crittografa i log utilizzando la chiave KMS specificata.

  • Cattura tutti i tipi di log: log dei passaggi, log dei driver Spark e log degli esecutori Spark.

Per ulteriori informazioni sull'utilizzo di AWS CLI con Amazon EMR, consulta il AWS CLI Command Reference for EMR.

Informazioni di riferimento sulla configurazione

CloudWatchLogConfiguration Parametri

L'CloudWatchLogConfigurationvoggetto supporta i seguenti parametri:

CloudWatchLogConfiguration Parametri
Parametro Tipo Campo obbligatorio Descrizione
Enabled Booleano Impostato su true per abilitare CloudWatch la registrazione. Imposta su per false disabilitare.
LogGroupName Stringa No Il nome del gruppo di CloudWatch log. Impostazione predefinita: /aws/emr/{cluster_id}
LogStreamNamePrefix Stringa No Prefisso per i nomi dei flussi di registro. Predefinito: stringa vuota
EncryptionKeyArn Stringa No ARN della chiave KMS per la crittografia dei log. Se non specificato, i log vengono crittografati mediante CloudWatch crittografia lato server.
LogTypes Oggetto No Speciifica i tipi di registro da acquisire. Predefinito: STEP_LOGS e SPARK_DRIVER tipi con STDOUT e STDERR.

Tipi di log

Amazon EMR supporta tre tipi di log, ciascuno dei quali acquisisce sia flussi di output standard che flussi di errore standard:

Tipi di log supportati
Tipo di log Description Stream disponibili
STEP_LOGS Registri di esecuzione delle fasi EMR, inclusi i registri dei controller di fase STDOUT, STDERR
SPARK_DRIVER Registri dei driver Apache Spark dalle applicazioni Spark STDOUT, STDERR
SPARK_EXECUTOR I log dell'esecutore Apache Spark dai nodi di lavoro STDOUT, STDERR
Configurazione dei tipi di registro predefiniti

Quando non si specifica il LogTypes parametro, EMR utilizza la seguente configurazione predefinita:

"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"], "SPARK_DRIVER": ["STDOUT", "STDERR"] }
Configurazione dei tipi di registro personalizzati

È possibile personalizzare i tipi di registro da acquisire specificando esplicitamente il LogTypes parametro. Ad esempio, per acquisire solo i registri dei passaggi:

"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"] }

O per rilevare solo gli errori standard dei driver Spark:

"LogTypes": { "SPARK_DRIVER": ["STDERR"] }

Denominazione dei gruppi di log e degli stream

CloudWatch organizza i log in gruppi di log e flussi di log:

  • Gruppo di log: una raccolta di flussi di log che condividono le stesse impostazioni di conservazione, monitoraggio e controllo degli accessi.

    • Nome predefinito: /aws/emr/{cluster_id}

    • Nome personalizzato: qualsiasi nome di gruppo di CloudWatch log valido specificato.

  • Log Stream: una sequenza di eventi di registro da un'unica fonte:

    • Schemi di denominazione:

      • Registri dei passaggi:. {prefix}/steps/{step_id}/{file_name}

      • Registri dei driver e degli esecutori di Spark: {prefix}/applications/{application_id}/{container_id}/{file_name}

    • Esempi:

      • /steps/s-ABCDEFG123456/stdout

      • cluster-prod/steps/s-ABCDEFG123456/stderr

      • /applications/application_1234567890_0001/container_1234567890_0001_01_000001/stdout

Crittografia dei log con AWS KMS

È possibile crittografare i CloudWatch registri inattivi utilizzando AWS Key Management Service (KMS). Per abilitare la crittografia:

  1. Crea o identifica una chiave KMS nella stessa AWS regione del tuo cluster EMR.

  2. Assicurati che la politica delle chiavi KMS consenta al servizio CloudWatch Logs di utilizzare la chiave.

  3. Aggiungi il EncryptionKeyArn parametro al tuo. CloudWatchLogConfiguration

Per informazioni dettagliate sulla crittografia dei dati dei CloudWatch registri, consulta Crittografare i dati di registro in CloudWatch Logs using. AWS Key Management Service

Esempio con crittografia KMS

{ "CloudWatchLogConfiguration": { "Enabled": true, "EncryptionKeyArn": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } }

Visualizzazione dei log in CloudWatch

Dopo l'esecuzione del cluster con CloudWatch la registrazione abilitata, puoi visualizzare e analizzare i log tramite la CloudWatch console o l'API.

Accesso ai log dalla console EMR

Il modo più veloce per accedere ai log del cluster è direttamente dalla console EMR:

  1. Passa alla console Amazon EMR.

  2. Seleziona il tuo cluster dall'elenco dei cluster.

  3. Nella pagina dei dettagli del cluster, individua la sezione Gestione del cluster.

  4. Fai clic sul CloudWatch link Log destination in Amazon.

Questo link ti porta direttamente alla console CloudWatch Logs filtrata in base al gruppo di log del tuo cluster.

Accesso ai log dalla console CloudWatch

Per accedere manualmente ai tuoi dati di accesso: CloudWatch

  1. Apri la CloudWatch console.

  2. Nel pannello di navigazione, selezionare Log groups (Gruppi di log).

  3. Trova il tuo gruppo di log (impostazione predefinita: /aws/emr/{cluster_id} o il nome del tuo gruppo di log personalizzato)

  4. Scegli il gruppo di log per visualizzare i flussi di log disponibili.

  5. Seleziona un flusso di log per visualizzarne gli eventi di log.

Per ulteriori informazioni sull'utilizzo dei CloudWatch log, consulta la Amazon CloudWatch Logs User Guide.

Considerazioni

CloudWatch Comportamento dell'agente

Amazon CloudWatch Agent fornisce sia parametri che funzionalità di registrazione:

  • Abilitando l' CloudWatch agente da solo (senzaMonitoringConfiguration) vengono pubblicati solo CloudWatch i parametri su. CloudWatch Non viene inviato alcun registro.

  • L'abilitazione CloudWatch della registrazione richiede sia l'applicazione CloudWatch Agent che il MonitoringConfiguration parametro con. CloudWatchLogConfiguration Ciò consente di unire metriche e registrazione.

Attivazione della sola CloudWatch registrazione (disabilitazione delle metriche) CloudWatch

Se si desidera abilitare la CloudWatch registrazione ma disabilitare la funzionalità di raccolta delle metriche, è possibile configurare l' CloudWatch agente in modo che interrompa l'esportazione delle metriche. Aggiungi la seguente classificazione alla configurazione del cluster:

[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": {}, "Configurations": [] } ] } ]

Per ulteriori informazioni sui CloudWatch parametri, consulta Monitora i parametri con Amazon. CloudWatch

Limiti noti

Punti dati delle metriche durante il caricamento dei log:

Quando CloudWatch la registrazione è attiva, è possibile osservare occasionali lacune nei dati delle CloudWatch metriche durante i periodi di elevata attività di registrazione, in particolare durante l'invio dei passaggi. Ciò si verifica perché il controller di istanza EMR riavvia l' CloudWatch agente per applicare nuove configurazioni di registro quando vengono inviate le fasi, interrompendo temporaneamente la raccolta delle metriche. Ciò non influisce sulla consegna dei log o sulla funzionalità del cluster.

Requisiti della sottorete privata

Per pubblicare i log su CloudWatch Logs for un cluster EMR in una sottorete privata, create e associate l'endpoint Logs CloudWatch VPC al VPC del cluster.

Per ulteriori informazioni sugli endpoint CloudWatch Logs, consulta gli endpoint e le quote di Amazon CloudWatch Logs nella General Reference Guide.AWS

Considerazioni sui costi

CloudWatch I costi di Logs si basano su:

  • Inserimento dei dati: volume di dati di registro inseriti CloudWatch

  • Archiviazione: quantità di dati di registro archiviati, in base alle impostazioni di conservazione

  • Analisi dei dati: le query vengono eseguite utilizzando CloudWatch Logs Insights

Per ottimizzare i costi:

  • Imposta periodi di conservazione dei log appropriati per i tuoi gruppi di log.

  • Utilizza tipi di log selettivi per acquisire solo i log di cui hai bisogno.

  • Prendi in considerazione l'utilizzo del logging di Amazon S3 per lo storage di log a lungo termine a costi inferiori.

Per informazioni aggiornate sui prezzi, consulta la pagina CloudWatch dei prezzi di Amazon.

Risorse aggiuntive