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:
-
Passare alla IAM console (Console IAM).
-
Individua il profilo dell'istanza utilizzato dal tuo cluster EMR, che in genere è.
EMR_EC2_DefaultRole -
Crea una nuova policy in linea o allega una policy gestita dal cliente con le autorizzazioni di cui sopra.
-
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:
-
Accedere alla console AWS EMR.
-
Scegli Crea cluster.
-
In Nome e applicazioni, seleziona una versione di Amazon EMR 7.11.0 o successiva.
-
In Application bundle, seleziona le applicazioni che desideri installare e assicurati che Amazon CloudWatch Agent sia incluso nelle tue selezioni.
-
In Cluster logs, seleziona l'opzione per pubblicare log specifici del cluster su Amazon. CloudWatch
-
(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)
-
-
Completa le restanti impostazioni di configurazione del cluster.
-
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_LOGSeSPARK_DRIVERabilitati, ciascuno dei quali acquisisce sia.STDOUTSTDERR -
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/productiondi 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:
| Parametro | Tipo | Campo obbligatorio | Descrizione |
|---|---|---|---|
Enabled |
Booleano | Sì | 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:
| 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:
-
Crea o identifica una chiave KMS nella stessa AWS regione del tuo cluster EMR.
-
Assicurati che la politica delle chiavi KMS consenta al servizio CloudWatch Logs di utilizzare la chiave.
-
Aggiungi il
EncryptionKeyArnparametro 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:
-
Passa alla console Amazon EMR.
-
Seleziona il tuo cluster dall'elenco dei cluster.
-
Nella pagina dei dettagli del cluster, individua la sezione Gestione del cluster.
-
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
-
Apri la CloudWatch console
. -
Nel pannello di navigazione, selezionare Log groups (Gruppi di log).
-
Trova il tuo gruppo di log (impostazione predefinita:
/aws/emr/{cluster_id}o il nome del tuo gruppo di log personalizzato) -
Scegli il gruppo di log per visualizzare i flussi di log disponibili.
-
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 (senza
MonitoringConfiguration) 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
MonitoringConfigurationparametro con.CloudWatchLogConfigurationCiò 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
-
Monitora i parametri con Amazon CloudWatch - Informazioni sulla raccolta dei CloudWatch parametri
-
Configurazione dei ruoli IAM per Amazon EMR - Configurazione dei ruoli IAM per i cluster EMR
-
Guida per l'utente CloudWatch di Amazon Logs - Guida completa alle funzionalità di Amazon CloudWatch Logs
-
AWS CLI Command Reference for EMR - Documentazione di riferimento CLI